SerjBliznyuk
-
Публікації
4 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем SerjBliznyuk
-
-
Нашел решение на форуме от meowmeow
Ссылка на пост: https://opencartforum.com/topic/11529-resheno-proverka-kakaia-tekuschaia-stranitca-uslovi/
Ну смотри, это можно сделать без проблем в своем интернет-магазине. Потому что пользоваться им будешь только ты. А если это дополнение для распространения, то нужно делать так, чтоб совершенно не менять код движка. Представь, если пользователь, который скачал твой модуль/дополнение, устанавливает его, а твой модуль перезаписывает раннее отредактированный пользователем файл с его функциями. Не хорошо ведь получится. Потому я и пытаю возможность сделать именно так :)
-
Да, это шаблон, он для распространения, потому же и хочу добиться того, чтоб код шаблона был исключительно его кодом. И у меня это одновременно шаблон с модулем, тоесть если пользователь захочет, он включит модуль. В начале пути своего в контроллере controller/tool/upload я добавил свою строчку чтоб получать имя файла при выгрузке файла. Это я тоже хочу исправить. Сейчас (исключительно для опыта) я добавил две строчки кода в контроллер header: первая подгружает модель $this->load->model(extension/module/my_module), и вторая объявляет переменную с функцией из этой модели $data[theme-colors] = $this->extension_model_mymodule->getThemeColors(). И это работает, тоесть запускает фунцию модели, та получает из БД данные, и объявляет переменную с этими данными. Дальше в header.tpl перебираю переменную и т.д.В случае, если вы создаете новый шаблон для его дальнейшего использования на других сайтах, то рекомендую vqmod/ocmod, самое распространенное, на мой взгляд, решение.
Есть вариант, мои мысли. Да, как Вы и сказали использовать ocmod: при установке в файле install.sql прописать не только создание БД и т.п., а еще запись в БД в какую-то таблицу, которая используется при загрузке страницы запуск этой самой функции в контроллере+функции модели.
Вот теперь возникают вопросы. Есть ли такая таблица, где прописаны эти загрузки? Если же есть, то какие данные туда вставлять sql-запросом при установке шаблона/модуля чтоб при загрузке страницы срабатывала функция?
Продумываль мысль делать это всё во включенном модуле. Тоесть модуль сначала надо подключить и вставить на страницу. Но это глупо: переменная должна присутствовать буквально на каждой странице, и должна выводится между тегами <head></head> рядом с переменными $styles $scripts $analitics и .т.д.; пользователь не захочет вообще добавлять этот модуль; и много других причин. Тоесть в любом случае это нужно сделать по умному именно для header.tpl
-
Добра всем! Не то что бы знакомлюсь с движком, но и до мастера мне еще далеко. Возникла проблема, нужна переменная которая будет доступна в catalog/view/theme/my_template/common/header.tpl. В гуглях ничего не нашел, может плохо искал.
Да, без проблем можно вставить в соответствующем контроллере эту переменную + обращение к model... Но я не хочу лезть не в свой код. Хочу уложиться исключительно в свой код, свои классы и т.п. Задача следующая:
- пользователь открывает интернет магазин
- контроллер запускает функцию обращения к БД, функция возвращает данные из БД и объявляет эту переменную
- я прописываю в header.tpl своего шаблона вывод этой переменной и она выводится.
Можно (наверное) это прописать и в самом header.tpl, но это будет не эстетично.
Если это можно как-то реализовать не вмешиваясь в код самого движка, а используя исключительно файлы для своего модуля/шаблона, то подскажите пожалуйста как? Куда копать?
Доступ к переменной контроллера из любого файла шаблона
в Opencart 2.x: Налаштування та оптимізація
Опубліковано: · Змінено користувачем SerjBliznyuk
Хотя нет,извиняюсь за невежество свое, действительно ocmod может помочь. Только что почитал как это работает.