如何在Magento中添加管理员用户属性

如何在Magento中添加管理员用户属性,magento,addattribute,Magento,Addattribute,我想为Magento中的管理员用户添加一些新属性。这些用户与客户不同(只是为了明确起见),只能设置他们的user/name/lastname/mail/pass,但我想添加一些新属性 要做到这一点,我想我可以使用addattribute函数,但我需要找出哪些是这些管理员用户的id。例如,如果我想向客户添加新属性,我可以使用如下函数: $setup->addAttribute('customer','attribute_id', $attr ); 因此,在本例中,“customer”是客户

我想为Magento中的管理员用户添加一些新属性。这些用户与客户不同(只是为了明确起见),只能设置他们的user/name/lastname/mail/pass,但我想添加一些新属性

要做到这一点,我想我可以使用addattribute函数,但我需要找出哪些是这些管理员用户的id。例如,如果我想向客户添加新属性,我可以使用如下函数:

$setup->addAttribute('customer','attribute_id', $attr );
因此,在本例中,“customer”是客户的id。我如何找出哪个id用于管理员用户?(这个问题可以扩展到“如何在Magento中为不同类型的属性找到不同的id?”)

==有可能无法改变这一点。我查看了admin_user表,它非常简单,所有字段都在那里。所以在这种情况下可能没有属性==

谢谢

您可以在
eav\u entity\u type
表中找到所有此类ID(实体ID)。 是的,没有管理员用户的记录。因为所有关于管理员用户的数据都存储在平面表中,而不是存储在eav中。因此,要向admin user添加一个新属性,您需要在
admin\u user
表中添加一个新列

直到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>';
  }
?>

您需要在
管理员用户
表中添加一列

$installer->getConnection()->addColumn($installer->getTable('admin/user'), 'location', array(
    'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
    'length' => 256,
    'nullable' => true,
    'default' => null
)); 
然后,如果要从后端添加/编辑此字段,则需要重写方法
Mage\u Adminhtml\u Block\u Permissions\u User\u edit\u Tab\u Main::\u 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')),
        )); 

清除缓存,它就会工作。

谢谢你的回答,vsushkov。但是手动添加这个新列也意味着修改admins模块,不是吗?我想仅仅在模板上添加它是不够的。。。我们还应该修改save函数?不,您不需要修改任何代码。在添加一个新列(如karma_points)后,您可以这样做:
Mage::getModel('admin/user')->load(1)->setKarmaPoints(500)->save()和相应的单元格将被更新。