Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Linkoln

Пользователи
  
  • Posts

    182
  • Joined

  • Last visited

1 Follower

Recent Profile Visitors

1,356 profile views

Linkoln's Achievements

Collaborator

Collaborator (7/14)

  • Dedicated Rare
  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done

Recent Badges

8

Reputation

  1. Если обработчик возвращает что-либо, то дальше события по этому триггеру не вызываются
  2. В общем, решил проблему. Router с админки вызывался из за косяка с конфигов. А письма не отправлялись по той же, что и у вас причине. Был кастомный модуль, который навешивал событие на тот же триггер и вызывал свой же метод - заглушку, который и не давал следующему событию всплыть. Пока разбился в этом всем, узнал наконец как работают события ) Всем спасибо (в особенности halfhope), тему можно закрывать.
  3. Еще интересный момень, когда пытаюсь что-то залогировать в Loader, то логи начинает писать только после манипуляций с админкой (хоть перезагрузка страницы), когда на клиенте что-то делаешь, что-угодно, loader не срабатывает. Я так понимаю, это не нормально?
  4. В общем, на втором шаге выяснил, что у меня регистрируются далеко не все события, которые возвращает model/setting/event.php->getEvents(). Я так понимаю, за получение пользовательских событий из базы и их регистрацию отвечает catalog/controller/startup/event.php. Пробовал на него навесить логи, но он будто и не вызывается вовсе, то есть - логи чистые вообще. Подскажите пожалуйста, а в каком файле он подключается?
  5. Хотя смысл, если у меня в зарегистрированных ничего не показывает. Хотя в базе они все есть. И админские работают же. Нет, тут какая-то другая причина скорее - всего
  6. Если в event.php именно зарегистрированные, то у меня получается нет.. заргистрированных. Проверял я так: public function trigger($event, array $args = array()) { $log = new Log('events.log'); $log->write('Event fired: '.$event); foreach ($this->data as $value) { if (preg_match('/^' . str_replace(array('\*', '\?'), array('.*', '.'), preg_quote($value['trigger'], '/')) . '/', $event)) { $result = $value['action']->execute($this->registry, $args); $log->write('Action executed: '.$value['action']->getId()); $log->write('Action result: '.$result); if (!is_null($result) && !($result instanceof Exception)) { return $result; } } } }
  7. Всех приветствую, дорогие форумчане. Столкнулся со стандартной проблемой: сайт перестал отправлять email о заказе. Кинулся смотреть таблицу event - там все стандартно. Принялся дебажить событие mail/order вызываемое по триггеру catalog/model/checkout/order/addOrderHistory/before и тут вижу следующую картину: у меня вообще не срабатывают события каталога. Админские работают, а события каталога - совсем нет. 2 дня гуглил, но по этой теме инфы почти нет. Прошу подсказать, у кого какие есть идеи - почему события могут пропасть для фронта или хотя бы в какой стороне искать корень проблемы
  8. P.S. На самом деле количество "удачных" и "неудачных" записей всегда разное, 5-6 я написал для примера, в действительности эта цифра всегда разная. Никакой системы я в этом не нашел. Порядок запросов одинаковый
  9. Народ, 2 дня убил, уже и на redis пробовал перевести, думал с сессиями что-то, ничего не вышло. Провел следующий эксперемент: в контроллере, который вызывается первым: extension/quickcheckout/set добавил установку в сессию случайного значения, назвал его rand $rand = rand(10,99); $this->session->data['rand'] = $rand; var_dump('rand = ' . $rand ); В контроллере, который вызывается следующим: extension/quickcheckout/cart добавил просто вывод этой переменной из сессии var_dump('$this->session->data[\'rand\'] = ' . $this->session->data['rand'] ); При клике в корзине на кнопку "+" происходит отправлка данных на extension/quickcheckout/set там в сессию записывается значение, следом грузится extension/quickcheckout/cart (Очередность проверял, выводил время в милисекундах - все четко, порядок именно такой). И вот что мы получаем, где-то 1-5 раз в обоих случаях выводится верное значение, потом несколько раз в extension/quickcheckout/cart показывает предыдущее. Логично было предположить, что в первом контроллере не устанавливается значение, для того, что бы это проверить, я быстро набросал модель castom/custom с одним методом, котрый возвращает текущее значение $this->session->data['rand']. public funtion getRand(){ if(isset($this->session->data['rand'])){ return $this->session->data['rand']; } else { return 0; } } Теперь в extension/quickcheckout/set (котроллер, который вызывается первым) стал проверять текущее значении сессии, полученное из этой модели $this->session->data['rand'] = rand(10,99); var_dump( $this->session->data['rand'] ); // 1 $this->load->model('custom/custom'); $fromCustom = $this->model_custom_custom->getRand(); var_dump($fromCustom ); // 2 Значение в строке 1 и в строке 2 ВСЕГДА выводит одинаковое. Но если продолжить добавлять товар в корзину, то происходит эта долбанная магия: 5 раз значение показывается одинаковое во всех трех выводах (48, 21, 55, 74, 59). Затем, на 6-й раз в extension/quickcheckout/set в строке 1 и строке 2 показывает новое значение: 33, а в extension/quickcheckout/cart показывает предыдущее значение rand - 59 . Проверяю базу, в базе лежит 59. У меня совсем закончились мысли, что это может быть. Получается в одном месте значение ссессии устанавливается, в другом читается, а в третьем и в базе все еще предыдущее. Если у кого-нибудь есть мысли по этому поводу прошу поделиться
  10. Тогда может вы вкурсе, данные в сессию пишутся синхронно?
  11. То есть, по-сути, у нас 2 ajax запроса, в первом после получения данных из модели устанавливается $this->session->data['shipping_methods'], Но в следующем запросе, значение уже другое. Как такое вообще может быть? Ну по-логике, оно где-то еще записывается, но я через grep -p все файлы прочесал, везде где нашел не имело никакого отношения. На скрине показан результат var_dump($this->session->data['shipping_method']['cost']); Цифрой указан порядок запроса
×
×
  • 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.