摘自http://www.jb51.net/cms/173593.html

打开程序文件:phpcms/modules/content/content.php

约 504行:

$r[‘type’] = ‘add’;

在其下面添加代码:

约508行:

$r[‘type’] = ‘init’;

在其下面添加代码:

约528行:

$strs2 = “<span class=’folder’>\$catname </span>”;

修改为:

上述操作完成后效果如图:

栏目后边带+号的就是单页面

 

问题1:phpcms V9某个站点的栏目中发现有几个栏目消失了,但是没有人删除

问题2:phpcms V9更新这个站点下的栏目缓存后出现空白现象!

问题分析:

  1. 到数据库v9_category表中查找看了下这几个栏目还存在啊!!于是没有多看
  2. 查找了相关模块的代码/modules/admin/category.php中repair(“修复栏目数据”)排错后发现是的方法里边的代码,产生的提示,但没找到具体提示在哪里!
  3. 不是所有站点下栏目缓存更新都出空白,所以可能不是代码问题
  4. 回头有看了看数据库这几个栏目的字段,发现了问题,其中某个顶级栏目的parentid居然不是0而是他的一个子栏目id,这肯定是不对的,改了之后更新全站缓存,在更新栏目缓存就恢复了

注意:先更新全站缓存,在去更新栏目缓存

 

网站运行正常,但是在发布文章保存的时候只出现了个0

经过从当前控制器中开始不断排错,直到走到phpcms/libs/classes/attachement.class.php文件的附件下载方法中看到第一行就有如下语句

很疑惑这种代码我从来没有加过!!!删除之后问题不解决了,但这是哪里来的代码呢?

就是阿里云的漏洞修复,查看了下阿里云的漏洞修复记录,果真!!

但是您这语句逻辑啥时候都是exit(0)好么!!我们的程序还咋跑啊!

于是又做了如下修改:

将阿里云给出的代码加以修改如下

只有在使用此方法时给定这个$ext参数时候进行判断!

 

换了新编辑器上传图片,图片是上传成功了,但是查看图片库里没有,因为这是走的外部上传方法

第一:修改如下在外部上传脚本中/statics/js/kindeditor/php/upload_json.php  添加如下代码

上传成功后的代码后加入如下代码

第二:需要修改attachment.class.php

复制add方法并改名为add_external_data,此处主要是缺少了siteid,因为外部加载此类获取不到siteid的值,只能通过cookie获取

 

 

项目需求不明确,回头来改的!!!!!!

遇到此问题就是因为前期刚做的时候没有将图片按照站点来分,导致很多图片还是v9默认的路径,那么这些路径如何移动到站点对应的目录下呢?

代码如下:

文件是/phpcms/modules/attachment/attachments.php,在此类中添加一个方法

(包括从外部粘贴到编辑器的图片)

1:第一个文件路径:

/phpcms/libs/classes/attachment.class.php

1):

大概22行

修改为

2):

大概147行

注:这一行是修改从外部粘贴过来的图片到编辑器中产生的图片

修改成

3):大概153行

修改为

2:第二个文件路径:

/phpcms/modules/attachment/attachments.php

1)大概15、16行

将以下两行

改为

2):图片裁切功能

大概153行

改成

这样就可以了,现在上传图片的保存路径如下:

(3):加载图片库方法中

改完以上代码我发现添加后的图片在图片库中显示的是这样

修改如下:

 

 

 

 

如果你是用“超级管理员”的角色来管理你的网站,那么可以略过本文。如果你有给其它用户分配管理帐户来管理网站,那么有可能遇到这样的问题,那么本文兴许能帮到你。

写这篇的原由:本屌丝给另一管理者分配了一个角色,角色名称“管理员”以便管理网站,使用中发现此角色对“评论管理”没有删除权限。(图1)


图1

 

好嘛!没删除权限我就给你权限不就得鸟!!进入后台点设置->角色管理->管理员中的权限设置(如图2)。找呀找呀,没找到“附件管理”删除功能的权限分配。愁惨啊!

图2

 

以上问题存在的原因有2点:

1、官方对部份功能的权限没有分配如此细致(必境每个用户所要的权限都会不一样)

2、自个儿在控制器中加了新的方法

废话一堆,现在是解决方法,见证奇迹出现的时刻。

修改数据库表名为:v9_admin_role_priv 添加你定义的action就行了(图3)

图3

语句:insert into v9_admin_role_priv(roleid,m,c,a,siteid) values(4,’content’,’content’,’remove’,1)

说明:

roleid是角色id(可以在v9_admin_role数据表里查看角色对应的id,后台“设置->角色管理”也能看到。

m是模块名

c是控制器名

a是你自定义的action名

data为空即可

siteid站点id,一般是1.

怎么得到所要的m、c、a的数值呢?

以评论管理为例:

打开浏览器的开发人员工具(F12)

在:内容-评论管理,点下删除,就可以看到以下的源代码(图4)

图4

自儿个新增的自定义的动作的m、c、a值怎么来呢?

以留言板为例:

我在表单向表模型formguide 文夹中的模块formguide_info.php文件中新加动作gmsn,其m、c、a值为

m=formguide  c=formguide_info  a=gmsn

phpcms <wbr>v9角色权限提示“您没有权限操作该项”解决方法

 !

文件目录/phpcms/libs/functions/global.func.php文件下

最好把原始str_cut方法注释掉,在其后加上这个修改过的方法