我想要在dedecms里面实现以下功能,请大神帮我写一段代码,用dedecms标签或者自定义标签。
{dede:channelartlist}
//顶级
{dede:field name='typeid'/}{dede:field name='typeurl'/}{dede:field name='typename'/}
//下级
{dede:channel}
[field:id /] [field:typeurl /] [field:typename /]
{/dede:channel}
{/dede:channelartlist}
之前选择的自定义图集
一、添加一个获取地址的方法
打开 /include/extendfunc 文件(注:这个文件就是系统预留的自定义函数接口文件,主要用于二次开发用的。如果你是老版本,默认没有这个文件,自己创建一个PHP文件即可),在最下面的>上一行加入以下函数代码:(如果结尾没有>那就直接在最下面添加)
function GetOneImgUrl($img,$ftype=1){ if($img <> ''){ $dtp = new DedeTagParse(); $dtp->LoadSource($img); if(is_array($dtp->CTags)){ foreach($dtp->CTags as $ctag){ if($ctag->GetName()=='img'){ $width = $ctag->GetAtt('width'); $height = $ctag->GetAtt('height'); $imgurl = trim($ctag->GetInnerText()); $img = ''; if($imgurl != ''){ if($ftype==1){ $img = $imgurl; } else{ $img = '<img src="'$imgurl'" width="'$width'" height="'$height'" />'; } } } } } $dtp->Clear(); return $img; } }
可以直接用下面的方法调用
[field:自定义字段名 function="GetOneImgUrl(@me,显示类型)"/]
最终使用方法。
{dede:arclist typeid='12' addfields='datu' channelid='17' limit='0,7'}
<li><a href="[field:arcurl/]" target="_blank"><img border="0" src="[field:datu function='GetOneImgUrl(@me,1)'/]"></a></li>
{/dede:arclist}
最终调用到这个地址。
在\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:channel type="son" typeid='8'}
<a href="[field:typeurl/]" [field:global name=autoindex runphp="yes"](@me==1) @me="class=on hover":@me="class=on";[/field:global]>[field:typename/]</a>
{/dede:channel}
上面代码加上我字体加粗的部分代码就可以实现了,不懂可以追问我
您好,朋友。很高兴为您解答:
你前不久提交过一个,那个是隔行换色,这个是三个一换,其实原理一样的,你只要稍微改下就行了。下面贴出代码:
里面文字和链接替换为您网站的,这里不帮你改了。
{dede:arclist row=6}<li class="[field:global runphp='yes' name=autoindex] if ((@me%2)==0) @me=zsal_la_last;
else @me='';
[/field:global]">
<a href="http://wwwgenbanorg"><img src="/skin/img/zsal_z3jpg" width="291" height="122" /></a>
<h2><a href="http://wwwgenbanorg">跟版</a></h2>
<p class="left">姓名:王阿姨<br />年龄:57岁<br />职业:教授</p>
<div class="zsal_la_img left"><a href="http://wwwgenbanorg"><img src="/skin/img/zsal_6jpg" width="112" height="32" /></a><a href="http://wwwgenbanorg"><img src="/skin/img/zsal_7jpg" width="112" height="32" /></a></div>
<div class="clear"></div>
<p class="zsal_la_zlfa">治疗方案:提升骨量、即刻修复</p>
</li>
{/dede:arclist}
我想你应该是说的这个标签 {dede:channelartlist row='7' }
<li><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a>
<ul>
{dede:channel type='son' noself='yes' }
<li><a href='[field:typelink/]'>[field:typename/]</a></li>
{/dede:channel}
</ul>
</li>
{/dede:channelartlist}
{dede:tag
row='30'
sort='new'}
[field:tag
/]{/dede:tag}
当月热门标签
{dede:tag
row='30'
sort='month'}
[field:tag
/]
{/dede:tag}
随机标签
{dede:tag
row='60'
sort='rand'}
[field:tag
/]{/dede:tag}
参数说明:
row='30'
调用条数
sort='new'
排序方式
month,rand(随机),week
getall='0'
获取类型,仅用在文档页,0
为当前内容页TAG标记,1为获取全部TAG标记。
以上就是dedecms中tags标签的调用方法,同时提醒大家在更新网站内容时应注意网站长尾关键词及tags标签的合理应用。
0条评论