如何在Magento中的「頭部」部分動態加載樣式表僅在包含自定義Widget的頁面上?僅在Widget頁面上加載樣式表
對於我的劇本我這樣做:
if($this->getLayout()->getBlock('namespace_module_scripts')==false) {
$block = $this->getLayout()
->createBlock('core/template', 'namespace_module_scripts')
->setTemplate('namespace/module/scripts.phtml');
$this->getLayout()->getBlock('before_body_end')->insert($block);
}
這是_prepareLayout()
在我的Widget塊類中的當前內容。我嘗試使用相同的方法進行樣式設置,將before_body_end
替換爲head
,這對於放置Widget實例或將塊手動放置在我的佈局xml中非常有用,但是當在頁面內容中插入小部件內聯時,頭部部分似乎先前已渲染到Widget,因此我的樣式模板不能插入到頭部塊中。
我的(希望)臨時解決方案是加載我的佈局xml中的每個頁面上的樣式。有一個更好的方法嗎?
謝謝艾倫,我有一種感覺,你會成爲回答這個問題的人。我希望我可以用Observer做些事情,但是沒有成功(可能是因爲我無法在加載頭文件之前過濾toHtml的輸出)。加載樣式與JS可能是一個選項,謝謝。 – bhamrick 2011-03-07 20:32:22
事件也是可能的。在更新紅色事件之前或之後(或佈局的加載後)掛鉤到頁面塊之一,並按照#2中的建議進行操作。你在哪裏掛鉤取決於你,但總的想法(如果你不想要javascript方法)是檢查系統的狀態,確定你的小部件是否或將會在那裏然後[做些什麼]添加樣式。 – 2011-03-07 22:09:47
好的,是的,工作。謝謝。 – bhamrick 2011-03-07 23:33:28