在自定义ModuleAdminController(PS1.6)中使用renderView()

时间:2014-07-28 12:48:00

标签: php module prestashop prestashop-1.6

我正在尝试将视图操作添加到我的后台模块页面,但我无法使用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()函数或多或少以相同的方式编写。

提前感谢您的帮助!

2 个答案:

答案 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的控制器并将其添加到后台的选项卡中。