3 Stimmen

Hinzufügen von Magento Widget-Parametern in den Editor zum Hinzufügen von Widget-Instanzen

Diese Frage wurde anscheinend schon mehrfach gestellt, aber nicht beantwortet.

Ich habe ein Widget erstellt, das Attributwerte zu einem konfigurierbaren Produkt hinzufügt. Nur um das klarzustellen: Wenn ein konfigurierbares Produkt aus mehreren einfachen Produkten (verbundenen Produkten) besteht, die auf den Attributen Größe und Farbe basieren, dann möchte ich dem Kunden die "verfügbaren" Größen und Farben für dieses konfigurierbare Produkt anzeigen. Und ich möchte dies programmgesteuert tun, anstatt einfach eine Liste der Größen und Farben in die Beschreibung aufzunehmen, da möglicherweise nicht alle Größen oder Farben im Moment verfügbar sind. Also habe ich dieses Widget erstellt.

Nun wollte ich eine allgemeinere Version dieses Widgets erstellen, die das Attribut eines beliebigen Produkts verwenden kann. Dazu müsste aber der Administrator, der das Widget einrichtet, das Attribut aus einer Liste verfügbarer Attribute auswählen. Dies kann tatsächlich funktionieren, wenn man ein Widget zu einer CMS-Seite hinzufügt, da die in der Datei widget.xml definierten Parameter dies erlauben.

Das Problem ist, dass ich das Widget nicht zu einer CMS-Seite hinzufüge. Ich füge es zu Produktseiten hinzu. Ich muss also die Funktion "Widget-Instanz" unter CMS -> Widgets -> Editor "Neue Widget-Instanz hinzufügen" verwenden. Dieser Editor hat jedoch Registerkarten für Frontend-Eigenschaften und Widget-Optionen. Und die Parameter aus der Datei widget.xml werden auf der Registerkarte Widget-Optionen dieses Editors nicht angezeigt.

Gibt es also eine Möglichkeit, der Registerkarte "Widget-Optionen" des Editors "Widget-Instanz hinzufügen" Parameter aus der Datei widget.xml hinzuzufügen (z. B. etwas wie:

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

Oder ist dies etwas, das eine Erweiterung des eigentlichen Widget-Instanz-Editors erfordert?

Danke.

4voto

Dmytro Zavalkin Punkte 5205

Ir a \app\code\core\Mage\Cms\etc\widget.xml und sehen Sie sich die CMS Page Link Widget-Optionen an:

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

Wie Sie sehen können, können Parameter einen einfachen Typ (Text, Select) und einen komplexeren Typ mit Hilfsblock haben:

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

Geben Sie hier den Namen der Hilfsblockklasse in Magento-Notation ein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X