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

您可以将 js 文件添加到布局更新:

<action method="addJs"><file>%folder%/%file%.js</file></action>
于 2012-07-01T07:39:19.357 回答
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 回答