2011-08-30 5 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 레이아웃이 추가했다 . {{block type ... 메소드}를 통해 CMS 페이지 내의 블록을 '인라인'하면 해당 블록이 렌더링 될 때 레이아웃이 이미 준비됩니다.

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"를 업로드했는지 확인하시기 바랍니다.

희망이 있습니다. 블록이 레이아웃 XML에 정의되어있는 경우

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

+0

나는 그것을 사용했지만 내 경우에는 작동하지 않습니다. 나는 해결책을 주었다. – Sebastien

1

당신 만 _prepareLayout() 메소드를 사용하여 당신의 도움을 주셔서 감사합니다 :

관련 문제