Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Поиск по сайту

Результаты поиска по тегам 'контроллер'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разделы

  • Основной
    • Новости и анонсы
    • Предложения и пожелания
    • Акции, подарки, конкурсы и награды
  • Opencart 4.x
    • Opencart 4.x: Общие вопросы
    • Opencart 4.x: Установка и обновление
    • Opencart 4.x: Локализация
    • Opencart 4.x: Настройка и оптимизация
    • Opencart 4.x: Песочница
    • Opencart 4.x: Поиск модулей
    • Opencart 4.x: Отчёты об ошибках
  • Opencart 3.x
    • Opencart 3.x: Общие вопросы
    • Opencart 3.x: Установка и обновление
    • Opencart 3.x: Локализация
    • Opencart 3.x: Настройка и оптимизация
    • Opencart 3.x: Песочница
    • Opencart 3.x: Поиск модулей
    • Opencart 3.x: Отчёты об ошибках
  • Opencart 2.x
    • Opencart 2.x: Общие вопросы
    • Opencart 2.x: Установка и обновление
    • Opencart 2.x: Локализация
    • Opencart 2.x: Настройка и оптимизация
    • Opencart 2.x: Песочница
    • Opencart 2.x: Поиск модулей
    • Opencart 2.x / ocStore 2.x: Отчёты об ошибках
  • Реклама и продвижение
    • SEO-вопросы (оптимизация и продвижение магазина)
    • Контекстная реклама
    • Торговые площадки
    • E-commerce tracking и бизнес аналитика
    • Разное
  • Поддержка и ответы на вопросы
    • Общие вопросы
    • Установка, обновление, настройка
    • Шаблоны, дизайн и оформление магазина
    • Модули и дополнения
    • Помощь программистам и разработчикам
    • Мобильная витрина
    • Вопросы безопасности
    • Перевод
    • Отчёты об ошибках
    • Интернет-магазины и электронная коммерция
    • Песочница
  • Services
    • Создание магазинов под ключ
    • Design, layout and templates
    • Programming, creating modules, changing functionality
    • Setting up and minor work on an existing site
    • Обновление версии движка магазина
    • Наполнение магазина
    • Системное администрирование (настройка хостинга, серверов, ПО)
    • Другие услуги
  • Разное
    • Пользовательские обзоры дополнений
    • Примеры сайтов на OpenCart (ocStore)
    • Курилка
    • Предложения по улучшению

Категории

  • Шаблоны
    • Бесплатные шаблоны
    • Платные шаблоны
  • Фильтры
  • Цены, скидки, акции, подарки
  • Реклама и продвижение
  • Бонусы, купоны, программы лояльности
  • Блоги, новости, статьи
  • Покупки, оформление заказа, корзина
  • Опции
  • Атрибуты
  • Серии, Комплекты
  • Поиск
  • SEO, карта сайта, оптимизация
  • Кэширование, сжатие, ускорение
  • Платежные системы
  • Доставки
  • Редакторы
  • Меню, дизайн, внешний вид
  • Слайдшоу, баннеры, галереи
  • Письма, почта, рассылки, sms
  • Обратная связь, звонки
  • Обмен данными
  • Учет в заказе
  • Сравнения, закладки
  • Социальные сети
  • Парсеры
  • Модули
  • Инструменты, утилиты
  • Лицензии
  • Языковые пакеты
  • Прочее
  • Отчеты
  • Сборки
    • ocStore
  • Услуги
    • Графика и дизайн
    • Маркетинг

Категории

  • Служебные документы
  • Оплата
  • Документация Opencart

Категории

  • Общие вопросы
  • Покупка дополнений
  • Для разработчиков
  • Аккаунт
  • Техническая поддержка
  • Финансовый отдел

Категории

  • Интервью
  • Статьи

Product Groups

  • Услуги форума

