如果我们在文件system.xml中添加后端配置,我们可以使用如下所示的validate标记为每个字段添加验证:
<duration>
<label> ...</label>
<frontend_type >text</frontend_type>
<validate>required-entry validate-number</validate>
<source_model>adminhtml/system_config_source_yesno</source_model>
<sort_order>70</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</duration>
我的问题是,在magento中使用相似的方法来制作窗口小部件选项吗? 例如,在widget.xml文件中这样:
<widget type="common/widget">
<name>new widget</name>
<description>new widget</description>
<parameters>
<template>
<visible>0</visible>
<value>template.phtml</value>
</template>
<after translate="label">
<visible>1</visible>
<label>...</label>
<type>text</type>
<validate>required-entry validate-number</validate>
</after>
</parameters>
</widget>
答案 0 :(得分:1)
您无法通过XML直接执行此操作。但是,您可以创建自定义块,在那里设置验证css类,并将其用作widget.xml中的类型。
应用程序/代码/本地/ myNameSpace对象/ Mymodule中的/ etc / widget.xml:
<somefield>
<required>1</required>
<visible>1</visible>
<label>Some number</label>
<type>mynamespace_mymodule/element_numeric</type>
</somefield>
应用程序/代码/本地/ myNameSpace对象/ Mymodule中/砌块/元素/ Numeric.php:
class Mynamespace_Mymodule_Block_Element_Numeric extends Mage_Adminhtml_Block_Widget_Form_Renderer_Fieldset_Element
{
public function render(Varien_Data_Form_Element_Abstract $element)
{
$element->setType('text');
$element->addClass('validate-digits');
parent::render($element);
}
}
自定义元素块扩展类 Mage_Adminhtml_Block_Widget_Form_Renderer_Fieldset_Element 非常重要,这样它才能在字段集中正确显示。
答案 1 :(得分:1)
@Joe Mizzi方法渲染应该返回一个值
class Mynamespace_Mymodule_Block_Element_Numeric extends Mage_Adminhtml_Block_Widget_Form_Renderer_Fieldset_Element
{
public function render(Varien_Data_Form_Element_Abstract $element)
{
$element->setType('text');
$element->addClass('validate-digits');
return parent::render($element);
}
}