我想为Magento中的管理员用户添加一些新属性。这些用户与客户不同(只是为了说清楚),并且只能设置他们的用户/名称/姓氏/邮件/通行证,但我想添加一些新属性。
为此,我想我可以使用addattribute函数,但我需要找出这些管理员用户的ID。例如,如果我想向客户添加新属性,我可以使用如下函数:
$setup->addAttribute('customer','attribute_id', $attr );
因此,在这种情况下,'customer'是客户的id。如何找出管理员用户使用的ID? (这个问题可以扩展到“如何在Magento中找到不同类型属性的不同ID?”)。
==有可能无法改变这一点。我看了一下admin_user表,它非常简单,所有字段都在那里。所以在这种情况下可能没有属性。==
由于
答案 0 :(得分:6)
您可以在eav_entity_type
表中找到所有此类ID(实体ID)。
是的,管理员用户没有记录。因为有关管理员用户的所有数据都存储在平面表中,而不是存储在eav中。因此,要向管理员用户添加新属性,您需要在admin_user
表
答案 1 :(得分:0)
1.7之前没有选择
这就是我在模板中用来向特定用户显示sku脏的但是工作正常:
<?php
//EGS SKU added for Power User
$_powerUser = 777;
if (Mage::getSingleton('customer/session')->getCustomer()->getId() == $_powerUser)
{
echo '<div class="price-from">' . $_product->getSku() . '</div>';
}
?>
答案 2 :(得分:0)
您需要在admin_user
表中添加一列。
$installer->getConnection()->addColumn($installer->getTable('admin/user'), 'location', array(
'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
'length' => 256,
'nullable' => true,
'default' => null
));
然后,如果要从后端添加/编辑此字段,则需要重写方法Mage_Adminhtml_Block_Permissions_User_Edit_Tab_Main::_prepareForm
并在其中添加新元素:
$fieldset->addField('location', 'select', array(
'name' => 'is_active',
'label' => Mage::helper('adminhtml')->__('location'),
'id' => 'is_active',
'title' => Mage::helper('adminhtml')->__('location'),
'class' => 'input-select',
'style' => 'width: 80px',
'options' => array('1' => Mage::helper('adminhtml')->__('Yes'), '0' => Mage::helper('adminhtml')->__('No')),
));
清除缓存,它应该可以正常工作。