dedecms 标签调用 首页及列表页面 文章列表调用标签

dedecms 标签调用 首页及列表页面 文章列表调用标签,第1张

一、修改文件include/taglib/channellibphp,把

DEDE模板

$attlist =

"typeid|0,reid|0,row|100,col|1,type|son,currentstyle|,cacheid|";

修改成

$attlist =

"typeid|0,reid|0,row|100,col|1,type|son,currentstyle|,cacheid|,line|1";

//|后面的1,代表初始值

第二、在第9行附近追加如下代码:

//默认属性里设置的行数 $default_line =

$ctag->CAttribute->Items["line"];

第三、把下面代码

$row['sonids'] = $row['rel'] = '';

修改成

$row['sonids'] = $row['rel'] = ''; $row['line'] =

$default_line+$i;

最后,特别要注意的是,如果要使用currentstyle样式,即当前栏目样式,则必修将刚才的"line"字段,追加到下面代码后面

本文来自织梦模板团

$linkOkstr = str_replace("~rel~",$row['rel'],$linkOkstr); $linkOkstr =

str_replace("~id~",$row['id'],$linkOkstr); $linkOkstr =

str_replace("~typelink~",$row['typelink'],$linkOkstr); $linkOkstr =

str_replace("~typename~",$row['typename'],$linkOkstr); $linkOkstr =

str_replace("~line~",$row['line'],$linkOkstr);

好了,以上就是怎么给织梦dedecms栏目导航{dede:channel}标签添加序号,希望对大家修改织梦dedecms有所帮助。

在DEDECMS中,我们会发现导航代码中有一个[field:rel/],这个标签是导航栏中用来显示下级菜单栏目。

修改文件/include/arcarchivesclass

将以下代码

       $next = (is_array($nextR)  " where arcid={$nextR['id']} " : ' where 1>2 ');

       $pre = (is_array($preR)  " where arcid={$preR['id']} " : ' where 1>2 ');       

       $query = "Select arcid,arctitle,arcshorttitle,arctypeid,arcismake,arcsenddate,arcarcrank,arcmoney,arcfilename,arclitpic,

               ttypedir,ttypename,tnamerule,tnamerule2,tispart,tmoresite,tsiteurl,tsitepath

               from `#@__archives` arc left join #@__arctype t on arctypeid=tid  ";

改为如下

            if($this->ChannelUnit->ChannelInfos[‘issystem‘]!=-1){                

               $next = (is_array($nextR)  " where arcid={$nextR[‘id‘]} " : ‘ where 1>2 ‘);      

               $pre = (is_array($preR)  " where arcid={$preR[‘id‘]} " : ‘ where 1>2 ‘);    

               $query = "Select arcid,arctitle,arcshorttitle,arctypeid,arcismake,arcsenddate,arcarcrank,arcmoney,arcfilename,arclitpic,

                     ttypedir,ttypename,tnamerule,tnamerule2,tispart,tmoresite,tsiteurl,tsitepath

                     from `#@__archives` arc left join #@__arctype t on arctypeid=tid  ";

            }else{              

               $next = (is_array($nextR)  " where arcaid={$nextR[‘id‘]} " : ‘ where 1>2 ‘);                

               $pre = (is_array($preR)  " where arcaid={$preR[‘id‘]} " : ‘ where 1>2 ‘);                

               $query = "Select arcaid,arctitle,arctypeid,arcsenddate,arcarcrank,arclitpic, 

                              ttypedir,ttypename,tnamerule,tnamerule2,tispart,tmoresite,tsiteurl,tsitepath

                     from `"$this->ChannelUnit->ChannelInfos[‘addtable‘]"` arc left join #@__arctype t on arctypeid=tid  ";

            }

参考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]

耗谌菀持瓼IELD标签”,文章页用的最多的是field标签,但还有一些用的比较少的标签,往往有的时候却是需要它们,到这里引入我们今天的主题,如何获取相关文章,有的站长在考虑seo优化方面的时候就需要在文章下面加入相关文章链接,那么这个在DEDE里面要如何实现呢?别急,下面小编和大家一起学习一个新的标签,我们通过这个标签即可获取相关文章,这个标签叫likeart,likeart标签和我们前面讲的arclist也是有点类似的,因为它们都是获取文章列表,我们来看一下它是怎么个用法,只需要给它设置两个属性即可,一个是titlelen,是文章标签长度的意思,还有一个是row,是获取多少条的意思,这些都根据自己的需要来设置。下面小编来写一个完整的,大家可以参考下:1 {dede:likeart2 3 titlelen='24' row='10'}4 5 [field:title/]6 7 {/dede:likeart}在上述代码中,中间部分如果大家看了小编前面的教程想必都不会陌生的,是两个底层模板,底层模板小编讲的太多了,这里就不重复了,一个是文章URL,一个是文章标题。我们把代码保存到文章页模板(article_articlehtm)中适当位置,然后上传到您的php虚拟主机去测试,别忘了重新在后台生成下HTML哦,不然是看不到效果的,如果成功可以调取10篇相关文章,大家可以看下小编的测试效果图:DEDECMS仿站建站基础

到后台页面看文档中有没有内容,然后再去数据表中看看有没有文章内容。

如果都没有文章内容,那应该是你的服务器php版本高于54,然后你用的是dedecms-gbk的编码,你用dede-utf8的程序就可以了,或者将服务器的php版本改成53。

如果有文章内容而前台的页面中没有,那就是你调用文章内容的代码写错了,去模板文件中检查一下。

首先[field:title/]就是指标题了,加上runphp='yes'就是执行里面自写的方法。你链接里面的代码有点小错误,应该这样写才是你要的。[field:title runphp='yes']if(strlen("@me")>34)@me=cn_substr("@me",34)"";else @me=@me;[/field:title]

里面的@me就是标题的值,if(strlen("@me")>34)就是判断标题是不是大于34字符(两个字符等于一个汉字),如果判断对,就截取@me 34个字符,然后再加上“”赋给原来的@me。如果没大于34字符的话就还是原来的值。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » dedecms 标签调用 首页及列表页面 文章列表调用标签

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情