限制供应商的产品激活

时间:2014-04-16 10:58:59

标签: magento

我有超级简单多供应商市场免费扩展。这用于多个供应商创建产品。这很有效。

但是,当供应商创建产品时,我希望产品被淘汰。只有管​​理员才能激活它们。

文件所在的任何提示都要修改?

1 个答案:

答案 0 :(得分:1)

好的,我找到了解决方案:

编辑文件 app / code / core / Mage / Catalog / Model / Product / Status.php

添加此函数以获取用户的角色ID:

/**
* get the role id of the logged in user
*/
static function role_id() {
    $username = Mage::getSingleton('admin/session')->getUser()->getUsername();
    $role_data = Mage::getModel('admin/user')->getCollection()->addFieldToFilter('username',$username)->getFirstItem()->getRole()->getData();
    return $role_data["role_id"];
}

修改此功能以隐藏不在管理员组中的用户的“已启用”下拉项:

static public function getOptionArray()
{
    if (self::role_id() == 1) {
        return array(
            self::STATUS_ENABLED    => Mage::helper('catalog')->__('Enabled'),
            self::STATUS_DISABLED   => Mage::helper('catalog')->__('Disabled')
        );
    } else {
        return array(
            self::STATUS_DISABLED   => Mage::helper('catalog')->__('Disabled')
        );
    }
}

这是删除“ - 请选择 - ”的东西:

static public function getAllOptions()
{
    if (self::role_id() == 1) {
        $res = array(
            array(
                'value' => '',
                'label' => Mage::helper('catalog')->__('-- Please Select --')
            )
        );
    } else {
        $res = array();
    }
    foreach (self::getOptionArray() as $index => $value) {
        $res[] = array(
           'value' => $index,
           'label' => $value
        );
    }
    return $res;
}

玩得开心!