dedecms列表页标题怎么修改?(列表名_网站名)_栏目二
优采云 发布时间: 2021-07-14 06:02
dedecms列表页标题怎么修改?(列表名_网站名)_栏目二
dedecms如何修改列表页的标题?
推荐学习:织梦cms
最近看到这些大网站的页面标题,发现它们的标题如下
频道页面:频道名称_网站名
列表页面:列表名称_频道名称_网站名
内容页:文章名_第二栏(列表名)_第一栏(频道名)_网站名
我也想把我的小站点改成这个,查了dedecms的帮助文档,发现没有这个相关的标记,看来只能自己搞了,又开始百度了发现这样的文章还有很多,请参考本站文章转的另一篇文章,
DEDE实现“文章title-列名-网站名”
但作为一名技术人员,我促使我自己编写一个。下面把我实现的方法和调用方法贴出来,方便大家使用
版本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类中用Ctrl+F搜索“函数GetPositionLink”,在GetPositionLink()函数下输入如下函数
该函数用于获取当前页面的位置信息
例如第 1 列_第 2 列
以下为引用内容:
代码如下:
/*
* 得到当前页的位置,主要用在页面title中
* $typeid 栏目id
* &$info 引用传值
* $SplitSymbol 各栏目之间的分割符
* 排序 desc:栏目二_栏目一 ,asc:栏目一_栏目二
*/
function getPosition($typeid,&$info,$SplitSymbol='_',$orderby='desc'){
if (empty($typeid)) return false;
$this->dsql->SetQuery("Select ID,reID,typename From jyk_arctype where ID='".$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'],"_");
好的,现在我们在模板中调用它
使用{dede:field/}调用list_article.htm和article_article.htm的title标签
如图所示
注意:频道页面不需要这样调用,虽然也可以获得频道名,但是用(dede:field/)调用更方便,不需要修改inc_arcpart_view.php 类
效果如下:
O,加上这个文章,修改织梦系统实现“文章名_Column1_Column2_网站名”。一共有4种不同的方法,根据个人情况选择,
祝你更多网站让baidu,google收录,哈哈。
下面的话:
在开发这个函数的时候发现dede的列数据表(变化不大)没有缓存。程序在使用时,实时链接到数据库。比如inc_typelink.php中,就是直接通过sql检测的。感叹phpcms在处理上比dedecms好。对于phpcms,平时不改的数据直接缓存到php文件中,虽然生成dedecms新版5.5 速度还可以,但是如果织梦开发者能更好的优化这些细节,就不会了生成速度不是更快。