{/dede:arclist}</ul</dd</dl{/dede:channelartlist}</div我没做演示,找了个类似的效果图,借用一下:
上述代码在首页可实现子栏目及子栏目内容列表的调用!下面说说 channelartlist 标签在列表页及内容页的使用。
1、参数简介
channelartlist 标签暂时支持三个参数,分别为:
typeid='0' 限制上级栏目ID;也可以用top,支持“,”表示多个栏目
row='20' 循环的栏目数量,默认为20;
cacheid ='' 标签缓存ID,一般为空
但如果你只是将上述代码原封不动的复制粘贴到终极栏目页或内容页,是不会出现任何调用结果的,因为在标签 channelartlist 中,当typeid为空,则表示当前栏目,但是终极栏目列表和内容页是没有下级栏目的,所以就会出错!
2、调用实例
在终极列表页或内容页,正确的调用方法应该是以下的:
{dede:channelartlist typeid='top'}
这里是typied='top',这个top值可以换为你想要的上级栏目ID,但绝对是不可以为空的。这个大家一定要注意!
3、栏目高亮、特效调用
在该标签下,可以直接分别用 {dede:field name='typename'/}与{dede:field name='typeurl'/}来表示栏目名称与栏目链接的,当然还有一些其它特殊的变量,这里也介绍一下,如: {dede:field name='id'/}与{dede:field name='typeid'/} 均表示循环中的栏目ID;
{dede:global name='itemindex'} 表示循环递增变量,从1开始;
{dede:global name='itemparity'} 表示循环魔法变量,单数为1,双数为2;
以上就是可以在channelartlist中直接套用的,特别要注意的是第2、3两个,拥有这两个变量,可以轻松制作出各类非常个性的效果,例如栏目的隔行变色等。
关于这个栏目高亮,在 channelartlistlibphp 并没有自带,但通过以下DIY可实现让当前栏目进行高亮。方法(以dedecms 56为例):
打开channelartlistlibphp文件,找到如下代码:
$pv-Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
在其下一行加入一下代码: if($typeids[$i]['id'] == $refObj-TypeLink-TypeInfos['id']){
然后,就可以在模板中进行使用{dede:field name='currentstyle'/}进行调用了。相关文章是文章页专用标签,这么写
{dede:likearticle row='' titlelen='' infolen=''}
<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:likearticle}不用解释了吧
随机文章的调用
{dede:arclist row=‘’ orderby=‘rand’ typeid='all' }
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
这里加all的意思是后台所有文章中的随机文章,有些版本用typeid是不生效的,你就需要手工写入
栏目ID,可以写多个,用英文逗号隔开,如果不加all的话是调用当前栏目下的随机文章。你自己加几个字段就可以了,然后后台写上,不然你调用哪个也对应不上啊,如果是指定添加某个自定义变量也可以,但是所有的tag页面的关键词和描述就都是一个了,你自己看要弄哪种吧,还是不会的话再找额代修改,谢谢不少朋友需要在DedeCms的问答系统、留言本、会员空间导航里调用系统标签,但默认是不支持系统标签调用的,需要对系统文件进行简单的修改。
第一步:打开"/include/commonfuncphp",
然后在该文件中加入一个函数,代码如下:
function pasterTempletDiy($path)
{
require_once(DEDEINC"/arcpartviewclassphp");
global $cfg_basedir,$cfg_templets_dir;
$tmpfile = $cfg_basedir$cfg_templets_dir"/"$path;//模版文件的路径
$dtp = new PartView();
$dtp->SetTemplet($tmpfile);
$dtp->Display();
}
第二步,加上上面的函数之后,也就可以调用主站下的/templets/default/所有模板文件,比如要在问答模块的主页调用主站的随机文章,你可 以在主站 模板/templets/default/下新建一个headhtm文件,然后在headhtm里面加入你需要的标签和标签属性:
{dede:arclist titlelen='100' row='15' orderby='rand'}
<li><a href="[field:arcurl/]" title="[field:title/]">[field:title/]</a></li>
{/dede:arclist}
第三部,自定义yourfilephp文件,内容如下
<php
require_once("//include/commonincphp");
>
想读取公共文件,如:{dede:include filename=''headhtm/}就使用<php pasterTempletDiy("cdqx/headhtm");>
大功告成!
即可使用<php pasterTempletDiy("default/headhtm");>
织梦调用指定文章内容方法:
第一种直接调用:
{dede:arclist row='10' titlelen='24' orderby='pubdate' typeid='' idlist=''}idlist=''文章id填写上去就行了
第二种调用:
在需要调用单页文档的地方加入SQL万用标签
{dede:sql sql=”select body from dede_sgpage where aid=2″}[field:body /]{/dede:sql}相信熟悉SQL语言的朋友很容易看懂这句含义。意思其实就是选择数据表dede_sgpage 的body字段输入,aid=2这里的2表示你创建单页文档ID数字,你使用时做下相应修改即可。
又如这句SQL标签样例代码
{dede:sql sql="select content from dede_arctype where id=2"}[field:content function=cn_substr(Html2Text(@me),600)/]
{/dede:sql}
根据上面的例子,应该很好理解了,这里主要说明一下cn_substr表示截取600个字符也就是300个汉字。Html2Text代表把含有HTML的字符过滤掉,只显示文本。
其实除了上面的例子外,在Dede系统里面,我可以可以自由使用SQL语句来配合织梦标签进行更多的个性化调用。他们的基本参照格式为:
{dede:sql sql="select 字段 From 表名称 where 条件语句"}[field:字段名/]
{/dede:sql}
由上面这种基本格式,我们就可以基本转换出一条调用文档列表的调用标签了,代码为:
{dede:sql sql="select From dede_archives limit 10"}<li>·<a href="/plus/viewphpaid=[field:id/]">[field:title/]</a></li>{/dede:sql}大家看到了上面的文档链接的底层模板地址的是动态的,那么我们要怎么样来进行转换,让他链接到静态地址呢,这里我们只需要对[field:id/]进行一下转换,转换后的完整代码为:
{dede:sql sql="SELECT FROM dede_archives limit 10"}<li>·<a href="[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id]" title="[field:title/]" target="_blank">[field:title function=cn_substr(@me,30,0)/]</a></li>{/dede:sql}希望可以帮助到你,望采纳!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)