我正在尝试将视图操作添加到我的后台模块页面,但我无法使用renderview()函数显示任何内容。我已经可以用renderList()显示我的列表并且它运行良好。我也尝试过renderForm(),它也运行得很好,但似乎我不能让renderView()显示出来。
public function renderView(){
if(!($config = $this->loadObject())){
return;
}
$data = Config::getDataForm(Tools::getValue('id_config'));
// var_dump($data);
$this->tpl_view_vars = array(
'id_config' => $data['id_config'],
'prix' => $data['prix'],
'hauteur' => $data['hauteur_passage']
);
return parent::renderView();
}
这是一个非常基本的代码。我的getDataForm($ id_config)是从数组中的数据库获取字段,以便我可以显示它。在显示带有prestashop页眉和页脚的空白页面之前,我可以看到var_dump显示一小段时间。我试图通过检查其他AdminController(例如AdminCartsController或AdminCustomersController)来查看我是否做了一些事情,但似乎他们的renderView()函数或多或少以相同的方式编写。
提前感谢您的帮助!
答案 0 :(得分:1)
我设法通过在/ modules / mymodule / views / templates / admin / mymodule / helpers / view /中添加视图tpl来解决这个问题。
我错误地认为它不需要为视图操作创建模板文件,因为它不需要列表和表单操作。在搜索模块和管理文件后,我设法发现视图操作确实存在自定义view.tpl。
renderview()方法允许您设置要在view.tpl中使用的变量。
有关其工作原理的更多信息,您可以检查AdminCustomersController以查看它在控制器端的情况以及/adminxxxx/themes/default/template/controllers/customers/helpers/view/view.tpl以查看模板的方式是写的。
如果您需要更多信息,请随时编辑或评论
答案 1 :(得分:0)
如果要在模块上添加配置页面,则必须将此功能添加到模块中:
public function getContent()
{
// return some html content
}
如果您想使用控制器,那么您必须创建一个扩展ModuleAdminController
的控制器并将其添加到后台的选项卡中。