1、标签、关键词 自动同步,不用手动复制 粘贴了
很简单,这里不说了
2、Tag标签伪静态的空格问题
我不知道动态调用是否有这个问题,这里说伪静态下,因为伪静态是最好体验选择
a、如果带空格的标签添加不上,后台tag管理里看不到
在/e/class/t_function.php文件里 搜一下
帝国cms对tagname用RepPostVar做了过滤,这是为了安全和体验,在第一个函数里,向我那样注释掉空格过滤代码,这样可以添加文章的适合 能够把带空格的标签写进数据库。
//参数处理函数function RepPostVar($val){ if($val!=addslashes($val)) { exit(); } CkPostStrChar($val); $val=str_replace("%","",$val); //$val=str_replace(" ","",$val); $val=str_replace("`","",$val); $val=str_replace("\t","",$val); $val=str_replace("%20","",$val); $val=str_replace("%27","",$val); $val=str_replace("*","",$val); $val=str_replace("'","",$val); $val=str_replace("\"","",$val); $val=str_replace("/","",$val); $val=str_replace(";","",$val); $val=str_replace("#","",$val); $val=str_replace("--","",$val); $val=RepPostStr($val,1); $val=addslashes($val); //FireWall FWClearGetText($val); return $val;}//参数处理函数2function RepPostVar2($val){ if($val!=addslashes($val)) { exit(); } CkPostStrChar($val); $val=str_replace("%","",$val); $val=str_replace("`","",$val); $val=str_replace("\t","",$val); $val=str_replace("%20","",$val); $val=str_replace("%27","",$val); $val=str_replace("*","",$val); $val=str_replace("'","",$val); $val=str_replace("\"","",$val); $val=str_replace("/","",$val); $val=str_replace(";","",$val); $val=str_replace("#","",$val); $val=str_replace("--","",$val); $val=RepPostStr($val,1); $val=addslashes($val); //FireWall FWClearGetText($val); return $val;}
b、完成了a,带空格的标签,比如“荣耀Magic4 Pro”可以添加到数据库里,但是,我遇到的问题是,前后台标签显示正常,但是,url却是e/tag/“荣耀Magic4+Pro”,这显然是错误的地址,也无法调用到文章列表。接下来,一分析,发现问题了,是Urlencode的问题,这个函数将空格给转成加号+了,那咋办?
打开e/class/connect.php
//返回TAGS列表伪静态function eReturnRewriteTagsUrl($tagid,$tagname,$ecms=0){ global $public_r; $tagname=urlencode($tagname); if(empty($public_r['rewritetags'])) { $r['pageurl']=$public_r['newsurl']."e/tags/?tagname=".$tagname; $r['rewrite']=0; } else { if($ecms==1) { $r['pageurl']=$public_r['newsurl'].str_replace(array('[!--tagname--]','[!--page--]'),array($tagname,0),$public_r['rewritetags']); $r['pageurl']=str_replace('+','%20',$r['pageurl']); } else { $r['pageurl']=$public_r['newsurl'].str_replace('[!--tagname--]',$tagname,$public_r['rewritetags']); $r['pageurl']=str_replace('+','%20',$r['pageurl']); } $r['rewrite']=1; } return $r;}
在输出url的函数里,用str_replace函数再修正回来,这样,就一切搞定了,不错吧,