怎么让dedecms搜索页面支持标签调用及自定义字段调用

怎么让dedecms搜索页面支持标签调用及自定义字段调用,第1张

做dede织梦程序的站长和优化dede织梦的SEOER,相信你们会发现dede织梦默认的dedecms(织梦系统)的Tag标签URL不是静态的,在织梦tag标签URL里含有“tagsphp/%BE%AD%D1%E9%B7%D6%CF%ED/”,如图  图见乐晨博客官网  很长而且网址也很难看,长难看不说,关键是像这类URL俗称动态的URL;做网站/seo优化的朋友我想大家都知道这是不利于搜索引擎的。那么,我们就要把它优化变成静态的;如何修改才能实现dede织梦TAG标签的静态化呢下面乐晨就站酷工作室的朋友指点及网络搜索一些知识来分享一下,希望可以帮到在这里遇到困难的伙伴们!  分享前先说下吧,针对DEDE织梦TAG标签静态化修改出了一款插件,开始走商业化的,后来随着竞争及分享,导致做这个技术的朋友利润估计少了;现在就成了免费的技术分享了!所以我们是幸运的。呵呵。。。不过虽然免费,但是不懂点基础的,改起来还是有点吃力!不信往下看  一、插件说明  本修改适用56可以生成网站所有TAG列表的静态网页文件,还有生成tag的首页静态文件。  乐晨温馨提示:修改前,请备份相关的原始文件。  二、步骤修改  1、在DEDE织梦网站根目录,建立“tag”目录(注:小写;为啥要建个”tag”目录呢小编操作过发现当你生成新的dede织梦TAG标签URL文件时,都会存储在这个目录里,如图)  图见乐晨博客官网  2、在DEDE后台SQL运行器里,执行以下一条SQL:ALTERTABLE`dede_tagindex`ADD`maketime`INT(10)UNSIGNEDNOTNULLDEFAULT'0';  3、增加文件:  templets/default/list_taghtm//可从文章列表页复制修改  templets/default/index_taghtm//可从taghtm复制  dede/makehtml_tag_action_listphp  dede/makehtml_tag_action_indexphp  dede/makehtml_tagphp  dede/templets/makehtml_taghtm  include/arctaghtmlclassphp  4、修改文件:  dede/inc/inc_menuphp  143行,插入  include/taglib/taglibphp61行屏蔽,62行插入(参考附带的文件,也可以直接覆盖)  include/extendfuncphp把里面的代码,都复制到你的extendfuncphp文件里  三、使用说明:  1、进入后台“生成”,即可看到左边的“更新TAG静态”(就在更新主页、栏目、文档等功能的下方)  2、自行编辑TAG列表页模板list_taghtm、TAG首页模板index_taghtm,都放在你站点模板所在目录即可(和首页模板、列表页模板、内容页模板等在一起)  3、生成有个选项“是否强制全部生成”,它是为了节约资源设计的  如果是“重新生成全部TAG列表”,它会更新所有的TAG的列表页;  如果是“仅更新上次生成后有变化的TAG”,它则会只更新上次更新之后有变化及新增加的TAG的列表页,这个比较节约时间  4、生成的TAG首页,放在根目录,叫做tagshtml  5、如果你的模板里,还有TAG需要指向到它的静态地址,则用参考这个函数去处理其标签即可:  {dede:tagtype='current'}  [field:idfunction="nic_tag_url(@me)"/]  {/dede:tag}  其中的id就是这个TAG的ID号  6、在内容页模板,如果想指向该文TAG的列表页,用以下标签即可:  {dede:fieldidfunction='nic_arc_tag_link(@me)'/}  在文章列表页、arclist标签等,使用一下代码调用文章TAG列表  [field:idfunction='nic_arc_tag_link(@me)'/]  四、高级补充说明:  1、TAG这个目录可以改,修改arctaghtmlclassphp的146行和extendfuncphp的15行,里面的tag/字样  2、文件名里的id号不能去掉,举例说因为“作业”和“昨夜”的拼音都一样,如果没有ID,他们的文件名就重复了。  3、生成速度和普通列表页一致的,因为是从哪里修改过来的。你有1万个TAG,假定你每个TAG对应有30个文章吧,列表页10篇为一页,那就有3万篇了。  你可以到后台的sql运行工具里,执行这一句看看,就知道TAG对应文章之后,数量就远大于TAG数量本身:  selectcount()ascfromdede_taglist  4、如果需要在发布新文章的时候,同时更新相关的TAG列表页,可以参考附带的inc_archives_functionsphp,修改你DEDE后台目录dede/inc/inc_archives_functionsphp  增加741行、758~765行  这就是关于dede织梦tag标签静态化如何修改的方法;这里还需要插件的代码辅助!  织梦Tag标签静态化修改-织梦插件下载地址:

