关于pages列表页不显示和无权限的问题

qq_553654436be7c 2016-03-04 16:39:56

1.不显示 只需要 修改一处即可

/system/module/page/control.php 的index方法

$pages = $this->loadModel('article')->getList('page', 0, $orderBy = null);

改为

$pages = $this->loadModel('article')->getList('page', 0, $orderBy = 'editedDate');  即可 不显示是因为sql错误,orderby为空


2. 权限问题出在这里

/system/module/common/model.php的 if(!commonModel::hasPriv($module, $method)) $this->deny($module, $method);

进入 hasPriv()方法 发现是这一句在搞怪 if(!commonModel::isAvailable($module)) return false;

进入isAvailable()方法后发现问题出来依赖模块上代码如下

/* Check whether dependence modules is available. */
if(!empty($config->dependence->$module) )
{

var_dump($config->dependence->$module); // $module is page   dump is contribution
foreach($config->dependence->$module as $dependModule)
{

var_dump($config->site->modules);//dump is article,product,message,search,stat
if(!sset($config->site->modules) or strpos($config->site->modules, $dependModule) === false) return false;
}
}

这里的判断 strpos($config->site->modules, $dependModule) === false   在module 为page时 恒为true 所以 返回错误 就到值deny()方法被执行了。

我的处理方法噶、

这里我稍微变动了下  将 if(!sset($config->site->modules) or strpos($config->site->modules, $dependModule) === false) return false 改为

if(!sset($config->site->modules) and strpos($config->site->modules, $dependModule) === false) return false;  改动为 or >>> and

这个时候page页面正常显示 (url:  http://your domainname/page/)


贴出来希望 蝉知的开发人员看看是否会出现其他问题


本修改基于蝉知 5.1 官方 zip包,未做任何改动


回帖列表
qq_553654436be7c 2016-03-04 23:20:58

这个输出是在系统后台/admin.php?m=site&f=setbasic 进行设置的 所以可能与默认值不同


我办公室机器的数据与家里电脑数据没有同步,所以无法给你截图我办公室的配置


但是基本上是确定通过这里进行设置的


wechat_5bfe70e419673 2016-03-04 17:33:11

var_dump($config->site->modules);//dump is article,product,message,search,stat


这个输出结果不对,应该有page的看看有没有分类的别名设置成page了

我们也再检查下代码。





1/ 1
浙ICP备14025715号-9
ZSITE8.6