Помощь Управление доступом

Создай файл productn.php
admin/controller/catalog
Скопируй в него всё из файла
admin /controller/catalog/product.php
И поменяй примерно так: как в этом файле (этот файл controllera - от версии ocstore 1.5.4). В зависимости от своей версии opencart
Для просмотра ссылки Войди или Зарегистрируйся

Основные изменения в этом файле: Отмечено красным, что добавил.
Это
Первое:
<?php
class ControllerCatalogProductn extends Controller {

Второе:
public function index() {
$this->load->language('catalog/productn');

3)$this->template = 'catalog/product_list.tpl';
заменить на
$this->template = 'catalog/productn_list.tpl';
и
$this->template = 'catalog/product_form.tpl';
заменить на
$this->template = 'catalog/productn_form.tpl';
Остальное - нужно тестировать в процессе внесения товара - catalog/product которые есть в этом файле не все нужно менять на catalog/productn.
Так что с этим файлом нужно поработать.

Далее - admin / controller / common / header.php
добавить после $this->data['text_product'] = $this->language->get('text_product');
это
$this->data['text_productn'] = $this->language->get('text_productn');
И добавить строку:
после $this->data['product'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'], 'SSL');
Это:
$this->data['productn'] = $this->url->link('catalog/productn', 'token=' . $this->session->data['token'], 'SSL');

Далее в папке admin/ language / russian / catalog/ создаём файл productn.php
и копируем в него всё из файла admin/ language / russian / catalog/ product.php
и в новом файле productn.php меняем строчку
$_['heading_title'] = 'Товары';
на
$_['heading_title'] = 'Товары2';
Далее:
/ language / russian / common/header.php
добавляем строчку после
$_['text_product'] = 'Товары';
это
$_['text_productn'] = 'Товары2';

Тоже самое делаем и в папке english.

Далее. Создаём файл в папке admin / model / catalog/ productn.php
и копируем в него всё из файла admin / model / catalog/ product.php

Далее. Создаём файл в папке admin /view / template / catalog/ создать файл productn_form.tpl
и копируем в него всё из файла admin /view / template / catalog/product_form.tpl

Далее. Создаём файл в папке admin /view / template / catalog/ создать файл productn_list.tpl
и копируем в него всё из файла admin /view / template / catalog/product_list.tpl

Из этих двух файлов productn_list.tpl и productn_form.tpl нужно удалить строчку в самом начале файла
<a onclick="$('form').submit();" class="button"><?php echo $button_delete; ?></a> - Это кнопка удаления товара
Если нужно убрать "Изменить" кнопку то в файле
productn_list.tpl нужно искать что отвечает за вывод этой кнопки там какой то класс <td class="right">


Далее. в файле view / template / common/ header.tpl
после этой строки
<li><a href="<?php echo $product; ?>"><?php echo $text_product; ?></a></li>
Добавить:
<li><a href="<?php echo $productn; ?>"><?php echo $text_productn; ?></a></li>

После этого у тебя в админке появиться Каталог - Товар2 - без кнопки удаления и в настройках групп пользователей появится catalog/productn

Единственное что я ещё не понял, как правильно отредактировать файл admin /controller/catalog/productn.php - что бы сохранял товар. А то ошибку выдаёт. Но товар создаёт.

Соответсвенно для пользователей которых ты хочешь ограничить. Нужно отключить catalog/product а включить catalog/productn
Не думал еще заморочиться и сделать плагин на vqmod и поставить на продажу его?
 
Спасибо за идею. Еще вот что думаю можно обернуть в условие ( <?php if (...) { ;?> ) кнопки редактирования, удаления и то что не нужно в условие проверки группы пользователя. Вот только не знаю как это сделать пока.
Код:
<?php
if($this->customer->isLogged()&& $this->customer->getCustomerGroupId()=="ID группы"){
echo '<a href="index.php?route=account/logout">exit</a>';
}
?>
Вместо "ID группы" нужно вписать цифру идентификатора группы

Для просмотра ссылки Войди или Зарегистрируйся
 
Код:
<?php
if($this->customer->isLogged()&& $this->customer->getCustomerGroupId()=="ID группы"){
echo '<a href="index.php?route=account/logout">exit</a>';
}
?>
Вместо "ID группы" нужно вписать цифру идентификатора группы

Для просмотра ссылки Войди или Зарегистрируйся

Спасибо но это не то. Это принадлежность к группе покупателей, т.е фронтэнд, а нужно группу пользователей для админки
 
Кажись свершилось чудо ) Я наше как узнать группу пользователя. По умолчанию в опенкарте нет такой функции, ее нужно добавить в файл:
сайт/system/library/user.php
После
PHP:
class User {
    private $user_id;
    private $username;
добавить
PHP:
    private $UserGroupId;

после
PHP:
            if ($user_query->num_rows) {
                $this->user_id = $user_query->row['user_id'];
                $this->username = $user_query->row['username'];
добавить
PHP:
                $this->UserGroupId = $user_query->row['user_group_id'];

и в конце после функции
PHP:
      public function getUserName() {
        return $this->username;
      }
добавить нашу функцию
PHP:
      public function getUserGroupId() {
        return $this->UserGroupId;
      }

И теперь оборачиваем условием нужно нам место в админке
PHP:
<?php if ($this->user->getUserGroupId() == "1") {
выводим то что нужно;
} ?>
вместо 1 подставляем нужно значение, которое можно посмотреть в группах пользователей
 
Назад
Сверху