第一个方法:

可以直接在需要判断网站织梦版本的的URL路径后面添加/data/admin/vertxt

如果显示:20100309 (或者其他的版本号,意思就是dedecms的不同版本的编号。)那就是用dedecms建设的。反之,则不是。

第二个方法:

直接查看目标网站的robotstxt文件,因为dedecms自带的robotstxt文件有一个规律,就是:

User-agent:

Disallow: /plus/ad_jsphp Disallow: /plus/advancedsearchphp

Disallow: /plus/carphp

Disallow: /plus/carbuyactionphp

Disallow: /plus/shops_buyactionphp

Disallow: /plus/erraddsavephp

Disallow: /plus/posttocarphp

Disallow: /plus/disdlsphp

Disallow: /plus/feedback_jsphp

Disallow: /plus/mytag_jsphp

Disallow: /plus/rssphp

Disallow: /plus/searchphp

Disallow: /plus/recommendphp

Disallow: /plus/stowphp

Disallow: /plus/countphp

Disallow: /include

Disallow: /templets

但是这种方法不是很准确,因为有很多网站在用dedecms制作完后直接就自己修改了dedecms的robotstxt文件了,当然,也有没有修改的,这种方法有时也可以起到作用哦!

第三个方法:(个人认为)

可以直接查看他的一些dedecms的默认的页面,像是tag页面啊,站内搜索页面,友情链接页面,或者是评论查看页面,因为有些网站在修改模版的 时候没有删除这些模版,当然,由于用不到那些页面,所以就没有修改,所以。。。。当然出来的就是dedecms默认的页面啦!!!不过这种方法只能看一般性的小站长或者dedecms初级玩家做的网站,不过也算是一种方法啦!

首页调用{dede:arclist typeid='xx' row='调用条数'channelid='文章模型id'addfields='自定义字段名' } [field:自定义字段/]{/dede:arclist}列表调用自定义字段:必须使字段可以在列表的底层模板中获得(自定义字段默认仅能在文档模板显示,启用此选项将使列表查询变慢,如无必要请不要选择)勾上他{dede:listpagesize='调用条数'channelid='文章模型id' addfields='自定义字段名'} [field:自定义字段/]{/dede:list}

dede数据库字段说明:dede_addonarticle 附加文章表

aid int(11) 文章编号

typeid int(11) 分类栏目编号

body mediumtext 文章内容

dede_addonflash 附加Flash表

aid int(11) FLASH编号

typeid int(11) 分类栏目编号

filesize varchar(10) 文件大小

playtime varchar(10) 播放时长

flashtype varchar(10) 作品类型

flashrank smallint(6) 作品等级

width smallint(6) 影片宽度

height smallint(6) 影片高度

flashurl varchar(80) FLASH地址

dede_addonimages 附加图集表

aid int(11) 图集编号

typeid int(11) 分类栏目编号

pagestyle smallint(6) 表现方式(1单页显示 2分多页显示 3多行多列展示)

maxwidth smallint(6) 大图限制宽度

imgurls text 集内容(标签存放)

row smallint(6) 多列式参数(行)

col smallint(6) 多列式参数(列)

isrm smallint(6) 是否下载远程

ddmaxwidth smallint(6) 小宽度限制

dede_addonsoft 附加软件表

aid int(11) 软件编号

typeid int(11) 分类栏目编号

filetype varchar(10) 文件类型

language varchar(10) 界面语言

softtype varchar(10) 软件类型

accredit varchar(10) 授权方式

os varchar(30) 运行环境

softrank int(11) 软件等级

officialUrl varchar(30) 官方网址

officialDemo varchar(50) 程序演示地址

softsize varchar(10) 软件大小

softlinks text 软件下载链接列表

introduce text 软件介绍

dede_addonspec 附加专题表

aid int(11) 专题编号

typeid int(11) 分类栏目编号

note text 专题内容(仅存放标签代码)

dede_admin管理员信息表

ID int(10) 自动编号

usertype int(10) 用户类型

userid varchar(30) 用户登录ID

pwd varchar(50) 用户密码

uname varchar(20) 用户笔名

tname varchar(30) 真实姓名

email varchar(30) 电子邮箱

typeid int(11) 负责频道(0表示全部)

logintime datetime 登录时间

loginip varchar(20) 登录IP

dede_admintype 系统用户组管理表

rank smallint(6) 组级别编号

typename varchar(30) 组名称

system smallint(6) 是否为系统默认组

