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