Magento EAV: What is the 'source' setting used for?
I'm curious what this is used for? I defined the following source model for a custom attribute I added with an entity script, yet I have no idea how to make use of the source attribute. Maybe I can use it a Form Widget? The attribute I added was exportStatus to customer eav.
<?php
class Company_Customer_Model_Customer_Attribute_Source_ExportStatus
extends Mage_Eav_Model_Entity_Attribute_Source_Abstract
{
public function getAllOptions()
{
if (!$this->_options) {
$this->_options = array(
array(
'value' => '0',
'label' => 'Pending Export',
),
array(
'value' => '1',
'label' => 'Exported to Mainframe',
),
array(
'value' => '2',
'label' => 'Acknowledged by Mainframe',
)
);
}
return $this->_options;
}
}
and
<?php
class Company_Customer_Model_Resource_Eav_Mysql4_Setup extends Mage_Eav_Model_Entity_Setu开发者_运维技巧p
{
public function getDefaultEntities()
{
return array(
'customer' => array(
'entity_model' =>'customer/customer',
'attribute_model' => 'customer/attribute',
'table' => 'customer/entity',
'additional_attribute_table' => 'customer/eav_attribute',
'entity_attribute_collection' => 'customer/attribute_collection',
'attributes' => array(
'export_status' => array(
//'group' => 'Group/Tab',
'label' => 'Customer Export Status',
'type' => 'int',
'input' => 'select',
'default' => '0',
'class' => '',
'backend' => '',
'frontend' => '',
'source' => 'company_customer/customer_attribute_source_exportStatus',
'global' => 2, //global scope
'visible' => true,
'required' => false,
'user_defined' => false,
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => false,
'visible_in_advanced_search' => false,
'unique' => false
)
)
)
);
}
}
It allows you to create drop down menus.
See this article:
http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/installing_custom_attributes_with_your_module
Specifically Appendix A: Dropdown Options
精彩评论