我正在嘗試將CSS要求添加到Blog module。SilverStripe博客模塊樣式的最佳方法
我採用的當前方法是創建Blog類和Blog_Controller(以及BlogPost和BlogPost_Controller)的子類,試圖將css需求引入到init()函數中。但是,出於某種原因,我似乎無法獲得這些CSS文件的任何參考。
class ProjectsHolder extends Blog{
private static $allowed_children = array(
'ProjectPage'
);
}
class ProjectsHolder_Controller extends Blog_Controller{
public function init(){
parent::init();
Requirements::css("{$this->ThemeDir()}/css/projects.css");
}
}
我也嘗試了<%require css%>模板語法。我只能通過在模板頂部的head標籤內對css鏈接標籤進行硬編碼(這太可怕了)了。
我還注意到SilverStripe的DataExtension/SiteConfig方法注入功能的類,看起來可能適用於我的情況。
我的問題是:什麼是樣式模塊,如博客模塊的最佳做法。
顯然有一些我失蹤或不理解在這裏;任何澄清將不勝感激!
是的,在模板化和PHP語法中嘗試過主題CSS - 都無濟於事。 括號代碼是我在教程中注意到的,也嘗試過使用點連接: 'Requirements :: css($ this-> ThemeDir()。/ css/projects.css「);' 是,我可以將我的全局樣式與特定於博客的樣式合併;如果將大型項目細分爲不同的頁面,我發現維護CSS更容易。作爲最後的手段,這可能會奏效。 –
我認爲這個新的推理是因爲你可能有多個主題/模板,並且如果你在模塊或類擴展中指定了特定的樣式,那麼你幾乎被所有主題中的那些樣式所困住。將樣式放入單獨的主題中並使用模板語法,可以讓您更直觀地瞭解每個主題。這也增加了SS更多的MVC框架。 –
@RyanAchten你應該查看你的樣式表的sass http://sass-lang.com/。一旦你使用它,你將永遠不會再回到編輯css文件。 –