몇 시간 동안 디버깅을 시도한 후에 아이디어가 없어지고 설명이 필요합니다. (어느 시점에서 개념을 잘못 이해했다고 생각합니다).Magento 1.7+ : 페이지 레이아웃 핸들을 사용하는 방법
뒷 배경 : 일부 기본 범주에는 하위 범주 및 제품에서 자동으로 생성되는 "개요 페이지"가 필요합니다. 그래서 내 접근 방식은 모든 기본 범주에 하위 범주를 추가하고 모든 하위 범주에서 사용되는 사용자 지정 페이지 레이아웃을 만드는 것이 었습니다. 내 고객의 경우 Magento 백엔드에서 관리하기가 매우 쉽습니다. 한 번의 드롭 다운으로 값을 변경하기 만하면되기 때문입니다. 그래서 새로운 페이지 레이아웃을 정의하는 간단한 모듈을 만들었습니다. 백엔드에서 나는 이것을 선택할 수있었습니다.
모듈 설정 :이 특별한 개요 페이지 이후
<?xml version="1.0"?>
<config>
<modules>
<Company_Layouts>
<version>0.1.0</version>
</Company_Layouts>
</modules>
<global>
<page>
<layouts>
<company_category_overview module="page" translate="label">
<label>Kategorie-Übersicht</label>
<template>page/1column.phtml</template>
<layout_handle>company_category_overview</layout_handle>
</company_category_overview>
</layouts>
</page>
</global>
<frontend>
<layout>
<updates>
<company_layouts>
<file>company_layouts.xml</file>
</company_layouts>
</updates>
</layout>
</frontend>
</config>
내가 특정 레이아웃 파일 (company_layouts.xml
)에서 레이아웃을 참조하기 바라고 일부 레이아웃을 변경해야 ... 그리고 여기 내 논리가 저를 떠나고있다 :
<layout_handle>company_category_overview</layout_handle>
이 특정 페이지 템플릿을 사용할 때만 레이아웃을 변경하는 데 사용할 수있는 핸들을 정의하고 싶습니다. 정확히 이것은 그렇지 않습니다. company_category_overview
핸들 내 레이아웃 업데이트는 무시됩니다.
더 깊이 파고 들자 마자 깨닫지 못했지만 제 코드가 아닌 일반 문제처럼 보입니다. 이전 Magento 1.4 설치에서는 페이지 레이아웃 핸들이 page_one_column
과 같은 모든 사이트로 전송됩니다. Magento 1.7과 (현재 사용하고있는 것) 1.8 이것은 홈페이지의 경우에만 있습니다. 디버깅을 위해 Commerce Bug를 사용하고 있습니다. 나는 방금 신선한 1.7과 1.8의 설치로 이것을 시도했다.
이 개념이 내가 이해하지 못하거나 단순한 버그입니까?
또한 레이아웃 업데이트가 백엔드에서 수행 될 수 있다는 것을 알고 있지만 복사/붙여 넣기 등의 작업없이 별도의 파일에서이 작업을 수행하는 것이 훨씬 깔끔하다고 생각하기 때문에 이것이 마지막 옵션 일 것입니다.
자세한 설명을 주셔서 감사합니다. 1.4 Magento 설치의 카테고리 컨트롤러를 파헤 치면 Magento의 현재 버전에서 누락 된'applyHandle' 함수 호출을 발견했습니다. 현재, layout_handle은 범주 및 제품 페이지에서 무시되는 경우 꽤 쓸모없는 것으로 보입니다. – themroc
내가 필요했습니다 - 카테고리 페이지 레이아웃을 다루십시오. 이 문제를 해결하기 위해 GlobalHandle 확장 프로그램을 업데이트했습니다. 이제 핸들이 선택된 상태로 주입됩니다. https://github.com/ProxiBlue/GlobalHandle – proxiblue