0

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

在此先感谢您的帮助 !

4

2 回答 2

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 以查看模板的编写方式。

如果您需要更多信息,请随时编辑或评论

于 2014-08-11T08:56:30.273 回答
0

如果要在模块上添加配置页面,则必须将此功能添加到模块中:

public function getContent()
{
    // return some html content
}

如果要使用控制器,则必须创建一个扩展控制器ModuleAdminController并将其添加到后台的选项卡中。

于 2014-08-08T09:57:37.080 回答