dedecms自定义标签问题!
在\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: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}
$ctag->GetAtt('flag');当前默认情况下flag设置的是c属性。。如果必须在标签中存在这个flag这个字段例如:
{dede:arclist wodefiled='你号'}
{/dede:arclist}
那么在你的arclistlibphp中的代码就可以使用$ctag->GetAtt('wodefiled=');
在这种情况下可以获取到你的字段。。
如果当前你想调用默认的falg的标签就无需这么GetAtt了 它不会去查找你的定义默认的标签$attlist="flag|c,row|12,titlelen|24";也就是说你当前这里定义的属性不需要使用GetAtt来调用。
而如果{dede:arclist flag='h'}
{/dede:arclist}
而设置了flag的属性就可以调用了。
Tag标签是web20的东西,相当于关键词。我们在使用dedecms的时候应该如何在文章内容页添加TAG标签功能呢Tag标签对于SEO帮助很大,具体修改方法有以下2种方法:
方法一:打开文章模板文件article_articlehtm;在{dede:fieldbody/}后面添加以下代码:
<div>
TAG标签:{dede:tag row='30' sort='new' getall='0'} <a href='[field:link/]'>[field:tag /]</a>{/dede:tag}
</div>
更新生成文档页,再查看效果。
方法二:织梦dedecms文章页调用Tag标签比较简单,1、找到文章模板在{dede:fieldbody/}后面加入{dede:fieldtags/}这个标签即可。但是织梦dedecms默认的Tag标签是没有链接的,接下来进行第二步。
2、给Tag标签加超链接
大家找到网站跟目录下的/include/helpers/archivehelperphp,找到120行左右。
if ( ! function_exists('GetTags'))
{
function GetTags($aid)
{
global $dsql;
$tags = '';
$query = "SELECT tag FROM `dede_taglist` WHERE aid='$aid' ";
$dsql->Execute('tag',$query);
while($row = $dsql->GetArray('tag'))
{
$tags = ($tags=='' $row['tag'] : ','$row['tag']);
}
return $tags;
}
}
替换成以下代码:
if ( ! function_exists('GetTags'))
{
function GetTags($aid)
{
global $dsql;
$tags = '';
$query = "SELECT tag FROM `dede_taglist` WHERE aid='$aid' ";
$dsql->Execute('tag',$query);
while($row = $dsql->GetArray('tag'))
{
$tags = ($tags=='' ''$row['tag']'': ',''
'$row['tag']''); }
return $tags;
}}
0条评论