2014-09-25 63 views
0

我已經創建了一個大型菜單組。但我堅持把它與文件相關聯。如何鏈接magento中的菜單組(通過塊/ .phtml文件)

所有我可以看到形成一個默認的是

<block type="core/text_list" name="megamenu_left" as="megamenu_left" translate="label"> 
    <label>Left Megamenu</label> 
</block> 

在主頁(後端>設計科):

<reference name="megamenu_left"> 
    <block type="megamenu/list" name="megamenu.list.theme" as="megaMenuLeft" template="sm/megamenu/megamenu-left.phtml"> 
     <action method="setConfig"> 
      <values> 
       <group_id>2</group_id> 
       <theme>2</theme> 
      </values> 
     </action> 
    </block> 
</reference> 

而且在首頁前視圖:

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

我沒有得到的東西是name =「megamenu.list.theme」以及這是怎麼回事環。

EDITED

如何「megamenu_left」從XML以上與我在後端創建的菜單基團連接。我在後端創建的菜單組只有一個名稱和「啓用/禁用」選項。

回答

1

我不確定是否正確理解了問題,但第二個XML位將查找在第一個XML部分中找到的引用「megamenu_left」,並在該位置插入該塊。

該塊本身在佈局中有全名「megamenu.list.theme」,可選短名稱爲「megaMenuLeft」。它將呈現模板文件「sm/megamenu/megamenu-left.phtml」,該文件將被定位在諸如「app/design/frontend/theme/..」之類的活動主題文件夾中。

該模板將使用模塊「megamenu/Block/List.php」中的PHP塊,所以任何$ this-> functionName()調用或從該函數內訪問的變量都來自該塊。

首頁將從XML的第一部分開始按名稱加載該塊,這反過來將從第二部分XML中獲取內容,因爲它是一個引用,這意味着它將自己插入到第一個XML中。

+0

上述xml中的'megamenu_left'與我在後端創建的菜單組是如何鏈接的。我在後端創建的菜單組只有一個名稱和「啓用/禁用」選項。 – 2014-09-25 09:54:29

+1

那麼megamenu/Block/List.php文件以某種方式使用信息集作爲選項''和''來弄清楚。無法確切知道它是如何進行連接的,而無需查看該「Block/List.php」文件的完整代碼清單。 – 2014-09-25 10:09:19

+0

好,最後一個查詢:通過組ID我可以區分菜單組。但是,在更改參考名稱和組ID(對於另一組菜單)並複製所有其他內容時,請在原始菜單組和此新菜單組上渲染菜單組3(組i)。 – 2014-09-25 10:43:27

相關問題