帝国CMS TAG高级管理帮助
时间:2023年06月09日
/来源:网络
/编辑:佚名
本文主要针对东坡网“TAG高级管理”插件。对于帝国cms原版tag系统来说,由于缺少插件支持,涉及伪静态部分代码是不可用的。
这个网页的调用除了设计tag分类链接代码,其它都适合于tag静态化插件,仅需将其中出现的user_hTagLink换成user_HtmlTagLink
一、TAG调用问题
使用以下各种调用方法的前提条件是:已经按照插件安装说明,将 user_hTagLink 函数写入了 e/class/userfun.php 文件中。
1.1 如何调用当前信息的TAG
将以下函数放入e/class/userfun.php 文件中
//信息所属tag
function user_ReturnTagStr($id,$classid,$exp="<li>|</li>",$limit=10){
global $dbtbpre,$empire,$public_r;
$tagstr='';
$i=0;
$q=explode("|",$exp);
$tsql=$empire->query("select tagid from {$dbtbpre}enewstagsdata where id=".$id." and classid=".$classid."");
while($tr=$empire->fetch($tsql)){
$tt=$empire->fetch1("select * from {$dbtbpre}enewstags where tagid=".$tr['tagid']." limit 1");
if($tt['tagid']){
if($i>$limit&&$limit){
break;
}
$tagurl=user_hTagLink($tr['tagid']);
$tagstr.=$q[0].'<a href="'.$tagurl.'" title="'.$tt['tagname'].'" class="c1" target="_blank">'.$tt['tagname'].'</a>'.$q[1];
$i+=1;
}
}
return $tagstr;
}
在信息页中的调用方法:
<?=user_ReturnTagStr($navinfor['id'],$navinfor['classid'],"| ",4)?>
在列表页中开启程序代码,调用方法:
$tagstr=user_ReturnTagStr($r['id'],$r['classid'],'<li class="tag">|</li>',10);
$listtemp='其它代码'.$tagstr.'其它代码';
在灵动标签中的调用方法:
[e:loop={灵动标签调用语句}]
<?
$thistagstr=user_ReturnTagStr($bqr['id'],$bqr['classid'],'| ',10);
echo $thistagstr;
?>
[/e:loop]
1.2 按TAG分类调用TAG
调用代码如下:
<?
$tcsql=$empire->query("select * from {$dbtbpre}enewstagsclass where classid>0 order by classid desc");
while($tcr=$empire->fetch($tcsql)){
//TAG分类链接
$tagclassurl=user_TagClassUrl($tcr['classid'],1);
?>
<!-- 显示分类名称 -->
<div class="showtag">
<h3><a href="<?=$tagclassurl?>"><?=$tcr['classname']?></a></h3>
<ul>
<?
$tsql=$empire->query("select * from {$dbtbpre}enewstags where cid=".$tcr['classid']." order by tagid desc limit 10");
while($tr=$empire->fetch($tsql)){
$tagurl=user_hTagLink($tr['tagid']);
?>
<!-- 显示tag模板开始 -->
<li><a href="<?=$tagurl?>"><?=$tr['tagname']?></a>(<?=$tr['num']?>)</li>
<!-- 显示tag模板结束 -->
<?
}
?>
</ul>
</div>
<?
}
?>
在以上代码中,蓝色部分控制了现实tag的分类,可以自由修改。classid>0 表示已分类的tag,classid=3 表示分类id为3的tag
红色部分控制了每个分类下TAG显示的数量,数字部分可以自由修改。若限制显示数量,则可删除红色部分。
1.3 常规的批量调用TAG
调用代码如下:
<ul>
<?
$tsql=$empire->query("select * from {$dbtbpre}enewstags order by tagid desc limit 10");
while($tr=$empire->fetch($tsql)){
$tagurl=user_hTagLink($tr['tagid']);
?>
<!-- 显示tag模板开始 -->
<li><a href="<?=$tagurl?>"><?=$tr['tagname']?></a>(<?=$tr['num']?>)</li>
<!-- 显示tag模板结束 -->
<?
}
?>
</ul>
在以上代码中,绿色部分控制了tag显示排序,常用方式有三种:tagid desc 最大tagid在最前,tagid 最小tagid在最前,num desc tag信息数最多在最前
二、结构说明及相关概念
在本插件中,前台tag可以做如下图展示:
TAG展示结构
插件自带一个聚合页,前台文件是 e/tags/alltags.php ,此文件可以展示上图中第一级和第二级的类容。此文件支持封面模板和列表模板两种形式,可以在插件中设置。以上是不带参数的情况。此文件支持两个参数:cid——TAG分类id;page——分页号,当带有参数时,自动转为列表模式。
上图中第三级的内容就是最终tag展示页了,前台文件是 e/tags/htag.php ,此文件支持两个参数:tag——tag标识,可以是tagid或者tag的拼音,具体情况根据插件设置;page——分页号。
所谓的“TAG伪静态首页”,就是tag在没有分页的情况下时的链接。
三、伪静态说明
在插件设置中,一般来说可以将设置伪静态格式如下:
TAG伪静态格式:tags/[!--tag--]_[!--page--]
TAG伪静态首页:tags/[!--tag--]/
TAG首页分页伪静态:tags-[!--cid--]-[!--page--]
TAG首页伪静态:tags/
根据以上伪静态格式,提供服务器的四条伪静态规则,仅供参考。
apache的.htaccess:
RewriteEngine On
#tag首页
RewriteRule ^tags/(.*)/$ e/tags/htag.php?tag=$1&page=$2
#tag列表
RewriteRule ^tags/(.*)_(.*)$ e/tags/htag.php?tag=$1&page=$2
#alltag
RewriteRule ^tags/$ e/tags/alltags.php
#alltag-cid
RewriteRule ^tags-(.*)-(.*)$ e/tags/alltags.php?cid=$1&page=$2
Nginx:
rewrite ^([^\.]*)/tags/(.*)/$ $1/e/tags/htag.php?tag=$2&page=$3 last;
rewrite ^([^\.]*)/tags/(.*)_(.*)$ $1/e/tags/htag.php?tag=$2&page=$3 last;
rewrite ^([^\.]*)/tags/$ $1/e/tags/alltags.php last;
rewrite ^([^\.]*)/tags-(.*)-(.*)$ $1/e/tags/alltags.php?cid=$2&page=$3 last;
IIS6的httpd.ini:
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
#tag首页
RewriteRule ^tags/(.*)/$ e/tags/htag.php?tag=$1&page=$2
#tag列表
RewriteRule ^tags/(.*)_(.*)$ e/tags/htag.php?tag=$1&page=$2
#alltag
RewriteRule ^tags/$ e/tags/alltags.php
#alltag-cid
RewriteRule ^tags-(.*)-(.*)$ e/tags/alltags.php?cid=$1&page=$2
IIS7的web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="tagindex">
<match url="^(.*/)*tags/(.*)/\?*(.*)$" />
<action type="Rewrite" url="{R:1}/e/tags/htag.php\?tag={R:2}&page={R:3}" />
</rule>
<rule name="taglist">
<match url="^(.*/)*tags/(.*)_(.*)\?*(.*)$" />
<action type="Rewrite" url="{R:1}/e/tags/htag.php\?tag={R:2}&page={R:3}" />
</rule>
<rule name="alltag">
<match url="^(.*/)*tags/\?*(.*)$" />
<action type="Rewrite" url="{R:1}/e/tags/alltags.php" />
</rule>
<rule name="alltagcid">
<match url="^(.*/)*tags-(.*)-(.*)\?*(.*)$" />
<action type="Rewrite" url="{R:1}/e/tags/alltags.php\?cid={R:2}&page={R:3}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
四、深度调用:tag分类链接调用
在e/class/userfun.php 文件中写入以下函数
//tag分类链接
function user_TagClassUrl($cid){
global $htag_r;
include_once ECMS_PATH.'e/dongpo/htag/dp_funs.php';
$url=htag_TagClassUrl($cid);
return $url;
}
在模板中调用此函数即可,$cid是分类id
五、深度调用:tag分类页显示tag的信息
在列表模式下,开启使用程序代码,代码如下
$tagurl=user_hTagLink($r[tagid]);
$thisstr='<a href="'.$tagurl.'"><h3>'.$r[tagname].'('.$r[num].')</h3></a><p>简介:'.$ta[intro].'<p>';
$infostr='';
$isql=$empire->query("select id,classid from {$dbtbpre}enewstagsdata where tagid='".$r[tagid]."' limit 10");
while($ir=$empire->fetch($isql)){
if(empty($class_r[$ir[classid]][tbname])){
continue;
}
$infor=$empire->fetch1("select id,title,titleurl from {$dbtbpre}ecms_".$class_r[$ir[classid]][tbname]." where id='$ir[id]' limit 1");
if(empty($infor['id'])) {
continue;
}
$infostr.='<a href="'.$infor[titleurl].'">'.$infor[title].'</a>';
}
if($infostr){
$infostr='<p>'.$infostr.'</p>';
}
$listtemp=$thisstr.$infostr.'<hr>';
在模板中调用此函数即可,$cid是分类id
六、深度调用:tag首页按照字母顺序调用
tag首页选择封面模板,在模板中输入以下代码:
<?php
$zm_r=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
?>
<!-- 全部字母 -->
<div class="zmlist">
字母:
<?
foreach($zm_r as $zm){
?>
<a href="#<?=$zm?>"><?=strtoupper($zm)?></a>
<?
}
?>
</div>
<div class="taglist">
<!-- 每个字母下的tag -->
<?
foreach($zm_r as $zm){
?>
<h3><a name="<?=$zm?>"><?=strtoupper($zm)?></a></h3>
<ul>
<?
$zsql=$empire->query("select tagid from {$dbtbpre}dp_tagsadd where py like '".$zm."%' order by tagid desc");
while($zr=$empire->fetch($zsql)){
$t=$empire->fetch1("select * from {$dbtbpre}enewstags where tagid='$zr[tagid]' limit 1");
$tagurl=user_hTagLink($zr[tagid]);
?>
<li><a href="<?=$tagurl?>"><?=$t['tagname']?></a></li>
<?
}
?>
</ul>
<?
}
?>
</div>
这个网页的调用除了设计tag分类链接代码,其它都适合于tag静态化插件,仅需将其中出现的user_hTagLink换成user_HtmlTagLink
一、TAG调用问题
使用以下各种调用方法的前提条件是:已经按照插件安装说明,将 user_hTagLink 函数写入了 e/class/userfun.php 文件中。
1.1 如何调用当前信息的TAG
将以下函数放入e/class/userfun.php 文件中
//信息所属tag
function user_ReturnTagStr($id,$classid,$exp="<li>|</li>",$limit=10){
global $dbtbpre,$empire,$public_r;
$tagstr='';
$i=0;
$q=explode("|",$exp);
$tsql=$empire->query("select tagid from {$dbtbpre}enewstagsdata where id=".$id." and classid=".$classid."");
while($tr=$empire->fetch($tsql)){
$tt=$empire->fetch1("select * from {$dbtbpre}enewstags where tagid=".$tr['tagid']." limit 1");
if($tt['tagid']){
if($i>$limit&&$limit){
break;
}
$tagurl=user_hTagLink($tr['tagid']);
$tagstr.=$q[0].'<a href="'.$tagurl.'" title="'.$tt['tagname'].'" class="c1" target="_blank">'.$tt['tagname'].'</a>'.$q[1];
$i+=1;
}
}
return $tagstr;
}
在信息页中的调用方法:
<?=user_ReturnTagStr($navinfor['id'],$navinfor['classid'],"| ",4)?>
在列表页中开启程序代码,调用方法:
$tagstr=user_ReturnTagStr($r['id'],$r['classid'],'<li class="tag">|</li>',10);
$listtemp='其它代码'.$tagstr.'其它代码';
在灵动标签中的调用方法:
[e:loop={灵动标签调用语句}]
<?
$thistagstr=user_ReturnTagStr($bqr['id'],$bqr['classid'],'| ',10);
echo $thistagstr;
?>
[/e:loop]
1.2 按TAG分类调用TAG
调用代码如下:
<?
$tcsql=$empire->query("select * from {$dbtbpre}enewstagsclass where classid>0 order by classid desc");
while($tcr=$empire->fetch($tcsql)){
//TAG分类链接
$tagclassurl=user_TagClassUrl($tcr['classid'],1);
?>
<!-- 显示分类名称 -->
<div class="showtag">
<h3><a href="<?=$tagclassurl?>"><?=$tcr['classname']?></a></h3>
<ul>
<?
$tsql=$empire->query("select * from {$dbtbpre}enewstags where cid=".$tcr['classid']." order by tagid desc limit 10");
while($tr=$empire->fetch($tsql)){
$tagurl=user_hTagLink($tr['tagid']);
?>
<!-- 显示tag模板开始 -->
<li><a href="<?=$tagurl?>"><?=$tr['tagname']?></a>(<?=$tr['num']?>)</li>
<!-- 显示tag模板结束 -->
<?
}
?>
</ul>
</div>
<?
}
?>
在以上代码中,蓝色部分控制了现实tag的分类,可以自由修改。classid>0 表示已分类的tag,classid=3 表示分类id为3的tag
红色部分控制了每个分类下TAG显示的数量,数字部分可以自由修改。若限制显示数量,则可删除红色部分。
1.3 常规的批量调用TAG
调用代码如下:
<ul>
<?
$tsql=$empire->query("select * from {$dbtbpre}enewstags order by tagid desc limit 10");
while($tr=$empire->fetch($tsql)){
$tagurl=user_hTagLink($tr['tagid']);
?>
<!-- 显示tag模板开始 -->
<li><a href="<?=$tagurl?>"><?=$tr['tagname']?></a>(<?=$tr['num']?>)</li>
<!-- 显示tag模板结束 -->
<?
}
?>
</ul>
在以上代码中,绿色部分控制了tag显示排序,常用方式有三种:tagid desc 最大tagid在最前,tagid 最小tagid在最前,num desc tag信息数最多在最前
二、结构说明及相关概念
在本插件中,前台tag可以做如下图展示:
TAG展示结构
插件自带一个聚合页,前台文件是 e/tags/alltags.php ,此文件可以展示上图中第一级和第二级的类容。此文件支持封面模板和列表模板两种形式,可以在插件中设置。以上是不带参数的情况。此文件支持两个参数:cid——TAG分类id;page——分页号,当带有参数时,自动转为列表模式。
上图中第三级的内容就是最终tag展示页了,前台文件是 e/tags/htag.php ,此文件支持两个参数:tag——tag标识,可以是tagid或者tag的拼音,具体情况根据插件设置;page——分页号。
所谓的“TAG伪静态首页”,就是tag在没有分页的情况下时的链接。
三、伪静态说明
在插件设置中,一般来说可以将设置伪静态格式如下:
TAG伪静态格式:tags/[!--tag--]_[!--page--]
TAG伪静态首页:tags/[!--tag--]/
TAG首页分页伪静态:tags-[!--cid--]-[!--page--]
TAG首页伪静态:tags/
根据以上伪静态格式,提供服务器的四条伪静态规则,仅供参考。
apache的.htaccess:
RewriteEngine On
#tag首页
RewriteRule ^tags/(.*)/$ e/tags/htag.php?tag=$1&page=$2
#tag列表
RewriteRule ^tags/(.*)_(.*)$ e/tags/htag.php?tag=$1&page=$2
#alltag
RewriteRule ^tags/$ e/tags/alltags.php
#alltag-cid
RewriteRule ^tags-(.*)-(.*)$ e/tags/alltags.php?cid=$1&page=$2
Nginx:
rewrite ^([^\.]*)/tags/(.*)/$ $1/e/tags/htag.php?tag=$2&page=$3 last;
rewrite ^([^\.]*)/tags/(.*)_(.*)$ $1/e/tags/htag.php?tag=$2&page=$3 last;
rewrite ^([^\.]*)/tags/$ $1/e/tags/alltags.php last;
rewrite ^([^\.]*)/tags-(.*)-(.*)$ $1/e/tags/alltags.php?cid=$2&page=$3 last;
IIS6的httpd.ini:
[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32
#tag首页
RewriteRule ^tags/(.*)/$ e/tags/htag.php?tag=$1&page=$2
#tag列表
RewriteRule ^tags/(.*)_(.*)$ e/tags/htag.php?tag=$1&page=$2
#alltag
RewriteRule ^tags/$ e/tags/alltags.php
#alltag-cid
RewriteRule ^tags-(.*)-(.*)$ e/tags/alltags.php?cid=$1&page=$2
IIS7的web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="tagindex">
<match url="^(.*/)*tags/(.*)/\?*(.*)$" />
<action type="Rewrite" url="{R:1}/e/tags/htag.php\?tag={R:2}&page={R:3}" />
</rule>
<rule name="taglist">
<match url="^(.*/)*tags/(.*)_(.*)\?*(.*)$" />
<action type="Rewrite" url="{R:1}/e/tags/htag.php\?tag={R:2}&page={R:3}" />
</rule>
<rule name="alltag">
<match url="^(.*/)*tags/\?*(.*)$" />
<action type="Rewrite" url="{R:1}/e/tags/alltags.php" />
</rule>
<rule name="alltagcid">
<match url="^(.*/)*tags-(.*)-(.*)\?*(.*)$" />
<action type="Rewrite" url="{R:1}/e/tags/alltags.php\?cid={R:2}&page={R:3}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
四、深度调用:tag分类链接调用
在e/class/userfun.php 文件中写入以下函数
//tag分类链接
function user_TagClassUrl($cid){
global $htag_r;
include_once ECMS_PATH.'e/dongpo/htag/dp_funs.php';
$url=htag_TagClassUrl($cid);
return $url;
}
在模板中调用此函数即可,$cid是分类id
五、深度调用:tag分类页显示tag的信息
在列表模式下,开启使用程序代码,代码如下
$tagurl=user_hTagLink($r[tagid]);
$thisstr='<a href="'.$tagurl.'"><h3>'.$r[tagname].'('.$r[num].')</h3></a><p>简介:'.$ta[intro].'<p>';
$infostr='';
$isql=$empire->query("select id,classid from {$dbtbpre}enewstagsdata where tagid='".$r[tagid]."' limit 10");
while($ir=$empire->fetch($isql)){
if(empty($class_r[$ir[classid]][tbname])){
continue;
}
$infor=$empire->fetch1("select id,title,titleurl from {$dbtbpre}ecms_".$class_r[$ir[classid]][tbname]." where id='$ir[id]' limit 1");
if(empty($infor['id'])) {
continue;
}
$infostr.='<a href="'.$infor[titleurl].'">'.$infor[title].'</a>';
}
if($infostr){
$infostr='<p>'.$infostr.'</p>';
}
$listtemp=$thisstr.$infostr.'<hr>';
在模板中调用此函数即可,$cid是分类id
六、深度调用:tag首页按照字母顺序调用
tag首页选择封面模板,在模板中输入以下代码:
<?php
$zm_r=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
?>
<!-- 全部字母 -->
<div class="zmlist">
字母:
<?
foreach($zm_r as $zm){
?>
<a href="#<?=$zm?>"><?=strtoupper($zm)?></a>
<?
}
?>
</div>
<div class="taglist">
<!-- 每个字母下的tag -->
<?
foreach($zm_r as $zm){
?>
<h3><a name="<?=$zm?>"><?=strtoupper($zm)?></a></h3>
<ul>
<?
$zsql=$empire->query("select tagid from {$dbtbpre}dp_tagsadd where py like '".$zm."%' order by tagid desc");
while($zr=$empire->fetch($zsql)){
$t=$empire->fetch1("select * from {$dbtbpre}enewstags where tagid='$zr[tagid]' limit 1");
$tagurl=user_hTagLink($zr[tagid]);
?>
<li><a href="<?=$tagurl?>"><?=$t['tagname']?></a></li>
<?
}
?>
</ul>
<?
}
?>
</div>
新闻资讯 更多
- 【帝国cms教程】帝国CMS模板变量$GLOBALS[navclassid]用法分析04-03
- 【帝国cms教程】鲜为人知帝国CMS内容页调用上一篇和下一篇的精华方法汇总04-03
- 【帝国cms教程】怎么快速找出帝国CMS数据库配置文件路径及迁移网站后修改技巧!04-03
- 【帝国cms教程】帝国CMS模板$GLOBALS[navclassid]用法详解04-03
- 【帝国cms教程】帝国cms 7.5版列表页分页样式修改笔记04-02
- 【帝国cms教程】解决帝国CMS搜索页面模板不支持灵动标签和万能标签的方法04-02
- 【帝国cms教程】帝国CMS只备份栏目和模板的方法04-02
- 【帝国cms教程】帝国CMS怎样删除清空数据库记录?04-02
热门文章
- 178Moban源码谈谈免费源码与收费源码的区别
- 2帝国CMS忘记后台登陆用户名、密码、认证码的解决方法
- 3帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法
- 4帝国CMS和WordPress 哪个好?哪个适合建站?
- 5如何解决Discuz的密码错误次数过多请15分钟后登陆的问题
- 6帝国cms灵动标签取得内容和栏目链接地址
- 7emlog pro 注册码“开心”教程(如果有一天,emlog官方版 或者 emlog免费版 跑路了,那用户怎么办?)
- 8织梦CMS在nginx下设置伪静态方法(附nginx伪静态规则)
- 9帝国cms后台登录出现”您还未登录”怎么解决?
- 10帝国cms7.5忘记登录密码 和忘记登录认证码以及多次登录 失败被锁定解决办法