Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create Magento Backend Field ReadOnly

I would like to create a read-only field in the backend at the client's Magento. create fields to know (through a module) is as follows:

 $installer->addAttribute("customer", "attrcode",  array(
     "type"     => "varchar",
     "backend"  => "",
     "label"    => "label",
     "input"    => "text",
     "source"   => "",
     "visible"  => true,
     "required" => false,
     "default" => "",
     "frontend" => "",
     "unique"     => false,

    ));

this way it creates the field, but he's not just reading ...

Thank You

like image 475
Jose Eduardo Avatar asked Feb 12 '26 00:02

Jose Eduardo


1 Answers

I don't think what you are trying to is possible using addAttribute(), _prepareValues($attr) method only allow specific values that are store in $data.

Take a look @ app/code/core/Mage/Eav/Model/Entity/Setup.php

public function addAttribute($entityTypeId, $code, array $attr)
{
    $entityTypeId = $this->getEntityTypeId($entityTypeId);
    $data = array_merge(
        array(
            'entity_type_id' => $entityTypeId,
            'attribute_code' => $code
        ),
        $this->_prepareValues($attr);
     );
    .....
    if ($attributeId) {
        $this->updateAttribute($entityTypeId, $attributeId, $data, null, $sortOrder);
    } else {
        $this->_insertAttribute($data);
    }
    .......
 }


protected function _prepareValues($attr)
{
    $data = array(
        'backend_model'   => $this->_getValue($attr, 'backend'),
        'backend_type'    => $this->_getValue($attr, 'type', 'varchar'),
        'backend_table'   => $this->_getValue($attr, 'table'),
        'frontend_model'  => $this->_getValue($attr, 'frontend'),
        'frontend_input'  => $this->_getValue($attr, 'input', 'text'),
        'frontend_label'  => $this->_getValue($attr, 'label'),
        'frontend_class'  => $this->_getValue($attr, 'frontend_class'),
        'source_model'    => $this->_getValue($attr, 'source'),
        'is_required'     => $this->_getValue($attr, 'required', 1),
        'is_user_defined' => $this->_getValue($attr, 'user_defined', 0),
        'default_value'   => $this->_getValue($attr, 'default'),
        'is_unique'       => $this->_getValue($attr, 'unique', 0),
        'note'            => $this->_getValue($attr, 'note'),
        'is_global'       => $this->_getValue($attr, 'global',
                                 Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL
                             ),
    );

    return $data;
}
like image 200
Renon Stewart Avatar answered Feb 14 '26 13:02

Renon Stewart



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!