Dedecms完成了“新闻标题_栏目2_栏目1_网站名称”的标题
近期见到sina.com.cnqq.com163.com这种大型网站的页面题目title,发觉她们的题目以下频道页:频道名_网站名
列表页:列表名_频道名_网站名
內容页:文章内容名_栏目二(列表名)_栏目一(频道名)_网站名
也想把自己的华明镇改为那样的,去查了查dedecms的帮助文件,发觉沒有那样有关标识,来看只有亲自动手了,又刚开始baidu,发觉那样的文章内容还许多,请查阅本网站转到的另一篇文章,
DEDE完成“新闻标题-栏目名字-网站名”
但作为一个专业技术人员又迫使自己也写了一个,下边把自己完成的方式及怎样启用贴上去,便捷大伙儿应用
版本号5.0,牵涉到的类和模板有下列好多个
inc_archives_view.php(全新5.5版为arc.archives.class.php)內容页形成类
inc_arclist_view.php(全新5.5版为arc.listview.class.php)列表页形成类
inc_typelink.php(全新5.5版为typelink.class.php)用以获得页面部位和栏目名有关类
index_article.htm频道页模板
list_article.htm列表页模板
article_article.htm內容页模板
最先大家来改动dedecms的核心,(下列我讲的文件夹名称统一用5.0版,你能相匹配上边我列举的文档一一查询新版本相匹配的各文档)
在inc_typelink.php类里CtrlF搜索"functionGetPositionLink"在GetPositionLink()涵数放入下列涵数
这一涵数用以获得当今页面的位置信息
例如栏目1_栏目2
下列为引入的內容:
复制代码编码以下:
/*
*获得当页的部位,关键用在页面title中
*$typeid栏目id
*&$info引入传值
*$SplitSymbol各栏目中间的切分符
*排列desc:栏目二_栏目一,asc:栏目一_栏目二
*/
functiongetPosition($typeid,&$info,$SplitSymbol='_',$orderby='desc'){
if(empty($typeid))returnfalse;
$this->dsql->SetQuery("SelectID,reID,typenameFromjyk_arctypewhereID='".$typeid."'");
$infos=$this->dsql->GetOne();
$symbol=empty($info)?"":$SplitSymbol;
if($orderby=='desc'){
$info=$info.$symbol.$infos['typename'];
}
else{
$info=$infos['typename'].$symbol.$info;
}
if($infos['reID']!='0'){
$this->getPosition($infos['reID'],&$info,$SplitSymbol,$orderby);
}
}
如图所示:
接下去再在分析列表页,內容页的类里添加有关编码,
在inc_archives_view.php类里搜索$this->Fields['position']在这里一行下边添加下列编码
复制代码编码以下:
$this->TypeLink->getPosition($this->Fields['typeid'],&$this->Fields['position2'],"_");
在inc_arclist_view.php类里一样搜索$this->Fields['position']在他下边添加下列编码
复制代码编码以下:
$this->TypeLink->getPosition($typeid,&$this->Fields['position2'],"_");
好啦,如今我们在模板里启用
在list_article.htm和article_article.htm的title标识里用{dede:fieldname='position2'/}启用
如图所示
注:频道页不用用那样方式启用,尽管还可以获得频道名,但用{dede:fieldname='typename'/}启用更为便捷,也不用改动inc_arcpart_view.php类
完成实际效果以下:
O了,再加上本文,改动织梦cms系统软件使其完成"文章内容名_栏目1_栏目2_网站名"一共有4种不一样的方式了,依据个人情况挑选吧,
祝你们的网址让baidu,google百度收录的大量,呵呵呵.
后话:
在开发设计这一作用时,发觉dede像栏目数据分析表(平常不太修改)也不缓存文件,程序流程再用时全是即时连接数据库,就例如inc_typelink.php上都是立即sql查出的,禁不住感慨phpcms在层面的解决要更好于dedecms,phpcms对平常不怎么更改的数据信息全是立即缓存文件成php文件,尽管dedecms最新版本5.5的形成速率还能够,但织梦cms的开发者假如能更强的提升这种关键点,那形成速率岂不容易更加速.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)