3

商品の説明フィールドにカタログ商品リンクウィジェットを追加できるようにしたい(説明内の他の商品に簡単にリンクできるようにするため)。次のようなファイルを作成して、Mage_Catalog_Model_Productを既に拡張しました。

class mymodule_Catalog_Model_Product extends Mage_Catalog_Model_Product
{

    /**
      * Add getDescription function that interprets widget or static blocks
      * within product descriptions
      */
    public function getDescription() {
        $processor = Mage::getModel('widget/template_filter');
        $html = $processor->filter($this->getData('description'));
        return $html;
    }

}

今、私が次のようなものを入力すると正常に動作します

{{widget type="catalog/product_widget_link" anchor_text="my text" template="catalog/product/widget/link/link_inline.phtml" id_path="product/1234"}}

説明フィールドに-製品ID1234へのリンクを作成します。

しかし、製品を編集するために、WYSIWYGエディターに実際のカタログ製品リンクウィジェットボタンを追加したいと思います。ボタンはすでにCMSエディターにありますが、製品を編集するためにこのウィジェットを管理インターフェイスに追加するために変更する必要があるものがありません。誰かが私を助けることができますか?

4

2 に答える 2

10

後で私のようにこれに遭遇した人は、cms_wysiwyg_config_prepareイベントを使用してこれをtrueに設定できます。

例:config.xml内

<events>
            <cms_wysiwyg_config_prepare>
                <observers>
                    <webtise_widgets>
                        <class>webtise_widgets/observer</class>
                        <method>cmsWysiwygConfigPrepare</method>
                    </webtise_widgets>
                </observers>
            </cms_wysiwyg_config_prepare>
        </events>

あなたのオブザーバーで

<?php class Webtise_Widgets_Model_Observer{

    public function cmsWysiwygConfigPrepare(Varien_Event_Observer $observer){
        $observer->getEvent()->getConfig()->setAddWidgets(true);
    }
}
于 2014-08-26T15:06:32.047 に答える
2

コアファイルをオーバーライドすることでこれを行うことができました

app/code/local/Mage/Adminhtml/Block/Catalog/Helper/Form/Wysiwyg/Content.php

と設定

$config['add_widgets']           = true;

これで、ウィジェットボタンが管理インターフェイスのすべてのWYSIWIGエディターに表示されます。

于 2013-01-18T22:51:51.303 に答える