摘要:在phpcmsv9程序中默认是不支持给顶级栏目添加文章内容的,而且,给添加过文章的栏目添加子栏目后,该栏目下原有的文章在管理内容中也看不到,同时在生成静态页面时,这个栏目下原有的文章不会被生成静态页面,只会把它子栏目中的文章生成静态页面。
在phpcmsv9程序中默认是不支持给顶级栏目添加文章内容的,而且,给添加过文章的栏目添加子栏目后,该栏目下原有的文章在管理内容中也看不到,同时在生成静态页面时,这个栏目下原有的文章不会被生成静态页面,只会把它子栏目中的文章生成静态页面。
从上面的动态图中可以看到,“国内新闻”栏目本来是有文章的,但添加了子栏目后,“国内新闻”栏目原来的文章不见了。
经测试还发现,在批量更新内容页时,“国内新闻”栏目下原来的文章并没有生成静态页面。
今天,心月就来分享下这两个问题的解决方法:
第一个问题:添加子栏目后父栏目原来的文章不见了,也不能给父栏目继续添加文章了
其实也不是文章不了,只是phpcmsv9程序默认在有子栏目时,取消了父栏目的相关“事件”,所以,只需要这个取消的相关“事件”重新加上就可以了。
有两个地方需要修改:
第一处修改:
phpcms/modules/content目录下的content.php文件里面,打开该文件找到public_category函数,在 if(!empty($categorys)) 判断内,找到一下代码:$strs2 = "\$catname";
修改为:$strs2= "\$add_icon\$catname";
修改前的代码截图:
第二处修改:
在content.php同级目录下的creat_html.php文件,大约在178行左右将以下代码注销即可:// $r['disabled'] = $r['child'] ? 'disabled' : '';
修改前的代码截图:
此时我在来后台看看,从动态截图中可以看到,已经可以看到“国内新闻”栏目 下原来添加的文章,而且子栏目的显示也正常,最重要的,还可以继续给“国内新闻”栏目添加文章。
【注意】
经此处理后,如果父栏目是单页面,也可以给它添加内容。
第二个问题:第一个问题已经解决了,现在就来解决第二个问题,父栏目下的文章不能生成静态页面的问题。
其实这个问题比第一个问题更好解决,之所以在批量更新内容页时父栏目下的文章不能生成静态页面是因为在处理生成静态页面时把父栏目给跳过去了,看下面的代码截图:
(这是第一个问题中的 create_html.php 文件中的 show 方法,也就是后台选择批量更新内容提交时执行的方法),从截图中的红色框框部分内容可以看到,当栏目存在子栏目时,被跳过去了,所以批量更新内容才不会生成父栏目文章的静态页面。
修改内容(图中红色框框部位代码):if($cat['child'] || $cat['siteid'] != $this->siteid || $cat['type']!=0) continue;
修改为:if($cat['siteid'] != $this->siteid || $cat['type']!=0) continue;
有两处:还有一处也是这个 show 方法,大概230左右,同样把下面的代码:if($cat['child'] || $cat['siteid'] != $this->siteid || $cat['type']!=0) continue;
修改为:if($cat['siteid'] != $this->siteid || $cat['type']!=0) continue;
现在在批量更新内容就可以生成父栏目下的文章的静态页面了。