Как добавить атрибуты администратора в Magento - PullRequest
2 голосов
/ 11 августа 2011

Я хотел бы добавить некоторые новые атрибуты для пользователей-администраторов в Magento.Эти пользователи отличаются от клиентов (просто чтобы прояснить это), и можно только установить их user / name / фамилию / mail / pass, но я бы хотел добавить несколько новых атрибутов.

Для этогоИтак, я думаю, что я могу использовать функцию addattribute, но мне нужно выяснить, какой идентификатор у этих администраторов.Например, если я хочу добавить новый атрибут для клиента, я могу использовать функцию, подобную этой:

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

Таким образом, в этом случае «customer» - это идентификатор для клиентов.Как я могу узнать, какой идентификатор используется для пользователей с правами администратора?(этот вопрос можно расширить на «Как я могу найти разные идентификаторы для разных типов атрибутов в Magento?»).

== Есть вероятность, что это невозможно изменить.Я посмотрел на таблицу admin_user, и это довольно просто, все поля есть.Так что, возможно, в этом случае нет никаких атрибутов. ==

Спасибо

Ответы [ 3 ]

6 голосов
/ 11 августа 2011

Вы можете найти все такие идентификаторы (идентификаторы сущностей) в таблице eav_entity_type. И да, для администратора нет записи. Потому что все данные о пользователях администратора хранятся в плоских таблицах, а не в eav. Таким образом, чтобы добавить новый атрибут для пользователя с правами администратора, вам нужно добавить новый столбец в таблицу admin_user

0 голосов
/ 13 октября 2015

Вам нужно будет добавить столбец в таблицу 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')),
        )); 

Очистить кеш, и он должен работать.

0 голосов
/ 23 июля 2012

Без опции до 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>';
  }
?>
...