Обычно, стандартная модель подключается автоматически и имеет одинаковое имя с контроллером, ну или задаётся в нём.
Что делать когда в одном view нужно использовать функции из другой(их) модели(ей)?
Всё просто:
$model = & JModel::getInstance('Category','MycompModel');
$res = $model -> modelfunction();
Вот так выглядит пример view.html.php c 2 подключёнными моделями
<?php
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.view');
/**
* HTML View class for the Component
*/
class MycomponentViewMycompfrontpage extends JView
{
protected $state = null;
protected $item = null;
protected $pagination = null;
function display($tpl = null)
{
$this->state = $this->get('State'); // используется фенкция дефолтной модели getState();
$this->items = $items = $this->get('Items'); //...
$this->pagination = $this->get('Pagination'); //...
$model = $this->getModel(); // используем дефолтную модель.
$model->getCatBySec($items); // используем функции дефолтной модели.
$other_model = & JModel::getInstance('Category','MycompModel'); // используем дополнительную модель. в данном случае category
$this->res = $other_model -> modelfunction(); // используем функции дополнительной модели.
if (count($errors = $this->get('Errors'))) { JError::raiseWarning(500, implode("\n", $errors)); return false;}
parent::display($tpl);
}
}