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

Вызвать метод контролера/модуля из сторонней библиотеки


Recommended Posts

У меня есть отдельный модуль на php. 

Вызывается по расписанию на хостинге: php my_work.php

И вот мне понадобилось вызвать метод модуля opencart, чтобы отправить значения в БД.

Есть ли такая возможность или все обертки вокруг БД копипастить придется?

 

Модули и контроллеры в OC отнаследованны от абстрактых классов, у них есть какие-то специфические поля и параметры конструкторов, которых у меня в моем модуле нет. К сожалению вменяемой документации по OC не нашел. Есть пример создания модуля, да общее описание модели и на этом всё. 

 

Можно ли как-то исхитрится и вызвать нужную процедуру?

 

Вот пытался для примера просто эту вызвать.

class ModelModuleParser extends Model {
public function getProductManufacture($product_id) {
        $query = $this->db->query("SELECT manufacturer_id FROM " . DB_PREFIX . "product WHERE product_id = '" . (int) $product_id . "'");
        return ($query->num_rows ? (int) $query->row['manufacturer_id'] : 0);
    }
}

 

В лоб  

  $cls = new ModelModuleParser ();

  $cls->getProductManufacture(13);

приводит понятно к ошибке, но как иначе не представляю.

 

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


Вам нужно использовать не отдельный файл my_work.php а делать все через контроллер опенкарта, тогда все библиотеки самого опенкарта (доступ к базе, сесии итд) будут подгружены автоматически. Этот способ желателен, минус в том, что он грузит весь опенкарт и более требователен к ресурсам. 

 

Или делать отдельным файлом my_work.php но делать все запросы к базе данных не через контроллеры опенкарта, используя библиотеки опенкарта, а напрямую прямыми запросами. Этот способ самый быстрый, подойдет если у вас не очень много запросов и нужна скорость. 

 

Или открыть файл index.php опенкарта и скопировать из него все необходимое в my_work.php после чего вызывать нужные контроллеры. Но тут нужно очень хорошо понимать структуру опенкарта. Я так в одном своем модуле делал https://opencartforum.com/files/file/1291-sql-menedzher-sql-buddy/ см. файл upload/system/library/sqlbuddy/opencart_permission.php

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

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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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