Добавьте параметры Magento Widget в редактор Add Widget Instance. - PullRequest
3 голосов
/ 11 февраля 2012

Этот вопрос, по-видимому, задавался несколько раз, но не отвечался.

Я создал виджет, который добавляет значения атрибутов в настраиваемый продукт.Просто для ясности, если конфигурируемый продукт состоит из нескольких простых продуктов (связанных продуктов), основанных на размере и цвете атрибутов, то я хочу показать «доступные» размеры и цвета для этого конфигурируемого продукта клиенту.И я хочу сделать это программно, а не просто поместить список размеров и цветов в описание, потому что не все размеры или цвета могут быть доступны в данный момент.Итак, я создал этот виджет.

Теперь я хотел сделать более общую версию этого виджета, которая могла бы использовать атрибут любого связанного продукта.Но, чтобы сделать это, администратор, настраивающий виджет, должен будет выбрать атрибут из списка доступных атрибутов.Это на самом деле может работать при добавлении виджета на страницу CMS, поскольку параметры, определенные в файле widget.xml, позволяют это.

Проблема в том, что я не добавляю виджет на страницу CMS.Я добавляю это на страницы продукта.Поэтому мне нужно использовать функцию экземпляра виджета в CMS -> Виджеты -> Добавить редактор нового экземпляра виджета.Однако в этом редакторе есть вкладки для свойств внешнего интерфейса и параметров виджетов.А параметры из файла widget.xml не отображаются на вкладке Параметры виджета этого редактора.

Итак, есть ли способ добавить параметры на вкладку Параметры виджета в редакторе добавления экземпляра виджета изфайл widget.xml (например, что-то вроде:

<widgets>
  <Widget Options>
    <parameters>
      <my_widget_instance_parameter> ... </my_widget_instance_parameter>
    </parameters>
  </Widget Options>
</widget>

Или это что-то, что требует улучшения фактического редактора экземпляра виджета?

Спасибо.

1 Ответ

4 голосов
/ 11 февраля 2012

Перейдите на \app\code\core\Mage\Cms\etc\widget.xml и посмотрите параметры виджета CMS Page Link:

<cms_page_link type="cms/widget_page_link" translate="name description" module="cms">
    <name>CMS Page Link</name>
    <description>Link to a CMS Page</description>
    <is_email_compatible>1</is_email_compatible>
    <parameters>
        <page_id type="complex" translate="label">
            <visible>1</visible>
            <required>1</required>
            <label>CMS Page</label>
            <type>label</type>
            <helper_block>
                <type>adminhtml/cms_page_widget_chooser</type>
                <data>
                    <button translate="open">
                        <open>Select Page...</open>
                    </button>
                </data>
            </helper_block>
            <sort_order>10</sort_order>
        </page_id>
        <anchor_text translate="label description">
            <visible>1</visible>
            <label>Anchor Custom Text</label>
            <description>If empty, the Page Title will be used</description>
            <type>text</type>
        </anchor_text>
        <title translate="label">
            <visible>1</visible>
            <label>Anchor Custom Title</label>
            <type>text</type>
        </title>
        <template translate="label">
            <label>Template</label>
            <visible>1</visible>
            <type>select</type>
            <value>cms/widget/link/link_block.phtml</value>
            <values>
                <default translate="label">
                    <value>cms/widget/link/link_block.phtml</value>
                    <label>CMS Page Link Block Template</label>
                </default>
                <link_inline translate="label">
                    <value>cms/widget/link/link_inline.phtml</value>
                    <label>CMS Page Link Inline Template</label>
                </link_inline>
            </values>
        </template>
    </parameters>
</cms_page_link>

Как видите, параметры могут иметь простой тип (text, select) и более сложный тип с вспомогательным блоком:

            <helper_block>
                <type>adminhtml/cms_page_widget_chooser</type>
                <data>
                    <button translate="open">
                        <open>Select Page...</open>
                    </button>
                </data>
            </helper_block>

Введите здесь имя класса вспомогательного блока в нотации magento.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...