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 タブ - リンクで特定のタブを選択する方法は?

試してみてください。ただし、最初に上記の URL を参照してください:-

クラスの開始方法を変更することを検討します。

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();
}

ここでは、最初のタブの選択方法を変更しただけです。事前に選択されているタブの 1 つを識別している場合、一般にハッシュとして知られている URL フラグメントをチェックします。おまけとして、ブラウザは可能であればその要素までスクロールします。

次に、タブの ID を URL に追加するだけです。たとえば、次の方法で URL を生成できます。

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