Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

Проблемы лога ocmod.log

Просмотров: 2471 RSS 4
Howto » Web development » E-commerce » OpenCart
,

Речь про версию oc2011. Вышедшую 1-2 дня назад oc2020 ещё не смотрел, хотя думаю, там та же беда.

В лог "ocmod.log" я уже заглядывал в самом начале знакомства с OC2 - там страшный бардак и чёрт ногу сломит. Этот лог - не помощник в поиске ошибок, а наоборот. Штука скорее бесполезная, которую надо взять и переделать.

Единственная хоть немного полезная в быту фича - возможность поискать строки "NOT FOUND!". И если они есть, можно отмотать вверх и убедиться - в твоём модуле ошибки случились или в каком-то другом.

Пока мне этого как-то хватало. Мало OCMOD-ами занимался. Но сегодня пришлось вплотную с ним разбираться и постигать логику находящихся в ocmod.log записей. И обнаружилось что-о-о-о? Правильно: очередной фееричный трындец.

Среди прочих записей у меня была такая:

CODE: <h2><?php echo $heading_title; ?></h2>
NOT FOUND!

Она оказалась самой информативной и точной. Немного отмотав лог вверх, можно найти строку "FILE: ..." и выяснить, в каком файле надо искать проблему. К слову: в этом блоке почему-то не было строки наподобие LINE: 16, которыми обычно сопровождаются как найденные, так и ненайденные блоки кода. Но если блок не найден, то вполне логично, что и номера строки не будет: не найден же. Так я подумал и принялся разгребать лог дальше.

Дальше была такая запись об ошибке:

CODE: <div class="col-sm-2"><img src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" title="<?php echo $heading_title; ?>" class="img-thumbnail" /></div>
LINE: 24
NOT FOUND!

Здесь логика сломалась. Попытка обсудить этот кусок с коллегой, больше работавшим с OCMOD, привела к быстрой поломке и его логики. Код из XML найден, строка такая-то. (Строка в XML и в исходнике совпадает полностью, это было сразу же проверено.) Но почему она NOT FOUND? Сразу после того, как была FOUND?

Бился я над этим часа два - проверял и то, и это, и концы строк, и trim="true", и настройки FTP-клиента (вдруг концы строк на лету конвертирует), и чёрт знает что ещё. В общем, 2 часа. Мучился до тех пор, пока не обратил внимание, что эта строка в исходнике - 21-я, а не 24-я. "Обана!" - подумал я. И сравнил эти строки в TPL клиента и в оригинальном файле.

И таки да - именно в этой строке был исправлен один символ. И немного дальше в нашей XML-ке были правила, касающиеся той строки, изменённой. Но какой-то, блин, гений в лог записал совершенно другую строку, а не 24-ую! Сбив меня со следа очень конкретно и уведя в совершенно неправильном направлении. Пля! Чтоб ему икалось.

Не лог, а предательство сплошное.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com friendfeed.com liveinternet.ru livejournal.ru yandex.ru del.icio.us
Комментариев: 4
  1. 2015-04-12 в 05:21:23 | Виталий

    Здравствуйте, Руслан. Тоже в полной мере оценил "информативность" лога во время отладки своих модулей при переводе их под ocmod. Насчет номера найденной строки, похоже что он пишет номер с учетом уже вставленных строк из предыдущих операций xml-файла.

  2. 2015-04-12 в 07:18:25 | Виталий (AKA vito)

    И еще пара наблюдений:

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

    -индексация вхождений (конструкции вида ) начинаются с нуля. Так что при адаптации модулей работавших под vqmod, нужно индексы уменьшать на единицу.

    Т.к. справка по ocmod фактически отсутствует, всё вышеописанное - результат личных наблюдений и изучения файла admin\controller\extension\modification.php

  3. 2017-02-08 в 11:16:59 | Константин

    Здравствуйте!

    А вот этот модуль не облегчит жизнь с логом:

    https://liveopencart.ru/opencart-moduli-shablony/moduli/adminka/modification-log-pomoschnik-v-rabote-s-modifikatorami

    Хотелось бы узнать ваше мнение по этому поводу - раздумываю поставить его себе.

  4. 2017-02-08 в 16:03:04 | Ruslan Brest

    А что раздумывать, он же бесплатный и ничего особенно не затрагивает? Не понравилось - выключил, удалил.

    Этим не пользовался, не скажу ничего конкретного. По скриншотам: редактировать окмоды из админки - полезная вещь. Скачивать их оттуда - тоже. Показывать наличие ошибок в логе - тоже замечательно.

Оставьте комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

Авторизация  Facebook. MaxSiteAuth. Loginza

(обязательно)