【问题标题】:Magento add custom tabs to product viewMagento 将自定义标签添加到产品视图
【发布时间】:2013-04-04 12:21:44
【问题描述】:

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

我想做的是做一个表格信息系统,类似于 magento 现代中存在的用于产品描述和其他附加信息的信息系统。我设法用 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))

当我执行 technicalshipping 操作时,一切正常... 我在这里做错了什么?

谢谢

【问题讨论】:

  • 嗨,你有所有的文件吗?我的意思是正确的路径,phtml和php块文件?
  • 你好,我在正确的路径上创建了 phtml 文件。在目录/产品/视图中。我不确定 php 块文件
  • 来自“管理属性集”,添加选项卡有一个选项。试试看

标签: magento tabs


【解决方案1】:

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

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

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

你有两个选择:

  1. 创建一个处理您的自定义请求的模块
  2. 重用现有控制器为您提供数据并在您指定的块部分中指定它们的路径

从 Alan Storm 那里了解有关此概念的更多信息
http://alanstorm.com/magento_controller_hello_world

【讨论】:

    猜你喜欢
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多