Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


kirillizan

Recommended Posts

Пишу модуль с изображением, устанавливаевым в админке
Часть кода скомуниздил с дефолтного 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 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.