0

top.menu の代わりにカスタム メニューを作成しています。ではnew-top-menu.phtml、すべての製品カテゴリを表示します。StaticBlock に、この phtml テンプレート ファイルを追加します

{{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

1 に答える 1

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、あなたの質問で説明されているように更新する必要があります。

これにより、すべてのページのヘッダーにカスタムメニューが表示されます。ご覧のとおり、これを実現するために静的ブロックは必要ありません。静的ブロックを使用している別の理由がない限り、

于 2013-01-09T14:57:14.643 に答える