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

Не применяется апдейт в модуле


Recommended Posts

Установил сторонний модуль, в котором отсутсвует возможность отправки нотификаций в телеграмм. Написал тестовый фрагмент для отправки, проверил локально - рабочий, нотификации в ТГ идут.

Вставляю его в один из контроллеров модуля. Сам контроллер лежит по адресу catalog/extension/module/...

Нажимаю кнопку "Обновить" в модификаторах. Но такое ощущение, что этот рагмент кода не добавился. Я даже комментировал весь метод контроллера вместе с респонсом - никаких изменений. Пробовал даже делать ребут сервака.

Заглянул в install.xml. Там в контроллер 'common/header' добавляется метод 'send()'. Вот он мне и нужен. Но если зайти в контроллер 'common/header', то этого метода там нет. Этот метод я нашел совсем в другом контроллере, который и пробовал обновлять, о нем я написал вначале.

Несколько вопросов, подскажите новичку:

  1. судя по всему, install.xml добавляет фрагменты кода динамически когда прилетает запрос с фронта, верно? иначе бы в контроллере после установки модуля я бы увидел метод 'send()'.
  2. зачем в install.xml и в одном из контроллеров модуля продублирован этот метод? Это всегда так делаеть нужно, или просто скорее всего связано с какими-то особенностями работы конкретно этого модуля?
  3. куда мне добавить свой фрагмент с тегелраммом? в install.xml и произвести повторную установку? или есть варианты получше/поудобнее?
Надіслати
Поділитися на інших сайтах


Смотрите в модифицированных файлах

Для OpenCart 2: system/storage/modification/catalog/controller/common/header.php

Для OpenCart 3: storage/modification/catalog/controller/common/header.php

 

---

1 час назад, Yurii_l сказал:

Вставляю его в один из контроллеров модуля. Сам контроллер лежит по адресу catalog/extension/module/...

 

1 час назад, Yurii_l сказал:

Нажимаю кнопку "Обновить" в модификаторах. Но такое ощущение, что этот рагмент кода не добавился.

 

Непонятно, что Вы сделали: вставили в контроллер с помощью модификатора или просто в контроллер?

 

---

 

1 час назад, Yurii_l сказал:

судя по всему, install.xml добавляет фрагменты кода динамически когда прилетает запрос с фронта, верно?

Нет

 

1 час назад, Yurii_l сказал:

куда мне добавить свой фрагмент с тегелраммом? в install.xml и произвести повторную установку? или есть варианты получше/поудобнее?

Да. + упаковать архив ocmod.zip

 

---

Вот свежий блог на тему модификаторов:

 

  • +1 1
Надіслати
Поділитися на інших сайтах

9 hours ago, SergeTkach said:

Непонятно, что Вы сделали: вставили в контроллер с помощью модификатора или просто в контроллер?

Вставил просто в контроллер и в модификаторах нажал на кнопку обновить для сброса кеша. Судя по вашему ответу, единственный вариант добавить код  - через заранее измененный модуль (стандартная установка)? 

Надіслати
Поділитися на інших сайтах


@SergeTkach, а что если я напрямую добавлю изменения в Для OpenCart 3: storage/modification/catalog/controller/common/header.php ?

Так делают? Они могут перезатереться например при "обновлении" модификаторов (или кнопка "очистить" в модификаторах) или при установке новых модулей?

Надіслати
Поділитися на інших сайтах


2 часа назад, Yurii_l сказал:

Судя по вашему ответу, единственный вариант добавить код  - через заранее измененный модуль (стандартная установка)? 

Не единственный. Можно вписать код прямо в catalog/controller/common/header.php +обновить кеш модификаторов. Тогда код попадет в модифицированный файл и должно работать. Так делают, но иногда такие манипуляции приводят к конфликтам с модулями. А иногда нет.

 

Если нет ни одного модификатора, который задеват catalog/controller/common/header.php, то работает catalog/controller/common/header.php. А если хотя бы один модификатор его задевает, то работает его модифицированная версия.

 

---

А вот то, что сохранено напрямую в storage/modification/catalog/controller/common/header.php будет затерто при каждом обновлении кеша модификаторов. Но лично я сначала пишу код в модифицированном файле, и когда он становится нужной кондиции, то переношу в модификатор (xml).

 

---

Меня в этой всей истории смущает одно: Вы создали отдельный контроллер catalog/extension/module/... , а проводите манипуляции с catalog/controller/common/header.php - вот тут я ничего не понял. Или Вы в хедере хотите вызвать этот самый свой контроллер?

 

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

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

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

Important Information

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