試圖調試幾個小時後,我出於想法和希望的一些澄清(我想我誤解了某個概念)。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
)來引用佈局一些佈局的變化......在這裏我的邏輯是離開我:
With <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和freh 1.8安裝。
這是一些概念,我不明白或只是一個普通的錯誤?
另外,我知道佈局更新可以在後端實現,但這隻會是我的最後一個選擇,因爲我覺得它更清潔,在不需要複製/粘貼這樣的東西的情況下,在單獨的文件中。
感謝您的詳細澄清。深入研究1.4 Magento安裝的類別控制器我確實發現了一個'applyHandle'函數調用,它在當前版本的Magento中缺少。到目前爲止,如果在類別和產品頁面上被忽略,'layout_handle'似乎很沒用。 – themroc
我需要這個 - 類別頁面處理到佈局中。我更新了我的GlobalHandle擴展來解決這個問題。它現在將選中的句柄注入。 https://github.com/ProxiBlue/GlobalHandle – proxiblue