Как я могу поделиться кодом между плагинами и компонентами Joomla? - PullRequest
4 голосов
/ 15 сентября 2010

Я пишу плагин Joomla, который получает доступ к данным, хранящимся в самостоятельно написанном компоненте.

Как я могу получить доступ к коду этого компонента?Особенно меня интересуют таблицы и модели.

Есть ли официальный способ сделать это?

1 Ответ

4 голосов
/ 16 сентября 2010

Получить модель довольно легко. Просто включите файл модели PHP из компонента в код плагина и создайте ваши объекты по мере необходимости.

Лучше обрабатывать все манипуляции с таблицами в модели, но есть способы загрузить таблицу в сам плагин.

Вот как вы загружаете модель из плагина:

<?php

//  Path to component
$componentPath = JPATH_ADMINISTRATOR . DS . 'components' . DS . 'mycomponent';

//  Include model 
require_once $componentPath . DS . 'models' . DS . 'example.php';

//  You need to specify table_path because by default model uses 
//  JPATH_COMPONENT_ADMINISTRATOR . DS . 'tables'
//  and you will not have correct JPATH_COMPONENT_ADMINISTRATOR in the plu-in
//  unless you specify it in config array and pass it to constructor
$config = array(
    'table_path' => $componentPath . DS . 'tables'
);

//  Create instance
$model = new MycomponentModelExample($config);

?>

Вот как вы загружаете таблицу из плагина:

<?php

//  1. Add the path so getInstance know where to find the table
$tablePath = JPATH_ADMINISTRATOR . DS . 'components' . DS . 'mycomponent' . DS . 'tables';
JTable::addIncludePath($tablePath);

// 2. Create instance of the table
$tbl = JTable::getInstance('tableName', 'Table');

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...