[Помогите] Отображение данных модуля в header

Тема в разделе "OpenCart", создана пользователем gatsby, 21 янв 2013.

  1. gatsby

    gatsby

    Регистрация:
    27 дек 2012
    Сообщения:
    144
    Симпатии:
    76
    Доброго всем дня.

    Суть вопроса - есть пару модулей (новости и отзывы покупателей). Хочу вывести данные из обоих модулей в хедере в dropdowm меню.

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

    Это реально? И чего прописать в контроллере, чтобы было было счастье? =)
     
  2. rem kwadriga

    rem kwadriga

    Регистрация:
    14 дек 2012
    Сообщения:
    43
    Симпатии:
    3
    Это реально.
    Я бы сделал примерно так:
    1. Создал бы дополнительное поле в какой-нибудь табличке БД, имеющей отношение к нужному модулю, в котором буду хранить информацию о кол-ве отображаемых новостей/отзывов.
    2. Добавил в модели модуля методы, записывающие и читающие из БД эти данные.
    3. Добавил бы в представление админки в нужном месте текстовое поле, куда нужно будет вводить необходимое нам кол-во.
    4. В контроллере модуля, соответствующего представлению, в котором мы добавили новое поле, в методе, принимающем данные и сохраняющем их, добавил бы операцию сохранения ко-ва новостей в БД (используя ранее созданный метод модели).
    5. В том же контроллере в индекс-методе передал бы в наше текстовое поле представления переменную, равную полученному (методом из модели) значению кол-ва новостей в БД (в представлении, разумеется, вывел бы эту переменную в текстовом поле, чтобы было видно, каково нынешнее значение).
    6. Получил нужное кол-во из БД с помощью метода модели в контроллере пользовательской части и передал это кол-во представлению.
    7. В представлении, там, где в цикле выводятся на страницу новости, добавил бы простую проверку: не превысило ли число уже выведенных новостей число, равное соответствующей переменной. Это делается примерно так:
    $i=0;
    foreach($news as $new){
    if($i<=$limit){
    echo $new;
    $i++;
    }
    }
    (впринципе, эту же проверку можно реализовать в том месте контроллера, или модели, где формируется массив новостей)
    6. Проделал бы всё то же самое для кол-ва знаков в новости/отзыве.
     
  3. gatsby

    gatsby

    Регистрация:
    27 дек 2012
    Сообщения:
    144
    Симпатии:
    76
    rem kwadriga, пока выкрутился подключением данных модулей в хедер. Ограничения соответственно в контроллере ставятся ручками. Спасибо за идею, буду думать.
     
  4. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    890
    Про дополнительние позиции читаем здесь