这个Magento例子将给你解释如何用自定义输入渲染添加新属性。你将修改已有的功能,添加JavaScript,一些其它的选项或者改变默认的输入渲染。 你可能会问什么是Magento输入渲染器。这是一个负责呈现HTML表单元素的Magento php类。在Magento里有不同的渲染类,你可以在/lib/Varien/Data/Form/Element的文件夹里找到它们。 让我们开始我们的示例吧。 首先创建Magento安装文件,下面是示例: <?php $installer = $this; $installer->startSetup(); $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'example_field', array( 'group' => 'General', 'type' => 'text', 'backend' => '', 'input_renderer' => 'test/catalog_product_helper_form_example',//definition of renderer 'label' => 'Example field', 'class' => '', 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE, 'visible' => true, 'required' => false, 'user_defined' => true, 'searchable' => false, 'filterable' => false, 'comparable' => false, 'visible_on_front' => false, 'unique' => false, 'apply_to' => 'simple,configurable,bundle,grouped', 'is_configurable' => false, )); $installer->endSetup(); 你可以看到,我们用“addAttribute”方法来添加属性,变量“$installer”是“Mage_Catalog_Model_Resource_Setup”的实例,前端输入渲染定义在数组 ‘input_renderer’ => ‘test/catalog_product_helper_form_example’ 下一步,你需要创建自己的输入渲染器。下面是我的例子(Alwayly_Test_Block_Catalog_Product_Helper_Form_Price),一个简单的类,为了用来演示。 <?php class Alwayly_Test_Block_Catalog_Product_Helper_Form_Example extends Varien_Data_Form_Element_Text { public function getAfterElementHtml() { $html = parent::getAfterElementHtml(); return $html." "; } } 在我的例子里,我添加java代码来禁用输入元素,管理员用户无法编辑此字段。 (责任编辑:好模板) |