Magento后端:如何添加jscolor?

时间:2012-07-01 05:09:56

标签: javascript magento backend color-picker

我正在尝试在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;
}

}

2 个答案:

答案 0 :(得分:1)

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

<action method="addJs"><file>%folder%/%file%.js</file></action>

答案 1 :(得分:1)

如果我可以让管理员配置字段使用JSColor,我正在构建的模块会很棒。我看过这篇文章,看了JSColor的简单设置,whaddya知道,这几乎已经内置到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>

Horray!没有其他任何东西可以自定义...没有必要的自定义<frontend_type> ...没有...包含脚本,通过color节点给它一个<validate>类,你就完成了!