Перейти к содержанию
ZardoZ

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

Рекомендуемые сообщения

У меня есть отдельный модуль на 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

Поделиться сообщением


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

Спасибо большое! То что нужно в вашем модуле, как раз мне надо db подключить.

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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