2016-07-22 77 views
1

我正在構建一個小模塊,用於替換Silverstripe中的默認FileField並將其更改爲fancier上傳(位於前端)。我在Yaml通過噴射器方法替換了這個類。這似乎工作正常。Silverstripe:如何從模塊添加自定義css/js

但是,我需要添加一些js和css,只有在使用特定字段時才需要包含這些js和css。我嘗試了forTemplate方法和filefield類的構造函數,但都不會導致文件被添加到html中。

有沒有辦法做到這一點?

我使用SS 3.4

回答

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> 
"); 
+0

謝謝!我已經接受了。另外,我在腳本名稱中輸入了一個錯字。這就是爲什麼在我將它放入構造函數後它沒有出現的原因:( – jberculo

+1

然而,將css/js添加到config.yml還有一個額外的警告,爲此,模塊目錄名稱應該是固定的,我認爲這並不理想 – jberculo

相關問題