Блоги

  • Konorws (Разработка и модификация Opencart)
  • Блог mr.Kent)
  • Прожектор Бритни Спирс
  • Layk
  • Продвижение интернет-магазина, seo оптимизация
  • Записная книжка
  • Блог RGB
  • Модули которые сделают сайт лучше
  • Блог веб-студии NeoSeo
  • Useful IT
  • Записи
  • Найденные решения проблем с Opencart
  • ocdroid blog
  • Заметки на полях...
  • Pimur
  • Серж Ткач
  • О жизни, смерти, о бизнесе и Опенкарте
  • Просто мысли от laim731
  • Маркетинг и продвижение интернет-магазина
  • Мой копирайтинг
  • SEO боксинг специального назначения
  • Get-Web Dev
  • Seok
  • Блоги sitecreator-а
  • Best practice
  • Vlad-Egorov-Blog
  • Блог spectre
  • commanddotcom
  • Внимание мошенники
  • Наблюдения обычного человека
  • Блог Rassol2
  • Блог Exploits
  • блог для натуралов
  • Настюша, тут есть темы
  • Пропитано рекламой
  • Tutorial
  • ОтВинта
  • Tg chnls
  • Блог
  • Блог sv2109
  • КАК ОРГАНИЗОВАТЬ НОВОСТНЫЕ ПОДПИСКИ НА БАЗЕ API OPENCART 3/0/2
  • VDS/VPS, серверы под Linux: установка, настройка, оптимизация
  • IT блог
  • Блог
  • Opencart SEO
  • Путёвые заметки о работе магазина NiceBike на платформе OpenCart
  • Blondi Blog
  • Полезные статьи, новости.
  • Блог владельца магазина
  • разное
  • ПРОДАЖА АКАУНТОВ-binance ВЕРИФИЦИРОВАННЫe ЧИСТЫЕ УСПЕВАЙТЕ КУПИТЬ ПО НИЗКОЙ ЦЕНЕ
  • Диспансеризация
  • wozobat
  • quasarbyte
  • Мой блог
  • Igorych
  • aaaaa
  • 👌🔊Bellsouth CUSTOMER support number 1+(8O8)678=9O64-☎phone number
  • Liudmila marketer
  • Заметки реалиста
  • ocstore на ноліках
  • Про Opencart
  • Блог про рутинні процеси в магазині на ocsote
  • Radaevich
  • Плагіни Opencart
  • Крафтовий OpenCart: Старт пригоди. Ціна створення сайту на Опенкарт

container

  • Support
  • Tutorials

Искать результаты в...

Искать результаты, содержащие...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

Зарегистрирован

  • Начать

    Конец


Группа


Сайт


Skype


Город:


Интересы

