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

Как вызвать контроллер каталога из контроллера админа?


Recommended Posts

Приветствую!
С OpenCart никогда не работал, но постараюсь как можно короче описать суть, чтобы не нагружать лишним. При открытии какого-либо заказа для редактирования в админке, на сервер отправляется около 30-ти запросов, что для моего понимая просто дико. Запросы адресованы к разным контроллерам, которые расположены в "catalog". Я хочу изменить данную ситуацию, достав все необходимые данные на сервере, но как обратится к контроллерам - понять не могу.
К примеру, в методе "getForm" класса "ControllerSaleOrder" (\admin\controller\sale\order.php) мне нужно вызвать метод "add" класса "ControllerApiCart" (\catalog\controller\api\cart.php). Подскажите, пожалуйста, как это можно сделать?

Если важно, то OpenCart 2 версия 2.0.3.1

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


это API

об API системе опенкарта я писал в блоге

http://sv2109.com/ru/article/api-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-opencart

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

об API системе опенкарта я писал в блоге

Спасибо. Как я понял, с API можно работать только через CURL или есть еще варианты?

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


это API

И так, чтобы закрыть уже этот вопрос... Если предположить, что класс не относится к API, то как правильно к нему обращаться из класса админки, если он расположен в каталоге? Если пробую так:

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

То получаю ошибку "Could not load model", что вполне понятно, т.к. файл не находится в "/admin/model/catalog/catalog.php", а расположен в "/catalog/model/catalog/catalog.php"

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


можете попробовать как-то так:

require_once(dirname(DIR_APPLICATION) . '/catalog/model/catalog/category.php');

$catalog_category_model = new ModelCatalogCategory($this->registry);

$result = $catalog_category_model->getCategory($category_id);

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

можете попробовать как-то так:

require_once(dirname(DIR_APPLICATION) . '/catalog/model/catalog/category.php');

$catalog_category_model = new ModelCatalogCategory($this->registry);

$result = $catalog_category_model->getCategory($category_id);

Может получить конфликт имен.

 

 

Админка и Фронт - разные пространства имен.

Доступ только через api

 

в 1.5. таким "api" был checkout/manual

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

можете попробовать как-то так:

require_once

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

Админка и Фронт - разные пространства имен.

 

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

 

use \catalog\model\catalog\ModelCatalogCatalog as MyCatalog;

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


  • 9 months later...

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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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