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



我想在Magento中添加一些新的管理用户属性。这些用户不同于客户(只是为了弄清楚),并且只能设置他们的用户名/姓氏/邮件/通行证,但是我想添加一些新属性。

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

$setup->addAttribute('customer','attribute_id', $attr );

在这个例子中,'customer'是客户的id。如何找出管理员用户使用的id ?(这个问题可以扩展为"我如何找到Magento中不同类型属性的不同id ?")

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

谢谢

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

中添加一个新列

您需要在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')),
        )); 

清除缓存,它应该工作

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

相关内容

  • 没有找到相关文章

最新更新