purviews text 权限列表

dede_arcatt文档自定义属性表

att smallint(6) 编号

attname varchar(30) 属性名称

dede_archives 文章表

ID int(11) 自动编号

typeid int(11) 所属主栏目编号

typeid2 int(11) 所属副栏目编号

sortrank int(11) 文章排序(置顶方法)

iscommend smallint(6) 是否推荐

ismake smallint(6) 是否生成静态

channel int(11) 文章所属模型

arcrank smallint(6) 阅读权限

click int(11) 点击次数

money smallint(6) 消费点数

title varchar(80) 标题

shorttitle varchar(36) 简略标题

color varchar(10) 标题颜色

writer varchar(30) 作者

source varchar(50) 来源

litpic varchar(100) 缩略图

pubdate int(11) 录入时间

senddate int(11) 发布时间

arcatt smallint(6) 自定属性(att)

adminID int(11) 发布管理员ID

memberID int(11) 发布会员ID

description varchar(250) 摘要

keywords varchar(60) 关键词

templet varchar(60) 文档模板

lastpost int(11) 最近评论时间

postnum int(11) 评论数目

redirecturl varchar(150) 跳转网址

mtype int(11) 用户自定义分类

userip varchar(20) 用户IP

locklikeid smallint(6) 是否锁定相关文章

likeid varchar(240) 相关文章ID

dede_arcrank 阅读权限表

ID int(10) 自动编号

rank smallint(10) 权限等级

membername varchar(20) 等级名称

adminrank smallint(10) 管理等级

money int(11) 消费点数

dede_arctype 栏目管理表

ID int(10) 栏目编号(自动编号)

reID int(10) 父栏目编号

topID int(10)

sortrank smallint(6) 排序编号

typename varchar(30) 栏目名称

typedir varchar(100) 栏目目录

isdefault smallint(6) 栏目列表选项(1链接到默认页 0链接到列表第一页 -1使用动态页)

defaultname varchar(20) 默认页的名称

issend smallint(6) 是否支持投稿

channeltype smallint(6) 频道类型

maxpage int(11) 保留

ispart smallint(6) 栏目属性

corank smallint(6) 浏览权限

tempindex varchar(60) 封面模板

templist varchar(60) 列表模板

temparticle varchar(60) 文章模板

tempone varchar(60) 单独页面模板

namerule varchar(50) 文章命名规则

namerule2 varchar(50) 列表命名规则

modname varchar(30) 模板名称

description varchar(200) 栏目介绍

keywords varchar(100) 关键词

moresite smallint(6) 多站点支持

siterefer smallint(6) 多站点站点根目录属性

sitepath varchar(60) 多站点站点根目录

siteurl varchar(60) 多站点绑定域名

ishidden smallint(6) 是否隐藏栏目

dede_sgpage 单页

上面是一些常用字段,可以在dede后台-》系统-》SQL命令行工具执行sql语句来批量修改!

{dede:tag sort='new' getall='1'}

<a href='[field:link/]'>[field:tag /]</a>

{/dede:tag}

在\dede\include\extendfuncphp文件中添加如下函数:

function getArticleList($category=0,$order="",$limit="0,200"){

global $dsql;

$query = "SELECT arc,tptypedir,tptypename,tpcorank,tpisdefault,tpdefaultname,tpnamerule,

        tpnamerule2,tpispart,tpmoresite,tpsiteurl,tpsitepath

        FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp on arctypeid=tpid

        where tpid=$category";

//此sql语句我只加了where判断文章所属分类

//其他的order limit 你根据需要自己添加

$dsql->SetQuery($query);

$dsql->Execute('lit');

$arr = array();

$cnt = 0;

$str = "";

while ($row = $dsql->GetArray('lit')) {

if($cnt%4 == 0){

$str = "<div class='css1'>";

}

if($cnt%4 > 0){

$class = "css3";

}else{

$class = "css2";

}

$str = "<span class='"$class"'>"$row['title']"</span>";

$cnt++;

if($cnt%4 == 0){

$str = "</div>";

}

//$row中可用的常用字段如下:$row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'], row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']

}

return $str;

}

然后在模板中使用 

{dede:field name='typeid' function="getArticleList(@me)" /}

将分类的id传给此函数就可以调用到数据,输出就是你要的格式。

输出内容你修改下php文件,常用字段都给你写在注释里了。

如果可以请也将我昨天给你回答的采纳一下。

{dede,globalname=cfg_powerby/}。

dedecms中常用标签还有,版权{dede,global。cfg_beian/},底部调用标签,{dede,includefilename=footer。htm/},网站备案调用标签,{dede,globalname=cfg_beian/}等。

