phpcms解决【搜索页不能调用栏目导航及栏目名称】的bug
[ 2016/03/17, Phpcms , 2999阅, 0评 ]

壹.当phpcms里面的搜索页面模板、搜索列表页模板拼接content里面的头部和底部模板时,如果头部里面有数据循环输出,则搜索结果的列表会出现错误,原因及解决方法如下,转自这里:

在phpcmsv9的搜索页面中没有网站导航栏,是一个独立的模块,所以风格上与首页与文章页不统一。为了使搜索页面与首页风格统一需要更换搜索页面的模板。但是在添加导航后搜索结果输出不正确,显示好多1.

问题原因是搜索程序保存搜索结果的变量是$data,但是pc标签一般使用的返回变量也是$data,这样在之前调整了导航标签后搜索结果就会与之前的data变量重叠,看好,是重叠,不是覆盖。这样再输出搜索结果时就会出现不正常的现象,但是程序还不报错。

处理方法:使用pc标签的return参数,把这个页面上所有的pc标签返回变量修改成其它变量,如:

{pc:content action="category" catid="0" num="25" siteid="$siteid" order="listorder ASC" return="data2"}
{loop $data2 $r}
<li><a href="{$r[url]}"><span>{$r[catname]}</span></a></li> {/loop}
{/pc}

注:当栏目输出超过两级或等于二级时第二级以上的return返回值是无法自定义的,而搜索页的返回值默认是data,所以还是会引起冲突!

贰.在搜索页是不能直接调用{$CATEGORYS[1][catname]}、{$CATEGORYS[8][url]}这样的,但是可以采用激活缓存的方法:

先添加<?php $SITE = getcache('category_content_1','commons');?>激活所在的缓存文件,然后调用{$SITE[2][catname]},就可以调用与id为2的栏目名称了!比较神奇。(在wap的单页里也可使用此方法)

有朋自远方来...评论一下呗O(∩_∩)O