2012-07-01 32 views
0

我想在Magento的後端添加一個colorpicker。到目前爲止,我有可能是這個班。 (見下文)。但我不知道如何Data.php文件應該看起來像。任何人幫助或給我一個例子?Magento後端:如何添加jscolor?

電賀

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

不是很確定這個,你可以直接在phtml文件中包含''afaik –

回答

1

您可以添加JS文件到佈局更新:

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

謝謝Siv,它工作正常 – user1491856

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類分配到輸入表單字段一樣簡單。我不確定這是否有意或無意,但這與向您的system.xml文件中添加<validate>節點一樣簡單。

<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>必要...沒有...包括腳本,通過<validate>節點給它一個類color,你就完成了!