将Magento Widget参数添加到Add Widget Instance编辑器

时间:2012-02-10 22:02:46

标签: magento widget

这个问题好像被多次询问,但没有回答。

我创建了一个小部件,可以将属性值添加到可配置的产品中。需要明确的是,如果可配置产品由基于属性大小和颜色的多个简单产品(相关产品)组成,那么我想向客户显示此可配置产品的“可用”尺寸和颜色。并且,我想以编程方式进行,而不是仅仅在说明中放入尺寸和颜色列表,因为目前不是所有尺寸或颜色都可用。所以我创建了这个小部件。

现在,我想制作一个可以使用任何相关产品属性的小部件的更通用版本。但是,要执行此操作,管理员设置窗口小部件需要从可用属性列表中选择属性。这实际上可以在将小部件添加到CMS页面时起作用,因为widget.xml文件中定义的参数允许这样做。

问题是我没有将小部件添加到CMS页面。我将它添加到产品页面。所以我需要在CMS使用Widget实例功能 - >小部件 - >添加新窗口小部件实例编辑器。但是,此编辑器具有前端属性和窗口小部件选项的选项卡。并且widget.xml文件中的参数未显示在此编辑器的“窗口小部件选项”选项卡中。

那么,有没有办法将参数添加到widget.xml文件中添加窗口小部件实例编辑器的窗口小部件选项选项卡(例如:

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

或者这是否需要增强实际的小部件实例编辑器?

感谢。

1 个答案:

答案 0 :(得分:4)

转到\app\code\core\Mage\Cms\etc\widget.xml并查看CMS页面链接窗口小部件选项:

<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>

正如您所看到的,参数可以是简单类型(文本,选择)和带有辅助块的更复杂类型:

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

这里输入的是magento表示法中的辅助块类名。