2011-08-30 45 views
0

我正在構建一個自定義的magento模塊,我嘗試將一個自定義CSS文件添加到我的塊。我寫道:從塊添加CSS

<?php 
class Wise_InteractiveSlider_Block_Slider extends Mage_Core_Block_Template 
{ 
    protected function _prepareLayout() 
    { 
     $this->getLayout()->getBlock('head')->addCss('css/mycompany/mymodule/stylesheet.css'); 
     return parent::_prepareLayout(); 
    } 

} 

,但它不工作,我的CSS文件沒有加載,任何想法? 謝謝。

+0

您的CSS的鏈接元素是否會添加到頁面中你的塊被加載?如果不是,它會縮小問題範圍。 –

回答

2

我的另一種解決方案是在我的XML佈局補充一點:

<default> 
    <reference name="head"> 
     <action method="addCss"><stylesheet>css/interactiveslider.css</stylesheet></action> 
    </reference> 
</default> 

謝謝您的幫助

1

所有CSS &圖片通常位於「skin」文件夾中。它應該是: -

"skin" folder 
    -> Package Name (like "base" or "default") 
     -> Theme Name (like "modern" or "mycompany") 
     -> "css" folder 
      -> "mymodule" folder 
       -> "stylesheet.css" file 

所以我想你一直跟着上述基本結構,這被認爲是最佳實踐之一。

回到你的問題,我想你已經在模塊的佈局文件「layout.xml」中提到了正確的塊類。所以上面的代碼應該是,根據上述文件夾結構: -

<?php 
class Wise_InteractiveSlider_Block_Slider extends Mage_Core_Block_Template 
{ 
    protected function _prepareLayout() 
    { 
     $this->getLayout()->getBlock('head')->addCss('css/mymodule/stylesheet.css'); 
     return parent::_prepareLayout(); 
    } 
} 

最後,請確保你已經在正確的文件夾上傳你的CSS文件「stylesheet.css」。

希望它有幫助。

+0

我用它,但它不適用於我的情況。我在答案下給出了我的解決方案。 – Sebastien

1

您只能使用_prepareLayout()方法,如果該塊佈局XML定義。如果您通過{{塊類型...方法在CMS頁面中內嵌塊,塊的渲染時間已經準備好了佈局