我正在尝试在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;
}
}
答案 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>
类,你就完成了!