phpcms 新建php页面,phpcmsv9实现给顶级栏目添加文章并生成静态页面

本文介绍了PHPCMS V9系统中遇到的两个问题:顶级栏目无法添加文章以及添加子栏目后父栏目文章丢失且无法生成静态页面。通过修改`content.php`和`creat_html.php`文件的特定代码,可以恢复父栏目文章的显示和添加功能,并确保批量更新时能为父栏目生成静态页面。修复后,即使父栏目是单页面,也能添加内容并正常生成静态页。
摘要由CSDN通过智能技术生成

favicon.ico摘要:在phpcmsv9程序中默认是不支持给顶级栏目添加文章内容的,而且,给添加过文章的栏目添加子栏目后,该栏目下原有的文章在管理内容中也看不到,同时在生成静态页面时,这个栏目下原有的文章不会被生成静态页面,只会把它子栏目中的文章生成静态页面。

在phpcmsv9程序中默认是不支持给顶级栏目添加文章内容的,而且,给添加过文章的栏目添加子栏目后,该栏目下原有的文章在管理内容中也看不到,同时在生成静态页面时,这个栏目下原有的文章不会被生成静态页面,只会把它子栏目中的文章生成静态页面。

20191207_1575707707648375.gif

从上面的动态图中可以看到,“国内新闻”栏目本来是有文章的,但添加了子栏目后,“国内新闻”栏目原来的文章不见了。

经测试还发现,在批量更新内容页时,“国内新闻”栏目下原来的文章并没有生成静态页面。

今天,心月就来分享下这两个问题的解决方法:

第一个问题:添加子栏目后父栏目原来的文章不见了,也不能给父栏目继续添加文章了

其实也不是文章不了,只是phpcmsv9程序默认在有子栏目时,取消了父栏目的相关“事件”,所以,只需要这个取消的相关“事件”重新加上就可以了。

有两个地方需要修改:

第一处修改:

phpcms/modules/content目录下的content.php文件里面,打开该文件找到public_category函数,在 if(!empty($categorys)) 判断内,找到一下代码:$strs2 = "\$catname";

修改为:$strs2= "\$add_icon\$catname";

修改前的代码截图:

20191207_1575709117650785.jpg

第二处修改:

在content.php同级目录下的creat_html.php文件,大约在178行左右将以下代码注销即可:// $r['disabled'] = $r['child'] ? 'disabled' : '';

修改前的代码截图:

20191207_1575709286751158.jpg

此时我在来后台看看,从动态截图中可以看到,已经可以看到“国内新闻”栏目 下原来添加的文章,而且子栏目的显示也正常,最重要的,还可以继续给“国内新闻”栏目添加文章。

20191207_1575709490720133.gif

【注意】

经此处理后,如果父栏目是单页面,也可以给它添加内容。

第二个问题:第一个问题已经解决了,现在就来解决第二个问题,父栏目下的文章不能生成静态页面的问题。

其实这个问题比第一个问题更好解决,之所以在批量更新内容页时父栏目下的文章不能生成静态页面是因为在处理生成静态页面时把父栏目给跳过去了,看下面的代码截图:

(这是第一个问题中的 create_html.php 文件中的 show 方法,也就是后台选择批量更新内容提交时执行的方法),从截图中的红色框框部分内容可以看到,当栏目存在子栏目时,被跳过去了,所以批量更新内容才不会生成父栏目文章的静态页面。

20191207_1575709907994104.jpg

修改内容(图中红色框框部位代码):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;

现在在批量更新内容就可以生成父栏目下的文章的静态页面了。

20191207_1575710737469852.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值