Изменение содержимого вкладки "Отзывы о продукте"


Я хочу изменить содержимое вкладки "Отзывы о продукте". Я мог бы сделать это с помощью XML-файлов:

<reference name="product.info">
    <action method="unsetChild">
        <name>product.reviews</name>
    </action>
    <block type="reviewcontainer/tabs" name="product.reviews" as="reviews" after="additional">
        <action method="addToParentGroup">
            <group>detailed_info</group>
        </action>
        <action method="setTitle" translate="value">
            <value>My Reviews</value>
        </action>
        <action method="setTemplate">
            <template>mymodule/review_tab.phtml</template>
        </action>
    </block>
</reference>

Однако у меня есть некоторые настройки на странице Системы/конфигурации, которые должны контролировать, будут ли изменены отзывы. Итак, мой вопрос в том, как я могу сделать это из кода?

Author: 7ochem, 2015-12-02

1 answers

Тег action может иметь атрибут ifconfig, подобный этому:

<action ifconfig="your/config/path" method="unsetChild">

Добавление блоков с помощью <block> условно невозможно из коробки, но вот обходной путь:

Создайте блок вне иерархии компоновки (здесь укажите только имя блока):

<catalog_product_view>

    ...

    <block type="reviewcontainer/tabs" name="product.reviews" />

</catalog_product_view>

, А затем добавьте его условно, используя действие insert (укажите позицию и псевдоним здесь):

<catalog_product_view>

    ...

    <reference name="product.info">
        <action ifconfig="your/config/path" method="insert">
            <name>product.reviews</name>
            <sibling>additional</sibling>
            <after>true</after>
            <as>reviews</name>
        </action>
    </reference>
    <reference name="product.reviews">
        <action ifconfig="your/config/path" method="addToParentGroup">
            <group>detailed_info</group>
        </action>
        <action ifconfig="your/config/path" method="setTitle" translate="value">
            <value>My Reviews</value>
        </action>
        <action ifconfig="your/config/path" method="setTemplate">
            <template>mymodule/review_tab.phtml</template>
        </action>
    </reference>

</catalog_product_view>

Я также переместил все действия в блоке отзывов в ссылку и сделал их условными с помощью ifconfig. Вам не нужно этого делать, но это делает разделение определения блока и использования блока более четким, IMHO.

 1
Author: Fabian Schmengler, 2015-12-20 13:38:18