[Помогите] Показывать определенные модули только для определенной группы покупателей

Тема в разделе "OpenCart", создана пользователем cherkas, 4 июн 2016.

  1. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    335
    Симпатии:
    44
    Здравствуйте! Задача описана в теме сообщения. Кто чем может помочь?

    т.е. скажем мне нужно вывести для оптовиков фильтр, или баннер какой то, а для дефолта баннер должен быть другой
     
    Последнее редактирование: 4 июн 2016
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.044
    Симпатии:
    775
    Нужно в контроллере модуля делать проверку группы покупателя и сбрасывать вывод, если покупатель не в той группе.

    PHP:
    if($this->customer->getGroupId() != 1){
        return 
    false;
    }
     
    cherkas нравится это.
  3. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    335
    Симпатии:
    44
    добрался наконец на практике до этого момента, подскажите пожалуйста, где именно сбрасывается вывод? куда вписать эту строчку
     
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.044
    Симпатии:
    775
  5. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    335
    Симпатии:
    44
    что то не так
    вставил код
    Код:
    <?php
    class ControllerModuleCategoryMenu extends Controller {
        protected function index($setting) {
            if($this->customer->getGroupId() != 2){
        return false;
    }
            static $module = .......
    получил ошибку
    Код:
    Fatal error: Call to undefined method Customer::getGroupId() in /.../.../.../.../.../catalog/controller/module/category_menu.php on line 4 
     
  6. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.044
    Симпатии:
    775
    У вас какая версия ОК?

    А вообще, не имеет значения - просто идёте в /system/library/customer.php или /system/library/cart/customer.php и смотрите название метода.
    Расположение файла зависит от вашей версии.
     
  7. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    335
    Симпатии:
    44
    а cart то тут при чем, если не секрет?

    у меня модуль "меню про" нужно показывать только группе оптовиков (номер группы =2) версия чистый опенкарт 1.5.6.4

    Вот фаил /system/library/customer.php

     
    Последнее редактирование: 4 июл 2016
  8. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.044
    Симпатии:
    775
    Спросите у Дэниэля Керра. Я тоже не знаю как корзина относится с классу покупателя, но он его в последней версии запихнул в эту директорию.
     
  9. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    335
    Симпатии:
    44
    подскажите куда смотреть название метода. как всё таки в моем случае будет выглядеть код сброса.
     
  10. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.044
    Симпатии:
    775
    Название - getCustomerGroupId.
    Остальной код без изменений
     
    cherkas нравится это.
  11. chukcha

    chukcha

    Регистрация:
    9 окт 2014
    Сообщения:
    281
    Симпатии:
    85
    А если несколько баннеров?

    В реальности, нужно делать все через настройки самого модуля
    Добавлять поле для выбора групп(ы) пользователя

    И уже в в контроллере в методе index их анализировать

    Но это реализация до 1.5 часов

    Решение предложенное Dotrox более быстрое
     
  12. cherkas

    cherkas

    Регистрация:
    25 фев 2013
    Сообщения:
    335
    Симпатии:
    44
    мне его решение подходит, мне нужно для оптового покупателя вывести отдельное развернутое меню в левом столбце.