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

$setting фронтенд контроллера


kirillizan
 Поделиться

Рекомендованные сообщения

Пишу модуль с изображением, устанавливаевым в админке
Часть кода скомуниздил с дефолтного slideshow
Вроде всё почти работает, но не могу передать banner_id в контроллер фронтед-части
Notice: Undefined index: banner_id in ...catalog\controller\extension\module\helloworld.php )
Айдишник успешно определяется в бэкенде, но до фронтенда не доходит
Я думал, что $settings вью-контроллера передается из админ-контроллера, но походу это не так?
Кароче, вопрос, откуда вызывается контроллер модуля во view (где определяется $settings для метода index())

Изменено пользователем kirillizan
Ссылка на комментарий
Поделиться на других сайтах


Вывел $this->config, в нём есть инфа про статус модуля, но нет инфы про выбранный баннер (потому что инфа о баннере в конфиг не добавлялась)
Про дефолтный slideshow (который тоже установлен на странице) там тоже нет инфы, например, так что вряд ли информация передаётся через него
Хотя, возможно это потому, что он дефолтный?
Тем не менее, я бы хотел передать данные аналогично slideshow, а оно передаётся не через конфиг, а через $settings, мне кажется, это не случайно

Изменено пользователем kirillizan
Ссылка на комментарий
Поделиться на других сайтах


Мало информации?
Вопрос сводится к "где вызывается index() у вью-контроллера любого модуля", я думаю, у вас тоже есть какие-то контроллеры каких-то модулей
$settings передаётся у кучки стандартных модулей OCstore, я думаю, оно там же, где и вызовы всех остальных контроллеров любых модулей
Нашёл похожую тему про OC2, щас глянем

 

Ссылка на комментарий
Поделиться на других сайтах


2 minutes ago, kirillizan said:

Вопрос сводится к "где вызывается index() у вью-контроллера любого модуля"

debug_backtrace

 

А так если сходу то

./system/engine/action.php

Но это не полная цепочка

Ссылка на комментарий
Поделиться на других сайтах


Так, кароче, $settings можно найти в модели, в таблице oc_module
Я всё ещё не совсем понимаю, почему дефолтный слайдшоу модуль легко к нему обращается к нему как $settings, а мне походу придётся лезть в модель

вариант с config не совсем должен работать, потому что если ты сделаешь много копий своего модуля - они начнут менять конфиг друг друга, поэтому и используется этот $settings для каждого модуля

Ссылка на комментарий
Поделиться на других сайтах


Кароче, по итогу оно всё и изначально работало, просто notice спамится без причины.
Почему-то обращение к $setting['banner_id'] в дефолтном модуле не вызывает появления notice, а в кастомном модуле - вызывает.
Нотис убирается добавлением

if (isset($setting['banner_id'])){

Буду знать
P.s. $setting всех модулей можно отловить в контроллере файлов макета (типа conent_top)

Изменено пользователем kirillizan
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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