Magento为产品视图添加自定义选项卡

时间:2013-04-04 12:21:44

标签: magento tabs

我在互联网上搜索并没有找到解决方案。

我想要做的是制作一个类似于magento modern中存在的表格信息系统,用于产品描述和其他附加信息。我设法用javascript做功能标签。但问题是,在我添加了标签后,我正在描述整个页面崩溃,所以我不知道我做错了什么。

Tabs.phtml中的代码:

<ul class="product-tabs">
    <?php foreach ($this->getTabs() as $_index => $_tab): ?>
        <?php //if($this->getChildHtml($_tab['alias'])): ?>
            <li id="product_tabs_<?php echo $_tab['alias'] ?>" class="<?php echo !$_index?' active first':(($_index==count($this->getTabs())-1)?' last':'')?>"><a href="#" onclick="return false;"><?php echo $_tab['title']?></a></li>
        <?php //endif; ?>
    <?php endforeach; ?>
</ul>
<?php foreach ($this->getTabs() as $_index => $_tab): ?>
    <?php //if($this->getChildHtml($_tab['alias'])): ?>
        <div class="product-tabs-content" id="product_tabs_<?php echo $_tab['alias'] ?>_contents"><?php echo $this->getChildHtml($_tab['alias']) ?></div>
    <?php //endif; ?>
<?php endforeach; ?>   

所以我想在产品视图标签中添加几个标签。 这是我在xml文件中的代码:

<block type="catalog/product_view_tabs" name="product.tabs" as="info_tabs" template="catalog/product/view/tabs.phtml">
                <action method="addTab" translate="title" module="catalog">
                    <alias>description</alias>
                    <title>Definition</title>
                    <block>catalog/product_view_description</block>
                    <template>catalog/product/view/description.phtml</template>
                </action>

                <action method="addTab" translate="title" module="catalog">
                    <alias>technical</alias>
                    <title>Technical Specification</title>
                    <block>catalog/product_view_technical</block>
                    <template>catalog/product/view/technical.phtml</template>
                </action>

                <action method="addTab" translate="title" module="catalog">
                    <alias>shipping</alias>
                    <title>Shipping</title>
                    <block>catalog/product_view_shipping</block>
                    <template>catalog/product/view/shipping.phtml</template>
                </action>

            </block>

这是我得到的错误:

    Stack trace:
#0 /home/mihaip/work/magentotest/app/code/core/Mage/Core/Model/Layout.php(495): Mage::throwException('Invalid block t...')
#1 /home/mihaip/work/magentotest/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('catalog/product...', Array)
#2 /home/mihaip/work/magentotest/app/code/core/Mage/Catalog/Block/Product/View/Tabs.php(59): Mage_Core_Model_Layout->createBlock('catalog/product...', 'shipping')
#3 [internal function]: Mage_Catalog_Block_Product_View_Tabs->addTab('shipping', 'Shipping', 'catalog/product...', 'catalog/product...')
#4 /home/mihaip/work/magentotest/app/code/core/Mage/Core/Model/Layout.php(348): call_user_func_array(Array, Array)
#5 /home/mihaip/work/magentotest/app/code/core/Mage/Core/Model/Layout.php(214): Mage_Core_Model_Layout->_generateAction(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))

当我拿出技术发货操作时,一切正常...... 我在这里做错了什么?

由于

1 个答案:

答案 0 :(得分:2)

Magento app / code / core / Mage / 中不存在这些模块,块及其类:

<block>catalog/product_view_technical</block>
<block>catalog/product_view_shipping</block>

如果您没有在自己的包中创建包含这些路径和类的自定义模块,那么这些错误的来源就是这些。您创建了模板视图,但未在块标记之间指定的路径中创建控制器。

您有两种选择:

  1. 创建一个处理自定义请求的模块
  2. 重用现有控制器为您提供数据并在您指定的块部分中指定其路径
  3. 从艾伦风暴中了解更多有关此概念的信息 http://alanstorm.com/magento_controller_hello_world