dede是织梦内容管理系统dedecms的简称,以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统。

大体试用了一下三个系统,得出了一个比较粗浅的结论:

1、phpcms:

phpcms自2007版本开源以后才开始引起广泛关注,但这次也是头一次研究。用了几天,有了一点初步的印象。(以下以2007版为例,2008版尚未正式推出)

粗看起来,phpcms 2007是三者中最为完善的,各项功能考虑的很细致,导致进了新手进了后台先要晕半天才行。各项功能,比如UNIX系统的权限、模版修改、广告、商城、信息、单网页。。。。都做的相当的完备了。

发表文章的关键字、作者、来源、自动远程保存等等,都做的不错。但是,phpcms发表文章的摘要,似乎是只能自动截取,不能手工设置,灵活性欠佳。

发表的文章可以通过关键字来索引相关贴,做的不错。

支持通行证方式进行论坛和其它系统的整合,可以进行正向和反向两种方式的整合。但是文档说的不太清楚,研究了半天才成功。但是反向整合pw501登录后自动跳转不回来。

phpcms 2007的后台安排的太琐碎,看的头晕。发一篇文章也要晕半个钟头,而且首页的更新莫不清规律,幻灯片老半天不更新。

phcms尽管功能很强大,但是却缺少一样重要的东西:可视化的模版工具,这也是php168和dedecms共同的缺点。在这方面,他们甚至不如刚刚起步的DiyPage好,DiyPage只是一个刚刚具备了雏形的CMS系统,却拥有一个很方便的后台可视化界面设计工具,即使是菜鸟也可以轻松设计界面(虽然灵活性没那么强大,但是足够你用了)。

phpcms 2007整体以频道为依据进行组织,即使你不想用频道,哪也得用,这个已经由不了你了 。所以如果仅仅是一个比较简单的网站,也用上一个频道,看起来够别扭的,这是phpcms 2007最大的缺点,不过看了phpcms 2008beta2发现,phpcms终于解除了这个垃圾限制。

发现phpcms的广告功能似乎不完善,一个广告位定义了两个广告,不能自动轮换,总是显示第一个。

phpcms虽然实现了模块化,但是不管你用不用,一大堆模块稀里呼噜就装上了,看起来很不爽,也不直观。

phpcms虽然是很早就是商业化运作的软件,然后开发效率却是不高,新版本屡屡跳票,影响了它的产品形象,让开源以来积累的人气和一些拥趸大失所望。然而最近贴上了六间房以后,资金应该是没有压力了,新版本也开始浮出水面,2008beta1已经发布了,可惜问题多多。

phpcms 2008 beta2 在 MySQL4 上还是有使用问题,不过比beta1强一些,beta1直接就安装不了,不知道正式版是否会正式放弃MySQL4。

phpcms 2008beta2看上去不错,新功能令人振奋的,界面清爽。以前一团乱麻的后台界面已经打扫干净了。phpcms 2008的标签采用了中英文混合的方式,对菜鸟来说更加容易上手,比较新颖。另外,beta2好像是实现了类似php168的可视化模版中的标签设置方式,虽然不是可视化的设计模版,总归可以自定义一些元素样式了。不过这个beta2版也还是顶多算是个预览版,BUG极多,功能不全。如果准备用phpcms的话,怕是还要大大的等几天才行。

另外,phpcms官方论坛对免费版的支持很不到位,伤了很多粉丝的心。

2、dedecms

51应该是dedecms正式商业化运作以后推出的第一个版本吧?以前的dedecms个体作坊式的发展,由于作者兼职时间和精力不足,导致发展缓慢,新版本频频跳票,引起广大粉丝的强烈不满,甚至导致柏拉图和dedecms用家之间的语言冲突。然而dedecms在商业化运作以后,新版本的发布周期大大缩短,产品功能不断改进,界面美化了很多,人气和用户数量大大增长了,现在看发展势头不错。

dedecms的根目录是最简单的,只有几个文件,比以上两个都强多了,其实这样不仅看起来清爽,维护起来也方便,值得表扬

dedecms的频道非常费解,看起来只有频道模型,要增加频道就要添加模版文件有点费解,仔细研究发现,这个dedecms其实和php168的方式差不多,任何栏目都可以添加子目录,绑定域名,其实就和频道是一个意思,栏目和频道可以互相转换。

dedecms的通行证只支持反向整合,就是dedecms可以用服务端的用户数据登录。其实所谓整合,一般也就是这样的。论坛用整站用户数据的情况恐怕极为少见,对论坛管理也不利。

但是dedecms的通行证整合,需要修改论坛文件,不明白为啥要这样,是因为论坛的通行证功能还不完善吗?

