2011-08-25 3 views
0
에 바닥 글 레이아웃 블록을 추가

나는 가 젠토

/app/design/frontend/mytemplate/default/template/page/html/footer.cat.links.phtml

에로 .phtml 파일을 생성 한에있는 순간에는 단순히 텍스트가 포함 된 1 개의 HTML div가 포함됩니다.

저는 이것을 꼬리말에 추가하려고 합니다만, 이전에는 레이아웃 XML을 사용하지 않았습니다.

그래서 나는 /app/design/frontend/mytemplate/default/layout/page.xml를 개방하고, 추가하는 시도 :

<block type="catalog/navigation" name="footer.cat.links" as="footerCatLinks" template="page/html/footer.cat.links.phtml" />

(유형 I가 의도 한대로 "카탈로그/탐색"입니다 이 작업을 얻을 :

<block type="page/html_footer" name="footer" as="footer" template="page/html/footer.phtml"><my block here></block>

: http://www.magentocommerce.com/wiki/4_-_themes_and_template_customization/catalog/getting_and_using_categories_and_subcategories를)

를 그냥 이런 바닥 글 블록 안에 넣어다음 footer.phtml에, 나는에 새로운 블록을 호출하는 것을 시도했다 :

<?php $this->getChildHtml('footerCatLinks') ?>

나는 캐시 등을 갱신했지만 그것은 footer.cat.links에서 HTML DIV를 추가하지 않습니다. 브라우저에서 볼 때 phtml.

마침내 Magento에서 머리를 쓰고 있다고 생각했지만 설명서에 대한 이해에서부터 해결되었습니다. 내가 얼마나 틀렸어?

+0

page.xml에서 블록 태그를 둘러싼 레이아웃 핸들은 무엇입니까? –

답변

6

Magento의 레이아웃 xml에서 "type"속성은 시스템에로드 할 블록 유형을 지정하므로 type="catalog/navigation"을 지정하면 Magento가 Mage_Catalog_Block_Navigation을로드해야한다고 지시합니다.

이 경우 완전히 필요하지 않은 자신의 블록 클래스를 작성하지 않은 경우 대신 core/template 블록을 사용해야합니다. 그런 다음 카테고리 모델 (Mage::getModel('catalog/category');)을 .phtml 파일에서 직접 활용하여 카테고리 목록을로드 할 수 있습니다.

<reference name="footer"> 
    <block type="core/template" template="page/html/footer.cat.links.phtml" name="footer_cat_links" as="footer_cat_links" /> 
</reference> 

하여주십시오 :

나는 일반적으로 그래서는 <default> 레이아웃 섹션 내에서 다음과 같은 XML을 사용하는 모든 페이지의 바닥 글에 블록을 추가, 모두 name=""as=""에 대해 동일한 값을 사용하려면 캐싱이 활성화 된 경우 레이아웃 XML 캐시를 새로 고칩니다 (시스템> 캐시 관리).

바닥 글 블록에 이미 할당 된 모든 하위 항목을 반복 할 $this->getChildHtml();을 포함해야하므로 $this->getChildHtml('footer_cat_links');을 호출 할 필요가 없습니다.