dedecms自定义标签问题!,第1张

在\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;

}}

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » dedecms自定义标签问题!

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情