Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 13 Ответов
  • 1413 Просмотров
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Собственно вопрос в том как в плагине plg_paymentA вызванном компонентом com_turism получить доступ к модели order где есть функции getItem($id) и save($data) для того чтобы провести некие операции с объектом?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Обращение к модели из плагина
« Ответ #1 : 28.09.2016, 12:47:00 »
Код
JModelLegacy::addIncludePath(JPATH_ROOT.'/путь_до_папки_модели');
$model = JModelLegacy::getInstance('название модели', 'префикс');
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Обращение к модели из плагина
« Ответ #2 : 28.09.2016, 13:16:13 »
Подскажите что не так?
Код: php-brief
JModelLegacy::addIncludePath(JPATH_ROOT.'/administrator/components/com_turism/models');
$model = JModelLegacy::getInstance('order', 'TurismModel');
$item = $model->getItem($id);
$html .= var_dump($item, true);
Структура объекта выводится а данных нет, $id - корректен
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Обращение к модели из плагина
« Ответ #3 : 28.09.2016, 13:40:44 »
и да... структура выводится не того объекта... что-то не понимаю вообще... откуда берется JModelLegacy::getInstance('order', 'TurismModel');? из админ или сайт части? Плагин работает во view=order в сайт части а подключить надо модель order что в админ части
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Обращение к модели из плагина
« Ответ #4 : 28.09.2016, 14:28:34 »
Должна с админки, потому что JModelLegacy::addIncludePath(JPATH_ROOT.'/administrator/components/com_turism/models');
Странно, что вызывается с фронта.
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Обращение к модели из плагина
« Ответ #5 : 28.09.2016, 15:01:10 »
Может что-то подключить забыл? как проверить?
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Обращение к модели из плагина
« Ответ #6 : 28.09.2016, 15:07:35 »
А имеет ли право пользователь страницы через плагин получить подобный доступ?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Обращение к модели из плагина
« Ответ #7 : 28.09.2016, 15:30:54 »
Должна с админки, потому что JModelLegacy::addIncludePath(JPATH_ROOT.'/administrator/components/com_turism/models');
Странно, что вызывается с фронта.
Подозреваю, что у ТС во фронте тоже есть модель TurismModelOrder и она уже подключена. В таком случае модель из админки подключаться не будет.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Обращение к модели из плагина
« Ответ #8 : 28.09.2016, 15:38:50 »
Подозреваю, что у ТС во фронте тоже есть модель TurismModelOrder и она уже подключена. В таком случае модель из админки подключаться не будет.
+1, сам недавно на эти же грабли наступил, теперь зарекся называть классы в админке и на фронте одинаково ))
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Обращение к модели из плагина
« Ответ #9 : 28.09.2016, 15:50:42 »
Слава богу оказывается view=order в клиентской части остаточное явление и все работает через myorder удалил order из пользовательской части - заработало
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Обращение к модели из плагина
« Ответ #10 : 28.09.2016, 17:54:20 »
Подскажите почему я получаю fasle при выполнении
Код: php-brief
JModelLegacy::addIncludePath(JPATH_ROOT.'/administrator/components/com_turism/models');
$model = JModelLegacy::getInstance('order', 'TurismModel');
$item = $model->getItem($id);
$data = json_encode($item);
$model->paymentSave($data);

В модели ORDER есть функция paymentSave($data);
Код: php-brief
public function paymentSave($data){
if (!parent::save($data)) { return false;}
return true;
}
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Обращение к модели из плагина
« Ответ #11 : 28.09.2016, 18:12:42 »
Потому что
Код: php-brief
!parent::save($data)
, а кто такой parent - вами заданная нам загадка.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

platonische

  • Давно я тут
  • 523
  • 2 / 1
  • Парусные экспедиции vk.com/tc670
Re: Обращение к модели из плагина
« Ответ #12 : 28.09.2016, 20:02:28 »
Потому что
Код: php-brief
!parent::save($data)
, а кто такой parent - вами заданная нам загадка.

Хорошо. А можно сделать чтоб именно parent работал как бы он работал вызванный view=order из админки?
Или только свои операции в DB проводить?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Обращение к модели из плагина
« Ответ #13 : 28.09.2016, 20:32:40 »
Вы так и не рассказали, какой родительский класс (parent) у вашего класса Order. Подозреваю, что это JModelAdmin. Если так, то скажу вам 02 вещи:
- Зачем вы преобразовываете $data в JSON? JModelAdmin::save() не работает с JSON-аргументом. И с объектом - тоже, а $item - это объект.
- Ваша функция paymentSave() - пустая, и потому лишняя функция: parent::save($data) и так возвращает boolean.

P.S. Вы довольно давно уже в песочнице, пора научиться делать отладку самостоятельно.
« Последнее редактирование: 28.09.2016, 20:46:24 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Событие: сохранение настроек плагина

Автор anatol81n

Ответов: 2
Просмотров: 661
Последний ответ 29.01.2021, 07:17:45
от voland
Проблема вызова модели компонента из модуля

Автор platonische

Ответов: 1
Просмотров: 569
Последний ответ 24.04.2020, 18:32:32
от platonische
Доступ к переменной модели из модуля

Автор platonische

Ответов: 18
Просмотров: 1593
Последний ответ 11.01.2020, 22:21:42
от robert
[РЕШЕНО] curl-файл Joomla $model->save($data) подключение модели администратора

Автор platonische

Ответов: 31
Просмотров: 1306
Последний ответ 30.05.2019, 16:10:57
от sivers
Как создавать в админке раздел для изменения настроек плагина?

Автор lculver

Ответов: 2
Просмотров: 598
Последний ответ 21.05.2018, 08:55:46
от dmitry_stas