Найдено 20 результатов

  1. Здравствуйте, создавая свой контроллер, подключил загрузил в него уже существующий в подключенном контроллере есть переменная как теперь мне получить значение переменной $data['test']?
  2. Доброй ночи, господа вопрос таков, Нужно вывести название категории в которой находится товар в шаблон Category.tpl Наглядно: Фото товара, далее идет название категории в которой он расположен и далее кнопка купить и тд...
  3. Доброго времени суток. Есть задача: Необходимо настроить в админ панели выбор картинки для слайдера. Слайдер - отдельный модуль. Код контроллера admin/controller/module/slider.php: <?php class ControllerModuleSlider extends Controller { private $error = array(); // используется для установки ошибки, если такая возникла public function index() { $this->load->language('module/slider'); //подключаем языковой файл $this->document->setTitle($this->language->get('heading_title')); $this->load->model('setting/setting'); //подключаем модель setting, он позволяет сохранять настройки модуля в БД if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { // если мы нажали "Сохранить" в панели, мы сохраняем текущие настройки $this->model_setting_setting->editSetting('slider', $this->request->post); // анализ и передача данных в Setting Model для сохранения в базе данных $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); // редирект в Module Listing } // объявление переменных // формирование breadcrumbs // обработка ошибок из validate() // статус модуля // обработка текстовых полей // тут работа с изображением (пока что пробую сделать это с одним изображением) $this->load->model('tool/image'); if (isset($this->request->post['config_image1'])) { $data['config_image1'] = $this->request->post['config_image1']; } else { $data['config_image1'] = $this->config->get('config_image1'); } if (isset($this->request->post['config_image1']) && is_file(DIR_IMAGE . $this->request->post['config_image1'])) { $data['thumb1'] = $this->model_tool_image->resize($this->request->post['config_image1'], 100, 100); } elseif ($this->config->get('config_image1') && is_file(DIR_IMAGE . $this->config->get('config_image1'))) { $data['thumb1'] = $this->model_tool_image->resize($this->config->get('config_image1'), 100, 100); } else { $data['thumb1'] = $this->model_tool_image->resize('no_image.png', 100, 100); } $data['placeholder'] = $this->model_tool_image->resize('no_image.png', 100, 100); // далее завершающая часть (setOutput ) } protected function validate() { // проверка прав доступа пользователя для работы с модулем if (!$this->user->hasPermission('modify', 'module/category')) { $this->error['warning'] = $this->language->get('error_permission'); } // проверка заданы ли текстовые поля if (!$this->request->post['config_image1']) { $this->error['code'] = $this->language->get('error_code'); } return !$this->error; } } Кусок кода представления admin/view/template/module/slider.tpl: <div class="form-group"> <label class="col-sm-2 control-label" for="input-image"><?php echo $entry_image; ?></label> <div class="col-sm-10"><a href="" id="thumb-image" data-toggle="image" class="img-thumbnail"><img src="<?php echo $thumb1; ?>" alt="" title="" data-placeholder="<?php echo $placeholder; ?>" /></a> <input type="hidden" name="config_image1" value="<?php echo $config_image1; ?>" id="input-image" /> </div> </div> Кусок кода catalog/controller/module/slider.php: <?php class ControllerModuleSlider extends Controller { public function index() { $this->load->language('module/slider'); //подключаем любой языковой файл $data['heading_title'] = $this->language->get('heading_title'); //объявляем переменную heading_title с данными из языкового файла $data['slider_slide1_span'] = $this->config->get('slider_slide1_span'); $data['slider_slide2_span'] = $this->config->get('slider_slide2_span'); $data['slider_slide3_span'] = $this->config->get('slider_slide3_span'); $data['slider_slide4_span'] = $this->config->get('slider_slide4_span'); $data['slider_slide1_bold'] = $this->config->get('slider_slide1_bold'); $data['slider_slide2_bold'] = $this->config->get('slider_slide2_bold'); $data['slider_slide3_bold'] = $this->config->get('slider_slide3_bold'); $data['slider_slide4_bold'] = $this->config->get('slider_slide4_bold'); $data['config_image1'] = $this->config->get('config_image1'); //стандартная процедура для контроллеров OpenCart, выбираем файл представления модуля для вывода данных if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/slider.tpl')) { return $this->load->view($this->config->get('config_template') . '/template/module/slider.tpl', $data); } } }?> Кусок кода catalog/view/template/module/slider.tpl: <div class="main_title slide" > <img src="<?php echo $config_image1; ?>" alt="<?php echo $slider_slide1_span . ' ' . $slider_slide1_bold; ?>"> <div class="container--small"> <div class="title_text"> <span><?php echo $slider_slide1_span; ?></span> <h1><?php echo $slider_slide1_bold; ?></h1> </div> </div> </div> Проблема в том, что в представление catalog/view/module/slider.tpl $config_image1 передаётся как (unknown). Есть мысли, что это из-за модификации имён переменных, т.к. они участвуют в AJAX запросах. Подскажите, пожалуйста, почему приходит (unknown)? Не использую модель, т. к. с текстовыми полями это работает и по аналогии (из setting.php) пытаюсь сделать с картинкой.
  4. Как в /catalog/model/extension/total/shipping.php обратиться к продуктам в корзине? K $this->cart->getProducts(). Opencart 2.3
  5. Добрый день. У меня в классе продукта есть метод кототрый импортирует нужные товары, записей много и постоянно выскакивает ошибка таймаута. Решено запускать скрипт через консоль по ssh. Подскажите как в таком случае вызвать нужный контролер и в нем метод? Кто занимался подобным?
  6. Здравствуйте составил вот такой запрос к базе данных (необходимо иметь возможность быстро редактировать сумму заказа из формы заказа): $tsum = $this->db->query("SELECT total FROM oc_order WHERE order_id=414"); Как подставить в него id мне более менее понятно, сама база с запроса возвращает правильные данные. Вопрос - правильно ли я сделал запрос, так как шаблон переменную не возвращает. Пишет Undefined variable , как ее сделать правильно? И вообще можно ли лезть в базу данных с контроллера, или только в модели?
  7. Нужно прописать и вывести в админку новую переменную, конкретно в форме изменения заказа (версия 2.3) Вроде бы все просто, берем контроллер /admin/controller/sale/order.php и пишем в нем к примеру data['переменная'] = $this-> 'значение'; после public function getForm() { Далее пишем в файле шаблона <?php echo $переменная; ?> и дело сделано, переменная обозначена. Но я видимо делаю что то не так, так как вижу Notice: Undefined variable. Что я делаю не так и как это сделать правильно?
  8. Мне нужно изменить личный кабинет(создать контроллер и т.д.), но точно не знаю где находится папка отвечающая за страницу личный кабинет. Собственно задание: Доработать личный кабинет, чтобы зарег. пользователи могли писать новости, также добавить в меню в ЛК - ссылку на все новости пользователя и добавление новости. Также сделать отдельную стр. для всех новостей, всех пользователей и вывести в шапку сайта - ссылку на данную стр.
  9. Здравствуйте. Помогите, пожалуйста, советом. Версия Opencart 2.1.0.2 Суть вопроса: В каждой категории в левом меню выводим ссылку на информационную страницу (представление: catalog/view.../information/information.tpl контроллер: catalog/controller/information/information.php). Содержимое информационной страницы - динамическое. В частности, содержит вывод определённой строки, в зависимости от названия категории, с которой мы перешли на эту страницу. Создал в контроллере категорий методы, переменную и присваивание ей значений. Заходим в категорию - значение переменной генерируется правильно (проверил выводом переменной в category.tpl Как мне передать значение этой категории в контроллер information.php для вывода в представлении information.tpl? Можно ли эту переменную сделать "глобальной" ("сквозной")? И, главное, как? Рассматривал: 1. Передачу методом post при клике по ссылке 2. Добавить ручками таблицу в базу данных, отредактировать модель категории и информации, чтобы при открытии категории значение писалось в таблицу, а при открытии информационной страницы вытягивать его из базы. 3. Использовать сессии? Есть простое решение? Спасибо.
  10. Добрый день. Начинаю изучать opencart и столкнулся с такой проблемой. Мне нужно сделать выгрузку всех товаров в csv файл. Решил реализовать так - сделал модуль админки в которой по отправке формы перебираются все товары и информация о них записывается в фид. Но для получения ссылки на товар используя вот этот метод $this->url->link('product/product', '&product_id=' . $product['product_id']) получаю ссылку на товар в админке. Я так понимаю потому что в данном случае $this это экземпляр контроллера админки и метод url->link логично выдает такой урл. Но мне нужно получить урл на витринный товар. Подскажите можно ли из админки получить такую ссылку или возможно правильней будет делать как-то по другому. Есть мысли что можно сделать еще модуль для витрины и там получать все данные, но мне кажется что это не правильно так как модуль рассчитан только для администраторов и страницы на витрине у него не должно быть. Буду очень благодарен за любой совет. (п.с. Opencart 2.2.0)
  11. Всем привет! Вопрос, необходимо изменять текст в корзине, в зависимости от того, на какой категории находится пользователь. То есть в шаблоне корзины хочу вывести примерно следующее: <?php if ($category_id == 95){ ?> <h2>Корзина 1</h2> <?php }elseif ($category_id == 108){ ?> <h2 class="title">Корзина 2</h2> <?php } ?> Проблема в том, как определить переменную category_id в контроллере? Пробую так в cart.php: $category_info = $this->model_catalog_category->getCategory($category_id); $data['categories'] = array(); $data['category_id'] = $category_id; $results = $this->model_catalog_category->getCategories($category_id); Но не работает. Подскажите пожалуйста, кто знает?
  12. Здравствуйте уважаемые программисты, у меня возникла интересная ситуация, решил добавить в footer.tpl вывод логотипа сайта, но выходит ошибка типа Notice: Undefined variable: logo in/home/m/mirzvuka/public_html/catalog/view/theme/coloring/template/common/footer.tplon line 27 в самом footer.tpl ввел <?php echo $logo;?> в чем проблема может быть ?
  13. Пытаюсь в Opencart ocStore 2.1.0.2 в /catalog/controller/product/category.php внести правки, после чего заглядываю в категории магазина и не вижу своих изменений, думаю для теста удалить все содержимое файла, удаляю, обновляю, страница абсолютно без изменений (хотя /catalog/controller/product/category.php пустой), пробую дальше, переименовую файл category.php и обновляюсь - выдает ошибку. То есть получается, при пустом файле category.php у нас все хорошо работает. Вопрос, с чем это связано? И как мне все таки увидеть свои правки?
  14. Доброго времени суток уважаемые гуру форума! Заранее всем спасибо за внимание к моей проблеме. Описание: долго грузится категория (пациент: klukva-shop.ru/lico или любая другая категория), category.php что-то там такое исполняет секунд 5-10 и только потом начинает отдавать контент браузеру. Главная грузится быстро. Методом тыка понял что это controller/product/category.php. Файл прилагаетсяcategory.php Выставил $product_total = 0; не помогает​ Вопросы: 1. Правильно ли я грешу на контроллер category.php? 2. Если правильно что делать или хотябы куда смотреть?? P.S. У меня подозрение что он тупо вместо отдачи статичной страницы с линками на подкатегории еще и выполняет какие-то тяжелые задачи вроде формирование списков товаров при этом их не показывая...
  15. Здравствуйте, подскажите пожалуйста, как вывести на странице товара все категории в которых присутствует товар. К примеру, имеем товар - "бейсбольная бита" товар присутствует в категориях "спортивный инвентарь", средства защиты", "товары для автолюбитилей, другое". Собственно хочу вывести весь перечень категорий на странице товара. Выглядеть это будет примерно так: Цена: 199.00грн. Старая цена: 249.00грн. Категория: спортивный инвентарь, средства защиты, товары для автолюбитилей, другое. Модель: A-001 Статус: Есть в наличии Артикул: A-015 Категорию ссылками. Буду очень благодарен если подскажете как это сделать. Есть минимальный знания и в php и mysql, но пока "колупаеним контроллера и модела" ничего не добился, спасибо. Версия opencart 1.5.5.1
  16. Есть такой код $.ajax({ url: "http://open/admin/get_serials.php?callback=?", dataType: "jsonp", timeout: 60000, cache: false, crossDomain: true, async: false, data: { product_id: '.$order_product_id.', count_s: '.$count_s.', }, success: function(data){ alert(data); }, error: function() { alert("Error"); } }); получил то что мне надо, а как мне теперь полученные данные отправить в контроллер или хотя бы присвоить php переменной
  17. во вьюшке написал такой код $.ajax({ type: "get", url: 'index.php?route=sale/order/historyajax&order_id='+order_id, success: function(responce){ //alert(responce); }, error: function() { alert("error"); } }); }); в контроллере метод такой public function historyajax() { $this->load->model('sale/order'); $order_id=$this->request->get['order_id']; $this->model_sale_order->deleteOrder($order_id); } как мне узнать получил ли контроллер переменную order_id или нет, потому что функция deleteOrder не срабатывает)
  18. Ребят всем привет! Знакомство с опенкартом я начал вчера, но уже почти сверстал на нем главную страницу своего макета. Я создаю тему для последующей продажи ее на темфоресте. В общем я столкнулся с проблемой, и, я думаю вы можете помочь мне решить ее) Вот демо макета который я "натягиваю" на опенкарт: http://demo.matart.ru/ А в ступор вводит меня следующее: 1) Как вывести модуль (какой?) твиттера в header? но так, чтоб владелец шаблона мог в настройках указать свой логин для импорта твитов? Мой друг, который работет с опенкартом сказал что нужно переписать контроллер, но, опять таки, как это сделать? 2) Тоже самое с кнопками соц сетей, нужно чтоб владелец мог выводить нужные ему соц сети) 3) Как я понял, меню категорий должно тоже находится в header'e, правильно? тогда как сделать чтоб оно шло под слайдером, слайдер тоже в хедер? На данный момент это все что меня беспокоит :) Всем добра! P.s. если у кого есть вопросы или желание работать с themeforest, пишите, могу ответить на ваши вопросы или просто поделиться опытом.
  19. добрый день! я полный профан вообще. блондинистая блондинка. вот эскперементирую, создаю для себя свой сайт сама. образовалась проблема. перестал работать личный раздел в подвале сайта, а также в шапке: закладки, постоянный покупатель и оформление заказа. выдает следующее: Warning: Cannot modify header information - headers already sent by (output started at home/h77777/data/www/мой сайт.com/catalog/language/russian/russian.php:1) in /home/h77777/data/www/мой сайт.com/system/engine/controller.php on line 28Warning: Cannot modify header information - headers already sent by (output started at /home/h77777/data/www/мой сайт.com/catalog/language/russian/russian.php:1) in home/h77777/data/www/мой сайт.com/system/engine/controller.php on line 29 насколько я понимаю это проблема с этим файлом. перешла по пути. на для меня это просто ребус. помогите, что неправильно в коде. как поправить ситуацию. и возможно ли это?! что в этих строчках не так. цифр по идее не должно там быть, но что должно?! } protected function redirect($url, $status = 302) { header('Status: ' . $status); header('Location: ' . str_replace(array('&', "\n", "\r"), array('&', '', ''), $url)); exit(); } заранее благодарю за ответ))) если кто-то захочет помочь)))) вот сам код: <?php abstract class Controller { protected $registry; protected $id; protected $layout; protected $template; protected $children = array(); protected $data = array(); protected $output; public function __construct($registry) { $this->registry = $registry; } public function __get($key) { return $this->registry->get($key); } public function __set($key, $value) { $this->registry->set($key, $value); } protected function forward($route, $args = array()) { return new Action($route, $args); } protected function redirect($url, $status = 302) { header('Status: ' . $status); header('Location: ' . str_replace(array('&', "\n", "\r"), array('&', '', ''), $url)); exit(); } protected function getChild($child, $args = array()) { $action = new Action($child, $args); if (file_exists($action->getFile())) { require_once($action->getFile()); $class = $action->getClass(); $controller = new $class($this->registry); $controller->{$action->getMethod()}($action->getArgs()); return $controller->output; } else { trigger_error('Error: Could not load controller ' . $child . '!'); exit(); } } protected function render() { foreach ($this->children as $child) { $this->data[basename($child)] = $this->getChild($child); } if (file_exists(DIR_TEMPLATE . $this->template)) { extract($this->data); ob_start(); require(DIR_TEMPLATE . $this->template); $this->output = ob_get_contents(); ob_end_clean(); return $this->output; } else { trigger_error('Error: Could not load template ' . DIR_TEMPLATE . $this->template . '!'); exit(); } } } ?>
  20. Добрый день. У меня есть модуль, который выводит статьи в иерархической структуре (также, как модуль категорий). В нем большое кол-во статей и для пользователя я решил предусмотреть поле, где он бы смог по первым буквам произвести фильтрацию корневого уровня заголовков статей. За основу этого дополнения в существующий модуль я взял статью: https://opencartforum.com/topic/10422-svoi-modul-poiska/ . Но этого к сожалению не хватило, чтобы опция начала работать. Прошу вашей помощи, заранее благодарен. В общих чертах я решил реализовать задачу следующим образом: 1) в файле *.tpl разместить текстовый тег <input>, который возьмет запрос от пользователя и передаст в файл контроллера 2) файл контроллера в свою очередь передаст значение переменной в файл модуля 3) файл модуля отфильтрует в случае, если переменная не пустая, заголовки статей, после чего уже отфильтрованные заголовки попадут обратно в файл *.tpl Вью <div class="box"> <div class="box-heading"><?php echo $heading_title; ?></div> <form action="<?php echo $post_action; ?>" method="post" enctype="multipart/form-data"> <?php if ($poisk) { ?> <input type="text" name="poisk" value="<?php echo $poisk; ?>" /> <?php } else { ?> <input type="text" name="poisk" value="<?php echo 'Введите значение'; ?>" onclick="this.value = '';" onkeydown="this.style.color = '#000000';" /> <?php } ?> <?php foreach($articles as $article) { ?> <?php if ($article['articles'] == $poisk) ?> value=<?php echo $article['articles']?> > <?php echo $article['articles'] ?> <?php } ?> </form> <div class="box-content"> <div class="box-category"> <ul> <?php foreach ($articles as $article) { ?> <li> <?php if ($article['article_id'] == $article_id) { ?> <a href="<?php echo $article['href']; ?>" class="active"><?php echo $article['name']; ?></a> <?php } else { ?> <a href="<?php echo $article['href']; ?>"><?php echo $article['name']; ?></a> <?php } ?> <?php if ($article['children']) { ?> <ul> <?php foreach ($article['children'] as $child) { ?> <li> <?php if ($child['article_id'] == $child_id) { ?> <a href="<?php echo $child['href']; ?>" class="active"> - <?php echo $child['name']; ?></a> <?php } else { ?> <a href="<?php echo $child['href']; ?>"> - <?php echo $child['name']; ?></a> <?php } ?> </li> <?php } ?> </ul> <?php } ?> </li> <?php } ?> </ul> </div> </div> </div> контроллер <?php class ControllerModuleArticle extends Controller { protected function index($setting) { $this->language->load('module/article'); $this->data['heading_title'] = $this->language->get('heading_title'); if (isset($this->request->get['id'])) { $parts = explode('_', (string)$this->request->get['id']); } else { $parts = array(); } if (isset($parts[0])) { $this->data['article_id'] = $parts[0]; } else { $this->data['article_id'] = 0; } if (isset($parts[1])) { $this->data['child_id'] = $parts[1]; } else { $this->data['child_id'] = 0; } $this->data['post_action'] = $this->url->link('catalog/article'); $this->load->model('catalog/article'); $this->data['articles'] = array(); $articles = $this->model_catalog_article->getArticles(0); $this->data['articles'] = $articles; $this->data['poisk'] = false; if (isset($this->request->get['poisk'])) { $this->data['poisk'] = $this->input->get['poisk']; } else { $this->data['poisk'] = ''; } //////////////////////// -------------- модель <?php class ModelCatalogArticle extends Model { public function getArticle($article_id) { return $this->getArticles((int)$article_id, 'by_id'); } public function getArticles($id = 0, $type = 'by_parent') { static $data = null; if ($data === null) { $data = array(); $sql = "SELECT * FROM " . DB_PREFIX . "article a LEFT JOIN " . DB_PREFIX . "article_description ad ON (a.article_id = ad.article_id) LEFT JOIN " . DB_PREFIX . "article_to_store a2s ON (a.article_id = a2s.article_id) WHERE ad.language_id = '" . (int)$this->config->get('config_language_id') . "' AND a2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND a.status = '1'"; if (!empty($data['poisk'])) { $sql .= " AND LCASE(ad.name) LIKE '" . $this->db->escape(utf8_strtolower($data['poisk'])) . "%'"; } $sql .= " ORDER BY a.parent_id, a.sort_order, ad.name"; $query = $this->db->query($sql); foreach ($query->rows as $row) { $data['by_id'][$row['article_id']] = $row; $data['by_parent'][$row['parent_id']][] = $row; } } return ((isset($data[$type]) && isset($data[$type][$id])) ? $data[$type][$id] : array()); } ///////////////////////////////////-----------------------------------------
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.