opencart 中是否有任何方法仅显示登录用户的侧边栏模块?
问问题
2095 次
2 回答
1
当然也有简单的搭配!
打开例如左列控制器 ( catalog/controller/common/column_left.php
) 和行之后:
protected function index() {
添加此条件(仅带左括号):
if($this->customer->isLogged()) {
现在找到这条线
$this->render();
在它添加之前:
} else {
$this->data['modules'] = array();
}
所以最终的代码应该是这样的:
<?php
class ControllerCommonColumnLeft extends Controller {
protected function index() {
if($this->customer->isLogged()) {
// ... all the previous code up to the render() call
} else {
$this->data['modules'] = array();
}
$this->render();
}
}
现在做同样的事情column_right.php
,content_bottom.php
并且content_top.php
你应该完成;-)
编辑:人们可能还想编辑具体的模块控制器并在那里添加条件,但这不会那么简单并且有其他含义——仍然会有一个数据库查询来收集所有可用的模块。在我的解决方案中,除了简单之外,还有一个事实是,对于未登录的用户,根本不会对模块进行数据库调用。
于 2013-10-08T09:45:34.457 回答
1
感谢您的快速回复。我找到了一个简单的解决方案。
转到我的模块控制器
包裹$this->render();
着if(!$this->customer->isLogged()) { $this->render(); }
它工作得很好。
于 2013-10-08T10:59:48.137 回答