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

Не работают OCMOD Модификаторы


Arion

Recommended Posts

Здравствуйте! Прошу помочь разобраться в проблеме. Полностью перестали работать модификаторы (которые в админке в разделе Модули/Расширения - > Модификаторы). Список модификаторов есть, они включаются и выключаются, НО при обновлении кэша модификаторов на сайте не происходит абсолютно никаких изменений, как будто модификаторов никаких и не установлено. Причём если я создаю файл ***.ocmod.xml и добавляю его в /system, то всё работает как и нужно, но стоит этот же код модификатора установить через админку, он совсем не работает. Не знаю в какую даже сторону копать... Ошибок в логах никаких....И не обратил внимание после чего это началось. Opencart 2.3.0.2

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


9 минут назад, Soong сказал:

фикс окмода стоит?

который решает проблемы с ftp?

при чем тут он?

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

начать с просмотра логов модификаторов

 

периодически встречаю сайты со странным багом в работе системы модификаций

а именно - в некорректной обработке системой OCMOD директивы ABORT в модификаторах

 

стандартно, если мод не находит нужный код с такой директивой - выполнение этого мода прерывается и выполняются следующие модификаторы

на проблемных же - происходит полное прерывание работы всей системы OCMOD, т.е. до обработки последующих модов уже не доходит

 

так что если в логе последняя запись ABORT на каком-то модификаторе - попробуйте отключить его, обновить кеш модификаторов и проверить работу ocmod

возможно ваш случай

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

14 часов назад, AlexDW сказал:

начать с просмотра логов модификаторов

 

периодически встречаю сайты со странным багом в работе системы модификаций

а именно - в некорректной обработке системой OCMOD директивы ABORT в модификаторах

 

стандартно, если мод не находит нужный код с такой директивой - выполнение этого мода прерывается и выполняются следующие модификаторы

на проблемных же - происходит полное прерывание работы всей системы OCMOD, т.е. до обработки последующих модов уже не доходит

 

так что если в логе последняя запись ABORT на каком-то модификаторе - попробуйте отключить его, обновить кеш модификаторов и проверить работу ocmod

возможно ваш случай

 

Огромное спасибо!)) Поменял abort на skip -  заработало)) Сам бы никогда не додумался)

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


  • 8 months later...
В 26.11.2018 в 21:50, AlexDW сказал:

некорректной обработке системой OCMOD директивы ABORT в модификаторах

Сегодня как раз наткнулся на этот баг, при чём именно ваш модификатор от ExtendedSearch и привёл к его проявлению.

 

Похоже, что проблема вот здесь (файл /admin/controller/extension/modification.php):

if ($error == 'abort') {
  $modification = $recovery;
  // Log
  $log[] = 'NOT FOUND - ABORTING!';
  break 5;
}

А конкретно в "break 5" - вместо выхода из цикла обработки команд текущего модификатора оно выходит из цикла обработки всех модификаторов.

Вместо 5 должно быть 4.

 

Пойду отправлю Дэниэлю багрепорт, хотя уверен, он скажет, что так и должно быть, а я просто не разбираюсь в сортах говна.

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


4 часа назад, Dotrox сказал:

А конкретно в "break 5"

лучше бы метку поставил :) было бы надежней, чем считать уровень брейков

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

забавное в том, что в vqmod это как раз нормально работало

и задумка-то изначально была сделать так же, но вышло как всегда

 

копался поверхностно в свое время

думал патч какой сделать, но вроде есть нюансы в разных версиях

плюнул и сейчас просто убираю abort

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

3 минуты назад, AlexDW сказал:

но вроде есть нюансы в разных версиях

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

 

 

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

лучше бы метку поставил :) было бы надежней, чем считать уровень брейков

goto?

Обычно goto указывает на необходимость рефакторинга... правда, 5 вложенных циклов тоже на неё указывают.

 

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


14 минут назад, Dotrox сказал:

Обычно goto указывает на необходимость рефакторинга...

бред... Это вбито в голову последователями процедурного программирования..

Почему то в асме никто не говорит что jump это плхо :)

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

18 минут назад, Dotrox сказал:

А там есть альтернативы?

а чем плох goto?

Вот исходя из недавнего обсуждения...
Что мол вызов метода(функции) - это затраченное время..

А если как ты говоришь  требуется рефакторинг, то это дополнительные проверки на условие выхода из цикла.

Так что определись - что лучше простой и понятный goto или сложные условия прохождения цикла

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

3 минуты назад, chukcha сказал:

А если как ты говоришь  требуется рефакторинг, то это дополнительные проверки на условие выхода из цикла.

Так условия уже ведь есть, просто они выходят в окно :)

 

Под рефакторингом я подразумевал как раз избавления от кучи вложенных циклов.

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

 

 

14 минут назад, chukcha сказал:

Вот исходя из недавнего обсуждения...
Что мол вызов метода(функции) - это затраченное время..

Это экономия на спичках.

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


18 минут назад, Dotrox сказал:

это плохая идея сразу по нескольким причинам (память, время выполнения).

Это делается один раз, а не по мере вызова..

 

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

19 минут назад, chukcha сказал:

Это делается один раз, а не по мере вызова..

Я знаю. В этом же основное концептуальное отличие от vQmod.

 

Вопрос в другом: в магазине с кучей модификаторов, либо особо огромными модификаторами генерация кеша может просто завалиться после добавления очередного модификатора. Оно ж и модифицированные файлы все в памяти держит до завершения полного обхода модификаторов и их применения.

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


  • 4 months later...

такая же ситуация возникла. абортились все модификаторы.

 

В 26.11.2018 в 22:50, AlexDW сказал:

так что если в логе последняя запись ABORT на каком-то модификаторе - попробуйте отключить его, обновить кеш модификаторов и проверить работу ocmod

возможно ваш случай

нашёл проблемный - отключил. точнее даже два. один из которых от AlexDW - AO Tooltips.

 

В 19.08.2019 в 06:30, Dotrox сказал:

А конкретно в "break 5" - вместо выхода из цикла обработки команд текущего модификатора оно выходит из цикла обработки всех модификаторов.

Вместо 5 должно быть 4.

 

это 100% корректное решение ситуации?

модулей много будет устанавливаться, кто знает, сколько ещё раз с такой проблемой столкнусь

 

или может есть какие-то другие фиксы?

ocStore 2.3

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


  • 1 year later...
В 19.08.2019 в 06:30, Dotrox сказал:

Похоже, что проблема вот здесь (файл /admin/controller/extension/modification.php):



if ($error == 'abort') {
  $modification = $recovery;
  // Log
  $log[] = 'NOT FOUND - ABORTING!';
  break 5;
}

А конкретно в "break 5" - вместо выхода из цикла обработки команд текущего модификатора оно выходит из цикла обработки всех модификаторов.

Вместо 5 должно быть 4.

 

просто заменить 5 на 4ре и будет работать?

Змінено користувачем wwizard
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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