用自定义输入渲染器添加Magento属性

redmaomail 2024-07-24 18:12 阅读数 67 #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&rdquo;的实例,前端输入渲染定义在数组 ‘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代码来禁用输入元素,管理员用户无法编辑此字段。

电商网站开发服务


红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机