转载了,谢谢分享
dede tag调用的各种方法
dede tag最常用的调用方法
最新标签tag调用的方法
{dede:tag row=’30′ sort=’new’} [field:highlight/]([field:result/]) {/dede:tag}
当月热门标签tag调用的方法
{dede:tag row=’30′ getall=’1′ sort=’month’} [field:tagname/]([field:result/]) {/dede:tag}
随机标签tag调用的方法
{dede:tag row=’60′ sort=’rand’} [field:highlight/]([field:result/]) {/dede:tag}
内容页tag添加tag调用的方法
{dede:tag type=’current’/}
我们再来看看官方的文档
##标签名称:tag
##功能说明:TAG调用标签
##适用范围:全局使用
##基本语法:
##{dede:tag sort=’new’ getall=’0′}
##<a href=’[field:link/]‘>[field:tag /]</a>
##{/dede:tag}
##参数说明:
##row=’30′ 调用条数
##sort=’new’ 排序方式 month,rand,week
##getall=’0′ 获取类型 0 为当前内容页TAG标记,1为获取全部TAG标记
##底层模板字段:
##link,tag
——————————————————————–
dede在列表中运用tag关键字标签
但是我们知道dede默认在列表是无法调用tag标签的,是用全部还是当前页?显然全部的话和分类信息又有些不着调,如果用当前页的话,没有文章id,你也调不出东西来。难道这就没辙了吗?
dedeCMS5.6 列表页调用tag的方法-DedeCms
方法一
[field:id runphp=yes]
$tsql = new DedeSql(false);
$tags = ”;
$tsql->SetQuery(“Select i.tag From dede_taglist t left join dede_tagindex i on i.id=t.tid where t.aid=’@me’”);
$tsql->Execute(‘t’);
while($row = $tsql->GetArray(‘t’,MYSQL_ASSOC)){
$tags .= “<a href=’/tag.php?/”.urlencode($row['tag']).”‘>”.$row['tag'].”</a>”;
}
@me=$tags;
[/field:id]
方法二
1.打开DEDECMS根目录include/common.func.php
在最底部 ?> 前面加入以下代码:
//NI9HT:列表页调用tag的方法
function listtag($aid)
{
$tsql = new DedeSql(false);
$tags = ”;
$tsql->SetQuery(“Select i.tag From dede_taglist t left join dede_tagindex i on i.id=t.tid where t.aid=’$aid’”);
$tsql->Execute(‘t’);
while($row = $tsql->GetArray(‘t’,MYSQL_ASSOC)){
$tags .= “<a href=’/tags.php?/”.urlencode($row['tag']).”/’>”.$row['tag'].”</a> “;
}
return $tags;
}
{dede:field.id runphp=yes}
$tsql = new DedeSql(false);
$tags = ”;
$tsql->SetQuery(“Select i.tag From dede_taglist t left join dede_tagindex i on i.id=t.tid where t.aid=’@me’”);
$tsql->Execute(‘t’);
while($row = $tsql->GetArray(‘t’,MYSQL_ASSOC)){
$tags .= “<a href=’/tag.php?/”.urlencode($row['tag']).”‘>”.$row['tag'].”</a>”;
}
@me=$tags;
{/dede:field.id}
2.然后在文章页可以使用
{dede:field.id function=”listtag(@me)”/}
来调用TAG标签,
在列表页可以使用
[field:id function="listtag(@me)"/]
来调用TAG标签.
然 后在列表页相应位置加入[field:id function="listtag(@me)"/]标记。5.6版本的DedeCMs里面关于tag的调用,虽然也有typeid的参数了,但是你打开 数据库看看就会发现,虽然dede_tagindex表里面也有了typeid的字段。这样我们就可以用DEDE 的SQL 语句实现更加灵活的 Tag调用。
——————————————————————-
广告已过期代码调整,如果继续投放请联系管理员
{dede:tagname runphp=’yes’}
$time1 = @me;
@me = time();
//$time2 = “[field:pubdate function='GetDateTimeMK(@me)'/]“;
//$time3 = “[field:jzdata function='GetDateTimeMK(@me)'/]“;
$time2 = GetDateTimeMK(@me);
$time3 = GetDateTimeMK(@me);
if(@me>strtotime($time2) and @me<strtotime($time3))
{
@me=”<meta http-equiv=’Refresh’ content=’0;URL=[field:khurl/]‘ />”;
} else {
@me=”广告已过期,如果继续投放请联系管理员”;
}
{/dede:tagname}
实现TAG伪静态的方法很多种,看来看去最简单的就是以下方法:
1、dede后台开启伪静态
2、找到文件 /include/taglib/tag.lib.php 搜索以下代码:
$row['link'] = $cfg_cmsurl.”/tags.php?/”.urlencode($row['keyword']).”/”;
改成
$row['link'] = $cfg_cmsurl.”/tags/”.urlencode($row['keyword']).”.html”;
3、找到模板文件 templets/default/taglist.htm 搜索以下代码:(注意:有些版本没有此步可省略)
<strong> 当前位置:</strong>:<a href=”{dede:global.cfg_cmsurl/}/”>主页</a> > <a href=’tags.php’>TAG标签</a> > {dede:field.title /}
修改为
<strong> 当前位置:</strong>:<a href=”{dede:global.cfg_cmsurl/}/”>主页</a> > <a href=’/tags.html’>TAG标签</a> > {dede:field.title /}
4、httpd.ini 文件里加:
RewriteRule ^(.*)/tags.html $1/tags.php
RewriteRule ^(.*)/tags/(.*).html $1/tags.php?$2