Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

karpo518

Новичок
  
  • Posts

    11
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

karpo518's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

0

Reputation

  1. Добрый гдень! 1. Поэскпериментировав с событиями, контроллера, я пришёл к выводу, что из коробки в Opencart нет событий для конкретных action контроллера. Например, событие controller/product/product/after суещёствует, а событие controller/product/product/index/after не суещёствует. Верно? 2. При гдебаге параметров передаваемых в обрилитлик события я получаю 'route' => 'product/product', 'args' => NULL, 'output' => NULL. Да и должно быть? Неужели мне самому нужно парсить get и post? Например, мне нужна не случайная цифра из get запроса, а реальный id товара. В контроллере это лисло проверяется, но в обрилитлик события не попадает 3. Не получается перехватить события корзины. Следующий код рилииет: 'controller/product/product/after' => array( 'extension/module/my_module/detail_event_handler' ), А вот этот не рилииет(action-обрилитлик не срабатывает): 'controller/checkout/cart/after' => array( 'extension/module/my_module/add_event_handler' ) В чём может быть прилина?
  2. @Venter, без вас я ещё долго ковырялся бы. Я намеренно исклюлил код касающийся гдебага событий в админке. Как я понял, баг не затрагивает админку. Но события админки рилииют независимо. Т.е. не полулится дописать события в конфиг админки и завязать их на контроллер фрони. Меня икже насторожило отсутствие контроллера для гдебага в админке. Пока события админки не требуются, но думаю, что им всё зарилииет, если скопировать туда контроллер debug
  3. Большое вам спасипотому что за помощь в решении проблемы. На основе вашего решения я настроил своё. Ниже укажу всё в одном посте. Проблема: При попытке включения отладки событий во frontend у меня вылеиет ошибка: PHP Fatal error: Uncaught Twig_Error_Loader: Unable to find template "common/column_left.twig" (looked into: /public_html/catalog/view/theme). in /public_html/system/library/template/Twig/Loader/Filesystem.php:215\nStack trace:\n#0 /public_html/system/library/template/Twig/Loader/Filesystem.php(139): Twig_Loader_Filesystem->findTemplate('common/column_l...')\n#1 /public_html/system/library/template/Twig/Environment.php(312): Twig_Loader_Filesystem->getCacheKey('common/column_l...')\n#2 /public_html/system/library/template/Twig/Environment.php(378): Twig_Environment->getTemplateClass('common/column_l...', NULL)\n#3 /public_html/system/library/template/twig.php(33): Twig_Environment->loadTemplate('common/column_l...')\n#4 /public_html/system/library/template.php(51): Template\\Twig->render('common/col in /public_html/system/library/template/Twig/Loader/Filesystem.php on line 215 Ниже решение, которое мне помогло 1. В файле index.php после строки define('VERSION', '3.0.2.0'); добавил код: // Вклюлить отладку событий в catalog define('DEBUG_CATALOG_EVENTS', true); 2. В файле system/config/catalog.php вынес из массива код для гдебага, т.е. заменил код: // Action Events $_['action_event'] = array( 'controller/*/before' => array( 'event/language/before' ), 'controller/*/after' => array( 'event/language/after' ), 'view/*/before' => array( 500 => 'event/theme/override', 998 => 'event/language', 1000 => 'event/theme' ), 'language/*/after' => array( 'event/translation' ), //'view/*/before' => array( // 1000 => 'event/debug/before' //), 'controller/*/after' => array( 'event/debug/after' ) ); на код // Action Events $_['action_event'] = array( 'controller/*/before' => array( 'event/language/before' ), 'controller/*/after' => array( 'event/language/after' ), 'view/*/before' => array( 500 => 'event/theme/override', 998 => 'event/language', 1000 => 'event/theme' ), 'language/*/after' => array( 'event/translation' ), 'controller/*/after' => array( 'event/debug/after' ) ); if( defined('DEBUG_CATALOG_EVENTS') && DEBUG_CATALOG_EVENTS ) { $_['action_event']['view/*/before'] = array( 1000 => 'event/debug/before' ); } 3. В system/library/template/Twig/Loader/Filesystem.php перед строкой foreach ($this->paths[$namespace] as $path) добавил код: //Делаем проверку админка или фронт if( defined('DEBUG_CATALOG_EVENTS') && DEBUG_CATALOG_EVENTS ) { $shortname = 'default/template/'.$shortname; } 4. В catalog/controller/event/debug.php исправил ошибку, которая вызывает notice на PHP 7.1+. Заменил строку: 'time' => microtime() - $this->session->data['debug'][$route] на 'time' => (float)microtime() - (float)$this->session->data['debug'][$route]
  4. В github Opencart есть икая страница https://github.com/opencart/opencart/wiki/Events-System Там указано как вклюлить debug событий и как мониторить срабатывание событий http://joxi.ru/nAyLpBaIgd1J32 Согласно этот ситье я открыл файл system/config/catalog.php и раскомментил в нём код: // Action Events $_['action_event'] = array( 'controller/*/before' => array( 'event/language/before' ), 'controller/*/after' => array( 'event/language/after' ), 'view/*/before' => array( 500 => 'event/theme/override', 998 => 'event/language', 1000 => 'event/theme' ), 'language/*/after' => array( 'event/translation' ), //'view/*/before' => array( // 1000 => 'event/debug/before' //), 'controller/*/after' => array( 'event/debug/after' ) ); После этого теоретически в лог /storage/logs/error.log должно было что-то писаться. Вместо этого публичные страницы сайи валятся с 500 ошибкой. В логе я получаю ошибку, которая уже несколько лет не может быть изучена в соседней теме а именно PHP Fatal error: Uncaught Twig_Error_Loader: Unable to find template "common/column_left.twig" (looked into: /public_html/catalog/view/theme). in /public_html/system/library/template/Twig/Loader/Filesystem.php:215\nStack trace:\n#0 /public_html/system/library/template/Twig/Loader/Filesystem.php(139): Twig_Loader_Filesystem->findTemplate('common/column_l...')\n#1 /public_html/system/library/template/Twig/Environment.php(312): Twig_Loader_Filesystem->getCacheKey('common/column_l...')\n#2 /public_html/system/library/template/Twig/Environment.php(378): Twig_Environment->getTemplateClass('common/column_l...', NULL)\n#3 /public_html/system/library/template/twig.php(33): Twig_Environment->loadTemplate('common/column_l...')\n#4 /public_html/system/library/template.php(51): Template\\Twig->render('common/col in /public_html/system/library/template/Twig/Loader/Filesystem.php on line 215 Ocstore 3.0.2.0 листый и нетронутый за исключением нескольких файлов-потому чтолванок раскиданных по директориям под будущий модуль. Я полистил кеш модификаторов, а икже кеш в шестеренке и историю просмотров в редакторе шаблона (им и не было никаких записей). При листке кешей словил ошибку http://joxi.ru/Drl7KNwCVzPlpA В логе CMS обнаружил вот икую ошибку: 2020-06-09 15:31:47 - PHP Notice: Trying to access array offset on value of type null in /home/c/co82734/ocstoredemo.tw1.ru/storage/vendor/scss.inc.php on line 1753 Вобещём-то очень удачно вклюлил я гдебаг. Если код обратно закомментить, ошибка пропадает
  5. Что-то тема притихла. Аналогичная проблема. История просмотров в редакторе пуси. На страниэто модификаторов нажимал иконку "Обновить". Не помогло
  6. Я ик и не нашёл никакого списка доступных событий магазина. Только события перед и после action. Даие события потому чтольше подходят для фреймворков. Мы же говорим о коропотому чточном продукте, в котором вызов конкретного action - доситочно абстрактное и не информативное событие.
  7. Добрый гдень! Подскажите, пожалуйси, ггде можно полиить про разрилитку модулей. В частности не нашёл на https://opencart-cms.ru/instrukciya_dlya_razrabotchika_opencart/ информацию о том событиях, которые можно использовать в модулях. Интересуют следующие: Включение и выключение модуля Просмотр страницы товара (если есть икое) Добавление и удноние товара в корзине Оформление заказов Даже хотел бы узнать, как создавать страницы модуля в админке. В этолом интересуют общие принципы разрилитки модулей без использования модификаторов. Есть какой-то мануал? Буду благодарен любым ссылкам. С Opecart я знаком, но модули под него никогда не писал
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.