2013-01-09 39 views
0

我正在創建一個自定義菜單而不是top.menu。 在new-top-menu.phtml我顯示所有產品類別。在StaticBlock我在中添加該PHTML模板文件產品視圖上的Magento自定義菜單

{{block type="catalog/product_list" template="catalog/new-top-menu.phtml"}} 

page.xml文件

<block type="page/html_header" name="header" as="header"> 

我加入這個新的生產線

<block type="cms/block" name="top-menu"> 
    <action method="setBlockId"> 
     <block_id>top-menu</block_id> 
    </action> 
</block> 

header.phtml我更換此

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

與此

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

該菜單正常工作,但是當我進入產品視圖。我得到錯誤

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 

Trace: 
#0 /lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array) 
#1 /lib/Zend/Db/Statement.php(300): Varien_Db_Statement_Pdo_Mysql->_execute(Array) 
#2 /lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array) 
#3 /lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT `catalog...', Array) 
#4 /lib/Varien/Db/Adapter/Pdo/Mysql.php(419): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `catalog...', Array) 
#5 /lib/Zend/Db/Adapter/Abstract.php(753): Varien_Db_Adapter_Pdo_Mysql->query(Object(Varien_Db_Select), Array) 
#6 /app/code/core/Mage/Eav/Model/Entity/Abstract.php(943): Zend_Db_Adapter_Abstract->fetchRow(Object(Varien_Db_Select)) 
#7 /app/code/core/Mage/Catalog/Model/Resource/Abstract.php(698): Mage_Eav_Model_Entity_Abstract->load(Object(Mage_Catalog_Model_Category), Object(Mage_Catalog_Model_Category), NULL) 
#8 /app/code/core/Mage/Core/Model/Abstract.php(225): Mage_Catalog_Model_Resource_Abstract->load(Object(Mage_Catalog_Model_Category), Object(Mage_Catalog_Model_Category), NULL) 
#9 /app/code/core/Mage/Catalog/Block/Product/List.php(80): Mage_Core_Model_Abstract->load(Object(Mage_Catalog_Model_Category)) 
#10 /app/code/core/Mage/Catalog/Block/Product/List.php(141): Mage_Catalog_Block_Product_List->_getProductCollection() 
#11 /app/code/core/Mage/Core/Block/Abstract.php(862): Mage_Catalog_Block_Product_List->_beforeToHtml() 
#12 /app/code/core/Mage/Core/Block/Abstract.php(582): Mage_Core_Block_Abstract->toHtml() 
#13 /app/code/core/Mage/Core/Block/Abstract.php(526): Mage_Core_Block_Abstract->_getChildHtml('top-menu', true) 
#14 /app/design/frontend/default/przewody/template/page/html/header.phtml(51): Mage_Core_Block_Abstract->getChildHtml('top-menu') 
#15 /app/code/core/Mage/Core/Block/Template.php(241): include('/var/www/sites/...') 
#16 /app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/defaul...') 
#17 /app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView() 
#18 /app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Template->_toHtml() 
#19 /app/code/core/Mage/Core/Block/Abstract.php(582): Mage_Core_Block_Abstract->toHtml() 
#20 /app/code/core/Mage/Core/Block/Abstract.php(526): Mage_Core_Block_Abstract->_getChildHtml('header', true) 
#21 /app/design/frontend/default/przewody/template/page/2columns-right.phtml(42): Mage_Core_Block_Abstract->getChildHtml('header') 
#22 /app/code/core/Mage/Core/Block/Template.php(241): include('/var/www/sites/...') 
#23 /app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/defaul...') 
#24 /app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView() 
#25 /app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Template->_toHtml() 
#26 /app/code/core/Mage/Core/Model/Layout.php(555): Mage_Core_Block_Abstract->toHtml() 
#27 /app/code/core/Mage/Core/Controller/Varien/Action.php(390): Mage_Core_Model_Layout->getOutput() 
#28 /app/code/core/Mage/Cms/Helper/Page.php(137): Mage_Core_Controller_Varien_Action->renderLayout() 
#29 /app/code/core/Mage/Cms/Helper/Page.php(52): Mage_Cms_Helper_Page->_renderPage(Object(Mage_Cms_IndexController), 'no-route') 
#30 /app/code/core/Mage/Cms/controllers/IndexController.php(75): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_IndexController), 'no-route') 
#31 /app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Cms_IndexController->noRouteAction() 
#32 /app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('noRoute') 
#33 /app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http)) 
#34 /app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch() 
#35 /app/Mage.php(683): Mage_Core_Model_App->run(Array) 
#36 /index.php(90): Mage::run('', 'store') 
#37 {main} 

感謝您的幫助。

回答

4

從我的理解,你已經做出了一個自定義菜單,需要在所有頁面上顯示。

您可以通過在佈局文件的正確位置添加塊來實現此目的。爲此,您不需要使用靜態塊。

在自己的主題,你必須添加以下到您的local.xml佈局文件:

<default> 
    <reference name="header"> 
    <block type="catalog/product_list" name="top-menu" 
      template="catalog/new-top-menu.phtml" /> 
    </reference> 
</default> 

確保catalog/new-top-menu.phtml添加到您的主題。你的主題中的副本header.phtml應按照你的問題所述進行更新。

這將在所有頁面的頁眉中顯示您的自定義菜單。正如你所看到的,你不需要一個靜態塊來完成這個任務。除非,還有另一個原因是你正在使用靜態塊?

+0

更好地將新模板文件添加到'base/default'主題。 – benmarks