Я хочу создать компонент на основе com_weblinks.
Этот компонент будет отображать категории и ссылки на одной странице.
В 3.0 я не понимаю, как я могу использовать 2 модели (модели категорий и модель ссылок) в одном представлении.
Я хочу создать компонент на основе com_weblinks.
Этот компонент будет отображать категории и ссылки на одной странице.
В 3.0 я не понимаю, как я могу использовать 2 модели (модели категорий и модель ссылок) в одном представлении.
Первый подход
Я сделал это, изменив контроллер следующим образом (это контроллер для пользователя)
function doThis(){ // the action in the controller "user"
// We will add a second model "bills"
$model = $this->getModel ( 'user' ); // get first model
$view = $this->getView ( 'user', 'html' ); // get view we want to use
$view->setModel( $model, true ); // true is for the default model
$billsModel = &$this->getModel ( 'bills' ); // get second model
$view->setModel( $billsModel );
$view->display(); // now our view has both models at hand
}
В представлении вы можете просто выполнять свои операции с моделями.
function display($tpl = null){
$userModel = &$this->getModel(); // get default model
$billsModel = &$this->getModel('bills'); // get second model
// do something nice with the models
parent::display($tpl); // now display the layout
}
Альтернативный подход
В представлении напрямую загрузите модель:
function display($tpl = null){
// assuming the model's class is MycomponentModelBills
// second paramater is the model prefix
$actionsModel = JModel::getInstance('bills', 'MycomponentModel');
}
&
из альтернативного подхода;)
- person Lodder; 28.01.2013