怎么让dedecms搜索页面支持标签调用及自定义字段调用
参考dedecms的帮助文档中的arclist标签
标签名称:arclist
标记简介:织梦常用标记,也称为自由列表标记,其中imglist、imginfolist、specart、coolart、autolist都是由该标记所定义的不同属性延伸出来的别名标记。
功能说明:获取指定文档列表
适用范围:全局使用
基本语法:
{dede:arclist flag='h' typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword='' limit='0,1'}
<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:arclist}
参数说明:
col='' 分多少列显示(默认为单列),53版中本属性可以通过多种方式进行多行显示
如果col='1'要多列显示的可用div+css实现
以下为通过div+css实现多列的示例:
<style type=text/css>
div{width:400px;float:left;}
</style>
{dede:arclist row='10' titlelen='24' orderby='pubdate' idlist='' col='2'}
•[field:textlink/]([field:pubdate function=MyDate('m-d',@me)/])<br/>
{/dede:arclist}
当col>1将使用原来的table多列方式显示
row='10' 返回文档列表总数
typeid='' 栏目ID,在列表模板和档案模板中一般不需要指定,在首页模板中允许用","分开表示多个栏目;
getall='1' 在没有指定这属性的情况下,在栏目页、文章页模板,不会获取以","分开的多个栏目的下级子类
titlelen = '30' 标题长度 等同于titlelength
infolen='160' 表示内容简介长度 等同于infolength
imgwidth='120' 缩略图宽度
imgheight='90' 缩略图高度
listtype='all' 栏目类型 image含有缩略图 commend推荐
orderby='sortrank' 文档排序方式
§ orderby='hot' 或 orderby='click' 表示按点击数排列
§ orderby='sortrank' 或 orderby='pubdate' 按出版时间排列
§ orderby='near'
§ orderby=='lastpost' 按最后评论时间
§ orderby=='scores' 按得分排序
§ orderby='id' 按文章ID排序
§ orderby='rand' 随机获得指定条件的文档列表
keyword='' 含有指定关键字的文档列表,多个关键字用","分
innertext = '' 单条记录样式
aid='' 指定文档ID
idlist ='' 提取特定文档(文档ID)
channelid 频道ID
limit='起始ID,记录数' (起始ID从0开始)表示限定的记录范围(如:limit='1,2' 表示从ID为1的记录开始,取2条记录)
flag = 'h' 自定义属性值:头条[h]推荐[c][p]幻灯[f]滚动[s]跳转[j]图文[a]加粗[b]
noflag = '' 同flag,但这里是表示不包含这些属性
orderway='desc' 值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序
subday='天数' 表示在多少天以内的文档
用arclist调用于附加表字段的方法:
要获取附加表内容,必须符合两个条件
1、指定 channelid 属性
2、指定要获得的字段 addfields='字段1,字段'
如:
{dede:arclist addfields='filetype,language,softtype' row='8' channelid='3'}
[field:textlink /] - [field:softtype /]<br />
{/dede:arclist}
底层模板字段:
ID(同 id),typeid,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,color,writer,
source,litpic(同picname),pubdate,senddate,mid, lastpost,scores,goodpost,badpost,notpost,
description(同infos),filename, image, imglink, fulltitle, textlink, typelink,plusurl, memberurl, templeturl,
stime(pubdate 的"0000-00-00"格式)
其中:
textlink = <a href='arcurl'>title</a>
typelink = <a href='typeurl'>typename</a>
imglink = <a href='arcurl'><img src='picname' border='0' width='imgwidth' height='imgheight'></a>
image = <img src='picname' border='0' width='imgwidth' height='imgheight' alt=’titile’>
字段调用方法:[field:varname/]
如:
{dede:arclist infolen='100'}
[field:textlink/]
<br>
[field:infos/]
<br>
{/dede:arclist}
注:底层模板里的Field实现也是织梦标记的一种形式,因此支持使用PHP语法,Function扩展等功能。
如: 给当天发布的内容加上 (new) 标志
[field:senddate runphp='yes']
$ntime = time();
$oneday = 3600 24;
if(($ntime - @me)<$oneday) @me = "<font color='red'>(new)</font>";
else @me = "";
[/field:senddate]
是自己添加的那些字段吧 addfields和channelid 看看是不是正确的写了
用arclist调用于附加表字段的方法:
要获取附加表内容,必须符合两个条件
1、指定 channelid 属性
2、指定要获得的字段 addfields='字段1,字段'
如:
{dede:arclist addfields='filetype,language,softtype' row='8' channelid='3'}
[field:textlink /] - [field:softtype /]<br />
{/dede:arclist}
首页调用{dede:arclist typeid='xx' row='调用条数'channelid='文章模型id'addfields='自定义字段名' } [field:自定义字段/]{/dede:arclist}列表调用自定义字段:必须使字段可以在列表的底层模板中获得(自定义字段默认仅能在文档模板显示,启用此选项将使列表查询变慢,如无必要请不要选择)勾上他{dede:listpagesize='调用条数'channelid='文章模型id' addfields='自定义字段名'} [field:自定义字段/]{/dede:list}
在站长这个圈子里,dedecms 是大家都比较熟识的一个网站程序,dedecms以功能强大和seo友好受到众多站长的青睐。新手站长用这个程序搭建一个站也是很容易的事,但是看着别的网站那么精美的页面,又看看自己使用的默认模板,总有些怅然若失的感觉。其实对于一个新手站长来讲,你也可以通过自己的努力去仿制这个网页作为自己的模板。
理论上对于任何一个网页,dedecms是都可以仿制的,只是复杂程度不同,这里讲的复杂程度其实只是些重复的工作。新手站长只要细心去做,发现并不会太困难,当然一定的知识储备还是需要的。事实上,太多的新手站长是被自己给吓倒了,一说到仿制网页模板,马上就会摇头说我不懂php,不懂css我怎么去仿呀。其实仿站对这个几乎没有要求的,只要我们能看懂html,并且知道dedecms程序是怎么对标签调用的,就可以开始制作了。在制作的过程中,你可能会遇到这样或者那样的问题,这个时候你可是要用好“百度”的,要记住他永远是你最好的老师。
前面讲到dedecms对标签的调用,网上的教程有很多,我们也可以查看帮助文件。也许一下子看到那么多的标签,好多新手站长的头都大了。其实,在我们仿制模板的过程中,真正能用的就那么几个而已,比如:{dede:arclist}获取指定文章列表标签、{dede:channel}获取栏目列表页等。我们只要把常用的几个搞明白了,就可以动手了。每个标签里还会出现一些属性,如这一句调用:{dede:arclist row=’6’},其中的”row”就是标签的一个属性,就是调用多少篇文章的意思,而后面的”6”就是这个属性的值,就是本次调用6篇文章。属性基本上是见名而知义的。
千万不要等到把所有的标签都搞得滚瓜烂熟再动手去仿制,这种上手的方法不是说不好,而是太慢了。最快的学习过程就是动手去做,做的过程中你会遇到各种问题,而通过努力不断的解决掉问题的过程,就是你最好、最实效的学习过程。你第一次仿制模板时可能要用5天,当你第二次的时候也许只要3天,这样连续找几个不太复杂的站进行仿制练习,你会感慨“原来仿站不过如此而已”。
仿制模板最快速上手的方法是对比着仿。对比着仿就是对比着dedecms的默认模板来仿,比如我们要仿制的网站首页的title/title之间显示的是这个网站的标题,而默认模板里在这对标签之间是{dede:globalcfg_webname/},我们只要把这个标签内容复制过去,把原来的内容覆盖掉就可以了,甚至不用知道这个标签是什么意思。只要是功能相同的地方我们都可以采用这种只动鼠标就可以解决的方法。
仿制模板最应该关注的是两个问题:其一是素材路径的问题,我们下载的网页路径都是正常的,但当我们把网页放入我们网站目录时可能会产生调用异常,因为路径的改变可能导致无法读取到一些样式和素材。这个时候我们就要对路径进行修改,建议使用以网站根目录为起始路径的绝对路径,即形如”/templets/default/style/dedecmscss”这样的路径;其二是编码问题,一定要做到仿制好的模板的编码和你所安装的dedecms的编码一致,要不然,生成的网页是一片乱码。解决这个问题使用编码转换软件或者一些工具网站提供编码转换工具就可以了。
仿制网页模板不像我们相像中那么难,只要花点时间学习一下,很容易上手的,关键是思想上不能被吓倒。仿制网页模板不是太大的技术活,很多时候更像是体力活。一般情况投入10天的时间,就会让你以后的模板无忧的。
dedecms页面模板中怎么插入php语句,就是在htm中写入php语句的方式如下:
用php语句实现判断QQ,如果没有就给出一个友好的提示(没有****),如果有就把****输出来,这是一个非常实用的小功能。代码如下:
[field:qq runphp='yes']
if(@me=="") @me="没有****";
else @me="<font color=red>@me</font>";
[/field:qq]
很简单几行代码,大家都知道底层模板可以有两种调用方法:
A、使用[field:字段名/]实现;
B、使用[field:字段名][/field:字段名] 实现。
无忧主机(www51phpcom)小编就采用第二种调用方法,我们在过程中需要对值进行处理,其中最关键的属性就是 runphp=’yes’,他的几个关键参数的含义如下:
runphp=’yes’意思就是是否运行php语句,
runphp=’no’如果你填的是NO,就不会执行php语句。,
runphp=’@me’是表示输入的值,也就是从字段中取得的值,
dedecms栏目名称的调用方法:
{dede:field name="typename"} 调用当前栏目的名称
{dede:channel type='son' row='5'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel}调用该顶级频道下所有字栏目,row代表调用5条
{dede:type typeid='栏目id'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:type} 表示调用指定id的栏目,只能调用一个。
{dede:channel type='top'}<a>[field:typename/]</a> {/dede:channel}调用子栏目的当前顶级栏目名称。
调用顶级栏目名称示例代码:
{dede:fieldtitle runphp=’yes’}list($toptype,$sontype)=split(‘/’,@me);@me=$toptype;{/dede:fieldtitle}dedecms也叫织梦内容管理系统,是一款知名的PHP开源网站内容管理系统,以简单、实用、开源而闻名,DedeCms免费版的主要目标用户在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企业用户和学校等在使用。
0条评论