我正在构建一个小模块,用于替换Silverstripe中的默认FileField,并将其更改为更高级的上传(在前端)。我通过Yaml中的注入器方法替换了类。这似乎工作正常。
但是,我需要添加一些js和css,只有在使用特定字段时才必须包含它们。我尝试了forTemplate方法和filefield类的构造函数,但两者都没有导致文件被添加到html。
有办法做到这一点吗?
我正在使用SS 3.4
答案 0 :(得分:1)
您可以通过在config.yml文件中添加以下内容来在CMS中添加需求,但这会全局添加...
LeftAndMain:
extra_requirements_css:
- mymodule/css/mymodule.css
extra_requirements_javascript:
- mymodule/javascript/mymodule.js
在FormField构造函数中包含所需的源文件,只包括显示此字段的时间......
Requirements::javascript("mymodule/javascript/mymodule.js");
Requirements::css('mymodule/css/mymodule.css');
您也可以直接添加代码,可能包括PHP中的值,如...
Requirements::customCSS('
#Form_FilterForm .field {
display:inline-block;
width:31%
}
');
Requirements::customScript('
jQuery(document).ready(function(){
//JS Code here
});
');
或者如上所述,但它必须包含在标题中......
Requirements::insertHeadTags("
<style>
#Form_FilterForm .field {
display:inline-block;
width:31%
}
</style>
<script>
jQuery(document).ready(function(){
//JS Code here
});
</script>
");