0

Magento のバックエンドにカラーピッカーを追加しようとしています。これまでのところ、私はおそらくクラスを持っています。(下記参照)。しかし、Data.php ファイルがどのように見えるべきかわかりません。誰か助けてくれたり、例を教えてくれますか?

あいさつ

class Namespace_Module_Block_System_Config_Form_Field_Colorpicker extends Mage_Adminhtml_Block_System_Config_Form_Field
{
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
{
    $url  = Mage::getBaseUrl('js');
    $element->addClass("color");
    $output = "";
    if(!defined("_LOADED_JSCOLOR_")){
        $jspath = $url.'jscolor/jscolor.js';
        $output .= '<script type="text/javascript" src="'.$jspath.'"></script>';
        define("_LOADED_JSCOLOR_",1);
    }
    $output .= $element->getElementHtml();
    return $output;
}

}

4

2 に答える 2

1

私が構築しているモジュールは、管理者の構成フィールドで JSColor を使用できる場合に最適です。私はこの投稿に出くわし、JSColor の簡単なセットアップを調べましたが、これはすでに Magento に組み込まれています (少なくともバージョン 1.7.0.2 の時点では)。

管理レイアウト更新ファイルがある場合は、次を含めるだけです。

<adminhtml_system_config_edit>
    <reference name="head">
        <action method="addJs"><file>jscolor/jscolor.js</file></action>
    </reference>
</adminhtml_system_config_edit>

これをテストしたところ、JSColor スクリプトが 1.7.0.2 パッケージに既に含まれていることがわかりました。/js/jscolor/jscolor.js.

そこからは、colorクラスを入力フォーム フィールドに割り当てるだけです。これが意図したものかどうかはわかりませんが、ファイルに<validate>ノードを追加するのと同じくらい簡単です。system.xml

<fields>
    <bg>
        <label>Background Color</label>
        <frontend_type>text</frontend_type>
        <validate>color</validate>
        <sort_order>1</sort_order>
        <show_in_default>1</show_in_default>
        <show_in_website>1</show_in_website>
        <show_in_store>1</show_in_store>
    </bg>
</fields>

ほら!他にカスタマイズするものはありません... カスタムは<frontend_type>必要ありません... 何もありません... スクリプトをインクルードしcolor、ノードを介してクラスを<validate>指定すれば完了です!

于 2013-02-28T21:14:02.687 に答える
1

js ファイルをレイアウトの更新に追加できます。

<action method="addJs"><file>%folder%/%file%.js</file></action>
于 2012-07-01T07:39:19.357 に答える