dedecms的广告管理用起来比较麻烦,要先定义标签,然后手工在模板中插入。好像模版上没预定义好广告位置,实在是太不应该了。。。。相当于手动操作,不符合当今历史潮流啊。而且大家常用的广告自动轮换功能,也没有实现。

试用发现,dedecms有时还有一些小毛病,比如远程附件功能,有时发现无法自动转存到本地。另外,在模块数量上,dedecms也无法和php168和phpcms相比,只有文章、下载、、Flash等基本的功能,不知道dedecms 2007发布以后能否有所改观

dedecms的相关文章、热点文章等功能,用了静态生成的方式直接写入到了HTML文件中,这样在生成HTML后,无法自动更新,需要经常手工重新生成全部HTML才能更新相关文档和热点文档。但是大量的重复生成所有HTML文件效率太低下了,这方面dedecms不如php168最新添加的相关文章功能,是用JS方式实现的,不需要更新HTML就能自动索取最新的相关文章。但是使用JS方式也存在服务器效率的问题。

dedecms的首页、列表页、还有文章页都使用了单独的模板,没有使用header和footer模板,这样的好处是可以产生各种风格的页面(允许首页、列表页、内容页使用不同的风格),但是缺点是修改添加头部和底部广告、导航条的时候,相当费劲,要一个一个模板的修改。而且dedecms的版权声明字段设置太小,只有250字节,写不进去多少内容,顶多能添加个计数器就不错了。

dedecms起步就用了类似XML标签方式,而且官方还提供了Dreamweaver的插件来识别标签,应该说在国内是比较独到的。但是这种方式也需要新手一定的时间才能适应。同时,dedecms一直缺乏比较完善的文档,也进一步加大了菜鸟上手的难度。

dedecms最大的问题就是没有提供类似Diypage的可视化设计方式,因为标签比较难于上手,对新手来说做模板是很头疼的问题。

dedecms 51比40功能有了很多进步,增加DIGG功能,还有类似分类信息之类的功能都实现了。不过也有退步,比如关键词、相关帖功能都严重退步了,发帖也很不方便,而且dedecms在商业版本和免费版本之间做功能和代码区分,也自然会在免费版本上有所缩水。

dedecms商业化发展以后,目前出现的问题是免费版的技术支持做的不太到位,比phpcms强不了多少。

3、php168

php168关注很久了,却一直没怎么用过。当年整合论坛的30版给俺很深的印象,可惜论坛没有坚持下去。最近php168的开发工作很强劲,推出了N多模块,让人看的眼晕。

看过了phpcms的后台,再进php168的后台,感觉舒服多了,简洁多了,但是功能还可以。

php168的频道不是强制的,好像是栏目和频道可以转换,灵活性比phpcms强多了

关键字功能没有实现相关贴功能,不爽(新版本已经增加了,用JS方式实现的动态调用)。

php168一直不是用通行证实现整合论坛,这方面做的不好,灵活性欠佳。需要CMS和论坛安装在同一个数据库才行。

首页的标签设置,php168提供了一个可视化的工具,可以直接在上面设置标签,修改标签属性,这方面做的比phpcms强多了。虽然不能设计主页模板,但是可以方便的修改首页模板中元素的内容和显示方式,对菜鸟来说比较不错。dedecms的标签提供(或者公布)的属性比较少,想定制样式是比较麻烦的,目前可能是需要直接用PHP语句来修改。

但是要实现广告功能,还是要像dedecms一样,先定义标签,然后手工修改模版,有点太麻烦了,汗。另外,好像也没实现广告自动轮换功能()。

php168实现了模块化,可以一个一个的装,看起来比phpcms清爽多了

php168页面模板也是使用了标签方式,但是模板代码好像是类似phpwind的方式(这不奇怪,php168的作者本来就是从phpwind插件开发开始的),代码和模板的分离程度比较差,这个东西其实是个双刃剑,因为用php代码方式,灵活度是最大的,也不用像dedecms一样,标签难以上手,扩展困难;但是缺点也很大,就是不懂编程的人士难以上手,特别是美工和程序的分离不彻底(php168的官方模版就不如dedecms漂亮,不知道是不是这个原因)。

php168比dedecms多了一个可视化的首页标签定制功能,能设置首页元素的显示内容,显示方式,这是比dedecms略强了一些,有总比没有强啊。

因为php168研究的比较少,其它功能没仔细测试过,就不多讲了。总体来说,如果php168能稍加完善,其实是一个相当不错的整站程序。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎么让dedecms搜索页面支持标签调用及自定义字段调用

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情