如何在Joomla插件和组件之间共享代码?

时间:2010-09-15 19:53:23

标签: joomla code-reuse

我正在编写一个Joomla插件,用于访问存储在自写组件中的数据。

如何访问该组件的代码?我对表格和模型特别感兴趣。

这是否有官方方式?

1 个答案:

答案 0 :(得分:4)

获取模型非常简单。只需在插件代码中包含组件中的模型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');

?>