【问题标题】:How to add admin user attributes in Magento如何在 Magento 中添加管理员用户属性
【发布时间】:2011-08-11 07:40:36
【问题描述】:

我想为 Magento 中的管理员用户添加一些新属性。这些用户与客户不同(只是为了说清楚),只能设置他们的用户/姓名/姓氏/邮件/密码,但我想添加一些新属性。

为此,我想我可以使用 addattribute 函数,但我需要找出这些管理员用户的 id。例如,如果我想为客户添加一个新属性,我可以使用这样的函数:

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

因此,在这种情况下,“客户”是客户的 ID。如何找出管理员用户使用的 id? (这个问题可以扩展为“如何在 Magento 中找到不同类型属性的不同 id?”)。

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

谢谢

【问题讨论】:

    标签: magento addattribute


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答,vsushkov。但是手动添加这个新列也意味着修改管理员模块,不是吗?我想只在模板上添加它是不够的......我们还应该修改保存功能?
    • 不,您不需要修改任何代码。添加新列(例如 karma_points)后,您可以执行以下操作:Mage::getModel('admin/user')->load(1)->setKarmaPoints(500)->save();,相应的单元格将被更新。
    【解决方案2】:

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

    清除缓存,它应该可以工作了。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-22
        • 1970-01-01
        • 2014-01-12
        相关资源
        最近更新 更多