2

我正在使用 Magento Enterprise 1.12 并希望将自定义选项卡(交付、视频)添加到产品视图页面,其内容从产品属性中指定。初始化选项卡的脚本如下:

//<![CDATA[
    var collateralTabs = new Enterprise.Tabs('collateral-tabs');
        Event.observe(window, 'load', function() {
        collateralTabs.select();
    });
//]]>

除了创建产品属性之外,我真的不确定从哪里开始,所以任何帮助将不胜感激!

亲切的问候

4

2 回答 2

4

Enterprise 中的选项卡的处理方式与 Community 不同,这可能会导致试图找到解决方案时出现问题。在catalog.xml 中,您会找到带有如下代码的选项卡设置:

<block type="catalog/product_view_description" name="product.description" as="description" template="catalog/product/view/description.phtml">
<action method="addToParentGroup"><group>detailed_info</group></action>
<action method="setTitle" translate="value"><value>Details</value></action>
</block>

所以要添加另一个,添加另一个块:

<block type="catalog/product_view_description" name="product.video" as="video" template="catalog/product/view/video.phtml">
<action method="addToParentGroup"><group>detailed_info</group></action>
<action method="setTitle" translate="value"><value>Video</value></action>
</block>

然后使用您希望选项卡包含的任何内容创建模板文件 catalog/product/view/video.phtml。

虽然这会很好地添加一个选项卡,但如果您想以正确的 Magento 方式进行添加,则应使用主题的 local.xml 文件中的引用进行添加:

<catalog_product_view translate="label">
<reference name="product.info">
    <block type="catalog/product_view_description" name="product.video" as="video" template="catalog/product/view/video.phtml" after="product.attributes">
    <action method="addToParentGroup"><group>detailed_info</group></action>
        <action method="addToParentGroup"><group>detailed_info</group></action>
        <action method="setTitle" translate="value"><value>Video</value></action>
    </block>
</reference>
</catalog_product_view>
于 2012-11-06T15:54:34.087 回答
2

我不确定,但我认为这对您非常有帮助,请参见以下 URL:-

Magento Enterprise 选项卡 - 如何在链接中选择特定选项卡?

Magento Enterprise 选项卡 - 如何在链接中选择特定选项卡?

试试看,但先看看上面的网址:-

我会考虑修改课程的启动方式。

initialize: function (container) {
    this.container = $(container);
    this.container.addClassName('tab-list');
    this.tabs = this.container.select('dt.tab');
// change starts here //
    var hashTab = $(window.location.hash.slice(1));
    this.activeTab = ( this.tabs.include(hashTab) ? hashTab : this.tabs.first());
// change ends here //
    this.tabs.first().addClassName('first');
    this.tabs.last().addClassName('last');
    this.onTabClick = this.handleTabClick.bindAsEventListener(this);
    for (var i = 0, l = this.tabs.length; i < l; i ++) {
        this.tabs[i].observe('click', this.onTabClick);
    }
    this.select();
}

在这里,我只更改了初始选项卡的选择方式。它检查通常称为散列的 URL 片段,如果它标识了它预选的选项卡之一。作为奖励,如果可能的话,浏览器也会滚动到该元素。

然后您只需要将选项卡的 ID 附加到 URL。例如,您可以通过以下方式生成 URL;

$productUrl = Mage::getUrl('catalog/product/view', array(
    'id' => $productId,
    '_fragment' => 'tab_id',
));
于 2012-09-03T07:55:09.247 回答