it-source

Magento에서 getChildHtml 이해

criticalcode 2023. 11. 7. 20:57
반응형

Magento에서 getChildHtml 이해

두 열의 다음 행부터 오른쪽.phtml

<div class="col-main">
    <?php echo $this->getChildHtml('global_messages') ?>
    <?php echo $this->getChildHtml('content') ?>
</div>

나는 어디가 어디인지 이해할 수 없습니다.content인에<?php echo $this->getChildHtml('content') ?>오는 중입니다.

다음으로 데이터를 표시하기 위해 호출되는 .phtml 파일<?php echo $this->getChildHtml('content') ?>?

웹사이트의 프론트엔드에 대해 논의하고 있다면, 질문하신 특정 라인은...

<?php echo $this->getChildHtml('content') ?>

App/design/frontend/base/default/layout/page.xml의 Magento 레이아웃 XML에 추가됩니다.마젠토 버전 1.8에서는 92-94행에 정의되어 있습니다.

<block type="core/text_list" name="content" as="content" translate="label">
    <label>Main Content Area</label>
</block>

이 블록 태그의 "type" 속성을 보면 레이아웃의 이 섹션이 어떤 객체 클래스인지 알 수 있습니다."Core" 모듈에서 가져온 것으로, 블록 유형의 텍스트 목록입니다.이 Mage_Core_Block_Text_List.(앱/코드/코어/코어/블록/텍스트/List.php)의 클래스 이름입니다.텍스트 목록은 단순히 블록 안에 추가 하위 블록을 저장하기 위한 목적의 블록 컨테이너입니다.텍스트 목록에 원하는 수의 자식 블록을 추가할 수 있으며 추가된 순서 또는 할당된 순서로 렌더링됩니다.

따라서 질문에 답하려면 $this->getChildHtml('content')의 내용을 렌더링하는 보기 스크립트(.phtml 파일)가 없습니다.이 블록에 추가된 블록은 해당 블록과 연관된 보기 스크립트를 가지고 있을 수 있습니다.보기 스크립트가 무엇인지 알아보려면 블록을 추가한 레이아웃 XML을 찾아야 합니다.

예를 들어, 웹 사이트 테마의 앞단에 다음 레이아웃 파일이 추가되어 있는 경우

<?xml version="1.0"?>
<layout>
    <default>
        <reference name="content">
            <block type="core/template" name="my_view_script" template="hello/world.phtml" />
        </reference>
    </default>
</layout>

위의 코드는 Mage_Core_Block_Template의 객체 클래스를 가진 블록을 'content'라는 이름을 가진 블록에 추가합니다.그러면 Magento가 다음 위치에서 보기 스크립트를 찾습니다.

app/design/frontend/PACKAGE_NAME/THEME_NAME/template/hello/world.phtml
app/design/frontend/PACKAGE_NAME/default/template/hello/world.phtml
app/design/frontend/base/default/template/hello/world.phtml

가장 먼저 발견된 것은 그것이 사용할 것입니다.보기 스크립트를 찾을 수 없으면 Magento에서 오류를 기록합니다.var/logs/system.log(기본 로그 파일 설정) 보기 스크립트를 찾을 수 없음을 나타냅니다.블록에서 출력이 발생하지 않습니다.

시스템 -> 구성 -> (일반) 설계의 설정에 따라 추가적인 사항이 있을 수 있습니다.package/theme마젠토가 조사할 장소입니다또한 개별 CMS 페이지, 카탈로그 카테고리 또는 카탈로그 제품에 대해 "사용자 정의 테마" 필드가 변경된 경우 개별 모델의 보기 페이지에 사이트의 기본 설정보다 우선하는 보기 스크립트 위치가 추가로 있을 수 있습니다.

Magento는 번역 파일과 레이아웃 XML 파일을 찾을 때 이와 같은 폴백 논리를 따릅니다.

개별 뷰 스크립트(전체 디렉토리 복사를 방지하고, 실제로 수정하려는 뷰 스크립트만 복사)를 복사할 수 있습니다.app/design/frontend/base/default/template/로컬 테마에 맞게 웹 사이트 테마에 맞게 사용자 정의할 수 있습니다.그러나 업그레이드 호환 사이트를 사용하려면 레이아웃 파일을 기본에서 로컬 테마로 복사해서는 안 됩니다.이렇게 하면 업그레이드 호환 관행을 따르지 않습니다.대신 테마에 대한 XML 레이아웃 업데이트가 다음에 포함되어야 합니다.app/design/frontend/PACKAGE_NAME/THEME_NAME/layout/local.xml. 배치 지침이 없습니다.app/design/frontend/base/default/layout/*, local.xml의 적절한 XML 지침을 사용하면 제거/추가/변경할 수 없는 what-have-you.

언급URL : https://stackoverflow.com/questions/19488885/understanding-getchildhtml-in-magento

반응형