jos*_*t21 3 php joomla templates joomla-component joomla2.5
我知道有几个类似的主题,但我阅读并尝试了大多数但仍然无法弄清楚如何做到这一点.
我在Joomla 2.5中编写了一个组件,它到目前为止一直有效.我有不同的视图,我可以使用controller.php加载视图.其中一个视图显示了我的数据库中的表格(有关团队的数据).
现在我想要另一个相同视图的布局,它将数据库表显示为一个表单,以便更改内容.
这是文件结构:
views/
- teams/
- - tmpl/
- - - default.php
- - - modify.php
- - view.html.php
这不在view.html.php文件中:
...
// Overwriting JView display method
function display($tpl = null) {
...
$this->setLayout('modify');
echo $this->getLayout();
// Display the view
parent::display($tpl);
}
Run Code Online (Sandbox Code Playgroud)
我尝试了setLayout,$ tpl = ...,default_modify.php等的不同组合,但我总是得到默认布局或者像'找不到布局修改'这样的错误
我用.../index.php?option = com_test&task = updateTeams加载网站
controller.php看起来像这样:
function updateTeams(){
$model = $this->getModel('teams');
$view = $this->getView('teams','html');
$view->setModel($model);
$view->display();
}
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题,我创建了某种用户配置文件视图,并希望它们能够编辑字段而无需为其创建新模型(具有类似的功能,讨厌冗余......).对我有用的是简单地调用这样的布局:
index.php?option = com_mycomponent&view = myview&layout = edit("edit"在你的情况下将是"修改")
要做到这一点,我没有触及view.html.php(我最初做过,但我没有.).而且您也不需要使用控制器.如果要加载修改视图,只需在常规视图中添加一个链接到修改布局的按钮.无需改变任何其他内容.
我碰巧写了一篇关于它的博客文章,如果你愿意,请查看:http://violetfortytwo.blogspot.de/2012/11/joomla-25-multiple-views-one-model.html
希望这可以帮助.