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

Получение $this->config->get в модели


captainsm

Recommended Posts

Доброго времени суток!

Пытаюсь создать маленькое дополнение

Вызываю функцию модели из отдельного файла в корне сайта:

require_once("/public_html/admin/config.php");
require_once(DIR_SYSTEM . 'startup.php');
// Registry
$registry = new Registry();
// Database
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);
// Loader
$load = new Loader($registry);
$load->model('module/bart');
$brload = $registry->get('model_module_bart');
$brload->test();

 

В модели такой код:

class ModelModuleBart extends Model {
	public function test() {
		$this->db->query("UPDATE " . DB_PREFIX . "test SET bart = '" . $this->config->get('config_bart_test') . "'");	
}
}

При этом $this->config->get('config_bart_test') пустой

Когда пытаюсь добавить $this->load->model('setting/setting');, выдает ошибку: 

Fatal error: Call to a member function model() on null in /public_html/admin/model/module/bart.php on line 4

 

В oc_setting code и key указаны как config_bart_test, записываю так:

$this->model_setting_setting->editSetting('config_bart_test', $this->request->post);

 

Подскажите, что делаю не так? Можно ли вообще это использовать в модели? Пробовал создавать controller, где описывал

		if (isset($this->request->post['config_bart_test'])) {
			$data['config_bart_test'] = $this->request->post['config_bart_test'];
		} elseif ($this->config->get('config_bart_test')) { 
			$data['config_bart_test'] = $this->config->get('config_bart_test');
		}

Но никаких результатов это не принесло

 

Прошу прощения, если с кодом что-то совсем не так, собирал из разных источников, опыта и необходимых знаний не хватает совсем(

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


28 минут назад, captainsm сказал:

Вызываю функцию модели из отдельного файла в корне сайта:

А зачем Вы это делаете?

Не проще ли создать файл в папке catalog/controller/Bart/Bart.php

 

И вызывать уже по ссылке

?index.php?route=Bart/Bart

?

 

 

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

  • 3 years later...

Итак, во 1-х модуль 

ModelModuleBart должен лежать в папке model/module/bart.php

во 2-х

 

При создании вашего модуля, не забыли ли вы случаем в конструкторе класса прокинуть $registry в родителя?

 

Цитата
global $registry;
parent::__construct($registry);

 

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


Это скорей не дополнение, а какой-то скрипт для внешнего использования

$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);


Сделайте тоже самое для config, но конфиг еще нужно проинициализировать.

Что ваше дополнение должно делать?
 

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

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

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

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

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

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

Вхід

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

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

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

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

Important Information

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