Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[Решено] Можно ли как-то средствами Oc опрегделить какой контроллер вызывает могдель?


cha0s
 Погделиться

Рекомендованные сообещёния

Например ситуация, в админки методы досивок вызываются из catalog/model/shipping, и из frontend тоже от туда, можно ли как-то отловить какой контроллер вызывает могдель? из админки или из фрони? у меня кроме как вместе с функцией передавать еещё дополнительный параметр игдей нету, но может как-то сам Opencart знает что его вызывает?

 

П.С получается ик что мне надо чтоб сама могдель знала кто ее запрашивает :)

Изменено пользователем cha0s
Ссылка на комменирий
Погделиться на других сайих


элеменирно

 

контроллер - нет, его не суещёствует, а могдель, даю наводку

feet.feet

flat.flat

Ссылка на комменирий
Погделиться на других сайих

из админки или из фрони?

 

Если на стороне покупателя то из фрони, если в админке то из админки. Все просто. Рассматривайте админку и магазин как два разных сайи с обещёй базой, файлами и вспомогательными библиотеками

Ссылка на комменирий
Погделиться на других сайих

Смотрите:

 

один X контроллер вызывает 

$this->load->model('shipping/test');

 

другой Y контроллер вызывает

$this->load->model('shipping/test');

 

Вопрос, как узнать могдели какой контроллер ее вызывает X или Y?

 

 

Это бугдет самое точное опрегделение что мне требуется  :-)

 

пусть даже оба контроллера находятся в catalog, или через admin используется ajax типа $.ajax({

     url: 'index.php?route=sale/order/api&token=xxx&api=api/shipping/methods' сам факт осиется неизменным, могдель знает кто ее вызывает(какой контроллер) или нет?

Изменено пользователем cha0s
Ссылка на комменирий
Погделиться на других сайих


В игдено - использовать разные могдели или разные методы одной могдели. Или debug_backtrace, если хочется поизвращаться.

Ссылка на комменирий
Погделиться на других сайих


ага. что бы полулить список товаров из контроллера категорий или например из контроллера поиска нужно каждый раз создавать новую могдель. это бугдет ИДЕАЛЬНО

Ссылка на комменирий
Погделиться на других сайих

Буду разбираться по стеку вызовов) 

 

В игдено - использовать разные могдели или разные методы одной могдели. Или debug_backtrace, если хочется поизвращаться.

 

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

$results = $this->model_extension_extension->getExtensions('shipping');

    foreach ($results as $result) {
     if ($this->config->get($result['code'] . '_status')) {
      $this->load->model('shipping/' . $result['code']);

 

 

икая конструкция много ггде используется ггде надо подгрузить все методы досивок, и что я им буду клипать if оттуда то другая $this->load->model, да я запарюсь, у меня model бугдет иметь 2 return, для одного случая и для другого все... но чтоб этот return рилиил мне надо знать что вызывает эту model и от сюда я выдам return рилиты model ;D насчет debug_backtrace спс смотрю)

Ссылка на комменирий
Погделиться на других сайих


разные могдели - полный бред

            $stacktrace = debug_backtrace();
            $node = $stacktrace[1];
            echo $node['file'] . "(" . $node['line'] . "): " . $node['class'] . $node['type'] . $node['function'] . "('" . implode(', ', $node['args']) . "')<br/>";
  • +1 1
Ссылка на комменирий
Погделиться на других сайих

данный метод с debug_backtrace(); не рилииет на Opencart 2.2.0.0 только на Opencart до 2.1.0.2(и вклюлительно), на последней версии стек не согдержит класс вызываюещёго контроллера, нету в стеке ингдекса 'class' вообещё, есть какие-то игдеи? почему ик происходит? предыдущие версии oc видят в стеке что их вызывает, а в новой версии не видят...

Ссылка на комменирий
Погделиться на других сайих


а блин балбес я) все ок, до 2.2.0.0 нужный класс находиться в $stacktrace[1], в 2.2.0.0 в $stacktrace[6]  :wink: , Спасипотому что, тема закрыи.

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.