帝国cms 超级TAG管理(itag)相关文档

超级TAG管理 功能简介

一、TAG展示新增功能

1、TAG拼音功能,TAG的链接可以用拼音展示;

2、TAG可以生成静态文件,TAG静态链接四种方式可选;

3、TAG可以动态或伪静态展示

4、带有TAG分类页,展示所有tag;

5、TAG动态页自带缓存功能

6、TAG新增图片字段,上传图片,并可以在附件里管理图片;

7、TAG新增编辑器字段,可以储存更多资料。

二、管理新增功能

1、新增、修改信息,自动更新当前TAG

2、带分词功能,从标题提取TAG 和 批量提取TAG,支持火车头发布时自动提取

3、从信息列表推送信息到TAG

4、批量同步TAG到关键字替换

5、TAG可以单独设置模板

6、可以批量增加TAG

7、TAG批量关联信息

第一步:文件上传

1、将插件压缩包解压,得到 e 文件夹

2、将 e 文件夹 上传到 网站根目录

第二步:数据表安装

1、在浏览器地址栏中输入 http://你的网站地址/e/dongpo/itag/install/ 回车执行安装程序

2、选择“安装”,然后按照提示执行下一步操作

3、看到“安装数据库成功”表示安装数据库成功

4、为确保完全,将 /e/dongpo/itag/ 目录下的 install 文件夹删除或改名

可能出现的错误及处理方法:

(1)提示:安装程序已锁定

解决:将 /e/dongpo/itag/install/ 目录下的 install.off 文件删除

(2)提示:Table ... already exists

解决:先执行“卸载”,再执行“安装”

第三步:添加自定义函数

打开 e/class/userfun.php 文件,在 ?> 之前一行插入如下代码:

function dp_itagLink($tagid,$tagname=''){
	include_once(ECMS_PATH.'e/dongpo/itag/dp_funs.php');
	$url=dp_itag_url($tagid,$tagname);
	return $url;
}

function dp_itagClassLink($cid){
	include_once(ECMS_PATH.'e/dongpo/itag/dp_funs.php');
	$url=dp_itag_curl($cid);
	return $url;
}

function dp_itagHtml($classid,$id){
	global $empire,$dbtbpre,$dp_itag;
	include_once(ECMS_PATH.'e/dongpo/itag/dp_funs.php');
	if(empty($dp_itag)){
		$sr=$empire->fetch1("select * from {$dbtbpre}dp_itag_set where k='all'");
		$dp_itag=json_decode($sr['v'],true);
		if(empty($dp_itag)){
			return false;
		}
	}
	$sql=$empire->query("select tagid from {$dbtbpre}enewstagsdata where classid='$classid' and id='$id'");
	while($r=$empire->fetch($sql)){
		$add=$empire->fetch1("select * from {$dbtbpre}enewstags where tagid='$r[tagid]' limit 1");
		$addr=$empire->fetch1("select * from {$dbtbpre}dp_itag where tagid='$r[tagid]' limit 1");
		if(!$dp_itag['ishtml']){
			iTagDelCache($addr['tagid'],$addr['py']);
		}else{
			iTagHtml($add,$addr);
		}
	}
}

第四步:参数设置

1、登录网站后台,进入界面: 插件 》插件管理 》超级TAG管理 》参数设置

2、根据自身网站情况,设置各项参数

3、至此,插件安装完毕

4、如果安装插件前,网站已经存在TAG,建议第一次使用前,在“TAG列表”页,右上角,点击“[检查全部TAG拼音]”,给老tag生成拼音

说明:

管理此插件需要的后台权限: TAGS管理

重要提示

1、为了能愉快的使用tag功能,建议将 phome_enewstags 表中,tag相关字段类型长度修改更大。修改结果如下图,红框是修改后的参数:

2、不使用记事本编辑帝国cms系统的文件。记事本可能会修改文件编码格式,造成程序运行错误。推荐使用 EditPlus、Notepad++、Dreamwaver 等。

伪静态设置

1、只有TAG页面模式为 动态页面 时,才需要设置伪静态

2、设置步骤:

(1)在插件 参数设置 页面,设置好TAG伪静态规则

(2)根据伪静态规则,设置服务器的伪静态规则

TAG伪静态网址说明:

(1)支持三种标签,TAGID:[!--tagid--] TAG拼音:[!--tagpy--] 分页号:[!--page--]

(2)[!--tagpy--] 和 [!--tagid--] 不能同时使用

(3)以 tagid 为规则的网址,对应的网址是 e/tags/itag.php?tagid=[!--tagid--]&page=[!--page--]

(4)以 tagpy 为规则的网址,对应的网址是e/tags/itag.php?py=[!--tagpy--]&page=[!--page--]

分类伪静态网址说明:

(1)支持两种标签,TAG分类ID:[!--cid--] 分页号:[!--page--]

(2)对应的网址是 e/tags/itaglist.php?cid=[!--cid--]&page=[!--page--]

例子:

(1)一个网站的TAG网址伪静态规则设置如下:

TAG不含分页网址:/

TAG含有分页网址:/

分类不含分页网址:/

分类含有分页网址:/

(2)那么根据不同WEB服务器,服务器伪静态规则不同,如下:

.htaccess

RewriteEngine On

#tag拼音网址规则 (如果以tagid为网址,则将py改成tagid)
RewriteRule ^tag/([a-z0-9]+)_([0-9]+).html$ e/tags/itag.php?py=$1&page=$2
RewriteRule ^tag/([a-z0-9]+).html$ e/tags/itag.php?py=$1

#tag分类网址规则
RewriteRule ^tag/list_([0-9]+)_([0-9]+)$ e/tags/itaglist.php?cid=$1&page=$2
RewriteRule ^tag/list_([0-9]+)$ e/tags/itaglist.php?cid=$1

Nginx

#tag拼音网址规则 (如果以tagid为网址,则将py改成tagid)
rewrite ^([^\.]*)/tag/([a-z0-9]+)_([0-9]+).html$ $1/e/tags/itag.php?py=$2&page=$3 last;
rewrite ^([^\.]*)/tag/([a-z0-9]+).html$ $1/e/tags/itag.php?py=$2 last;

#tag分类网址规则
rewrite ^([^\.]*)/tag/list_([0-9]+)_([0-9]+)$ $1/e/tags/itaglist.php?cid=$1&page=$2 last;
rewrite ^([^\.]*)/tag/list_([0-9]+)$ $1/e/tags/itaglist.php?cid=$1 last;

httpd.ini

[ISAPI_Rewrite]
CacheClockRate 3600
RepeatLimit 32

#tag拼音网址规则 (如果以tagid为网址,则将py改成tagid)
RewriteRule ^tag/([a-z0-9]+)_([0-9]+).html$ e/tags/itag.php?py=$1&page=$2
RewriteRule ^tag/([a-z0-9]+).html$ e/tags/itag.php?py=$1

#tag分类网址规则
RewriteRule ^tag/list_([0-9]+)_([0-9]+)$ e/tags/itaglist.php?cid=$1&page=$2
RewriteRule ^tag/list_([0-9]+)$ e/tags/itaglist.php?cid=$1

web.config

<rules>
	<rule name="itagpage">
		<match url="^(.*/)*tag/([a-z0-9]+)_([0-9]+)\.html\?*(.*)$" />
		<action type="Rewrite" url="{R:1}/e/tags/itag.php\?py={R:2}&page={R:3}" />
	</rule>
	<rule name="itag">
		<match url="^(.*/)*tag/([a-z0-9]+)\.html\?*(.*)$" />
		<action type="Rewrite" url="{R:1}/e/tags/itag.php\?py={R:2}" />
	</rule>
	<rule name="listtagpage">
		<match url="^(.*/)*tag/list_([0-9]+)_([0-9]+)\?*(.*)$" />
		<action type="Rewrite" url="{R:1}/e/tags/itaglist.php\?cid={R:2}&page={R:3}" />
	</rule>
	<rule name="listtag">
		<match url="^(.*/)*tag/list_([0-9]+)\?*(.*)$" />
		<action type="Rewrite" url="{R:1}/e/tags/itaglist.php\?cid={R:2}" />
	</rule>
</rules>

动态页缓存设置

1、默认没有开启缓存功能,只有设置TAG为动态页面,才需要使用缓存功能

2、缓存功能开启,以及配置,需要修改配置文件 e/dongpo/itag/cache_config.php

3、网站目录一定要以“/”结尾,填写示例:

windows系统填写格式:  G:/web/website/

linux系统填写格式:    /data/wwwroot/demo/

如何快速查看网站目录?

打开页面:系统 》网站多访问端 》管理网站访问端 》增加访问端

在页面展示的表单中,可以看到 访问端目录 ,就是这里需要填写的网站目录

TAG页自动更新

1、TAG页自动更新是指,新增、修改信息时,可以更新信息的TAG页。更新包含静态tag生成和动态tag缓存更新。

2、修改方法

(1)打开文件 e/class/hinfofun.php

(2)查找 GetHtml($add['classid'],$id,'',0); ,在其下一行插入代码:

dp_itagHtml($add['classid'],$id);

修改后的代码如图1:

(3)查找 GetHtml($add['classid'],$add['id'],'',0); ,共有两处,在其下一行插入代码:

dp_itagHtml($add['classid'],$add['id']);

修改后的代码如图2:

从标题提取TAG和批量提取

一、从标题提取TAG

1、当信息标题存在且关键字为空时,鼠标点击一下 关键字 输入框,程序会将标题分词,提取词语,填充到 关键字 和 TAGS 里。

2、实现此功能:

(1)进入页面:系统 》 数据表与系统模型 》管理数据表,点击需要使用本功能的数据表后的 管理字段

(2)修改 title 字段,在 输入表单替换html代码 中,第一行加入代码:

<?php include_once("../dongpo/itag/getword.php");?>

修改后变成如图所示:

二、批量提取TAG

1、在本插件管理菜单中,点击“批量操作”,就可以看到“批量提取TAG”界面

2、建议提取到临时表,可以避免将提取到的垃圾词入库成tag

3、提取到临时表后,需要在“临时TAG”页面中对临时tag执行“入库”操作,才能临时tag真正变成tag

4、“一键入库”功能,是将所有信息数大于1的临时tag入库

自动提取TAG设置

自动提取标题中的词语作为tag和关键字

打开 e/class/hinfofun.php, 找到

$add['infotags']=hRepPostStr($add['infotags'],1);

在其下一行插入代码:

	if(empty($add['infotags'])){
		include_once(ECMS_PATH.'e/dongpo/itag/pscws/tiqu2.php');
		$add['infotags'] = itag_tiqu($add[title]);
		if(empty($add[keyboard])){
			$add[keyboard] = $add['infotags'];
		}
	}
说明

只有当信息的infotags字段为空时,才会执行此程序

从信息列表推送信息到TAG

1、在信息列表页,增加一个推送至TAG按钮,方便信息推送到tag。

2、实现此功能:

(1)打开信息列表模板文件 e/data/html/list/listinfo.php

(2)找到代码 </script> 在其上一行插入代码:

function PushInfoToTag(form){
  var id='';
  id=GetSelectId(form);
  if(id==''){
    alert('请选择要推送的信息');
    return false;
  }
  window.open('../dongpo/itag/push.php?<?=$ecms_hashur['ehref']?>&classid=<?=$classid?>&id='+id,'PushToTag','width=600,height=600,scrollbars=yes,left=300,top=150,resizable=yes');
}

(3)找到代码 <input type="button" name="Submit112" value="推送 在其上一行插入代码:

<input type="button" name="Submit52" value="推送至TAG" onClick="PushInfoToTag(this.form);">

(4)刚才找到的“推送”是推送的碎片,不需要此功能的可以顺手将此行删除,或者修改为“推送至碎片”以方便区分

同步功能详解

重要问题:同步到哪里?

执行“同步”操作后,TAG将写入内容关键字数据表,具体位置:其它 》 新闻模型相关 》 内容关键字 ,如图:

“内容关键字”是用来替换文章内容词语,给词语加链接的。如果不详细了解“替换关键字”,请勿使用本插件的同步功能

TAG图片功能详解

1、tag图片可以通过三处上传:输入框图片上传、编辑器图片上传、编辑器多图上传。支持生成缩略图、加水印功能。如图:

2、图片会统一上传到 d/file/p/ 目录

3、图片会写入公共附件数据表 phome_enewsfile_public ,表中字段 id 表示 tagid

4、可以通过后台附件管理功能,管理tag图片

5、删除tag时,tag所属图片会被同步删除

TAG模板自定义

有三处可以设置TAG模板:

(1)TAG新增/修改 页面,tag所属模板,优先级最高

(2)分类管理中,此分类下tag使用的模板,优先级居中

(3)插件管理的 参数设置 ,设置TAG默认列表模板,优先级最低

TAG页模板内的调用

1、当前tag的所有相关字段数组名:$navinfor,可以用 <?=$navinfor[字段名]?>获取相关值

tagid:                  <?=$navinfor[tagid]?>

tag名:                  <?=$navinfor[tagname]?>

信息数:                 <?=$navinfor[num]?>

推荐等级:               <?=$navinfor[isgood]?>

tag分类id:              <?=$navinfor[cid]?>

tag网页标题:            <?=$navinfor[tagtitle]?>

tag网页关键词:          <?=$navinfor[tagkey]?>

tag网页描述:            <?=$navinfor[tagdes]?>

最后修改时间(时间戳):    <?=$navinfor[fclast]?>

设置的tag模板id:         <?=$navinfor[tempid]?>

tag拼音:                 <?=$navinfor[py]?>

tag图片:                 <?=$navinfor[tagpic]?>

tag单页内容:             <?=$navinfor[tagtext]?>

tag链接:                 <?=$navinfor[tagurl]?>

分类页模板内的调用

分类页模板 的 列表内容模板(list.var) 使用的标签:

//以下几项,在代码模式中,用$r数组可以调用出来 

tagid:                  [!--tagid--]

tag名:                  [!--tagname--]

信息数:                 [!--num--]

推荐等级:               [!--isgood--]

tag分类id:              [!--cid--]

tag网页标题:            [!--tagtitle--]

tag网页关键词:          [!--tagkey--]

tag网页描述:            [!--tagdes--]

最后修改时间(时间戳):    [!--fclast--]

//以下三项,也可以在代码模式中,用$ta数组调用出来 

tag链接:                 [!--tagurl--]

tag拼音:                 [!--py--]

tag图片:                 [!--tagpic--]

调用信息的TAG

1、调用信息TAG的函数,放进 e/class/userfun.php 文件 ?> 代码之前,方便在模板中调用

/***
$classid   信息栏目id
$id        信息id
$exp       包裹每一个tag的前后标签,用|分割,默认是<li><a href="">TAG</a></li>
$limit     调用tag数量,默认10个
***/
function dp_InfoTag($classid,$id,$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=dp_itagLink($tr['tagid']);
 			$tagstr.=$q[0].'<a href="'.$tagurl.'" title="'.$tt['tagname'].'" class="c1" target="_blank">'.$tt['tagname'].'</a>'.$q[1];
			$i+=1;
		}
	}
	return $tagstr;
}

2、在内容页模板中使用上述dp_InfoTag函数,调用当前信息的tag

<?=dp_InfoTag($navinfor['classid'],$navinfor['id'],'|<br>',8)?>

3、在列表页中,列表内容模板(list.var) 使用dp_InfoTag函数的例子:

$tagstr=dp_InfoTag($r['classid'],$r['id'],'| ',5);

$listtemp='
<li>
    <h3><a href="[!--titleurl--]">[!--title--]</a></h3>
    <p>[!--smalltext--]</p>
    TAG:'.$tagstr.'
</li>
';

注意需要勾选使用程序代码。帝国CMS官网:list.var使用程序代码说明

4、灵动标签中使用dp_InfoTag函数的例子:

[e:loop={灵动标签调用语句}]
<?
$thistagstr=dp_InfoTag($bqr['classid'],$bqr['id'],'| ',10);
?>
<a href="" target="_blank"></a>
TAG: <?=$thistagstr?>
[/e:loop]

调用多个TAG

1、调用最新10个tag

<?
$tsql=$empire->query("select * from {$dbtbpre}enewstags order by tagid desc limit 10");
while($tr=$empire->fetch($tsql)){
    $tagurl=dp_itagLink($tr['tagid']);
?>
    <li><a href=""><?=$tr['tagname']?></a>(<?=$tr['num']?>)</li>
<?}?>

2、按分类调用TAG

<?
$tcsql=$empire->query("select * from {$dbtbpre}enewstagsclass where classid>0 order by classid desc");
while($tcr=$empire->fetch($tcsql)){
    $tagclassurl=dp_itagClassLink($tcr['classid']);
?>
   <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=dp_itagLink($tr['tagid']);
    ?>
        <li><a href="<?=$tagurl?>"><?=$tr['tagname']?></a>(<?=$tr['num']?>)</li>
    <?
    }
    ?>
        </ul>
  </div>
<?
}

?>

 

3、按照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">
<?
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=dp_itagLink($zr[tagid]);
            ?>
            <li><a href="<?=$tagurl?>"><?=$t['tagname']?></a></li>
            <?
        }
    ?>
</ul>
<?
}
?>
</div>

4、在栏目页模板,根据tag分类绑定的栏目,调用此栏目下的TAG

<?php
$bdsql=$empire->query("select * from {$dbtbpre}dp_itag_class where modid='$navclassid'");
while($bdr=$empire->fetch($bdsql)){
    $cid=$bdr['classid'];
    $tcsql=$empire->query("select * from {$dbtbpre}enewstagsclass where classid='$cid' order by classid desc");
    while($tcr=$empire->fetch($tcsql)){
        $tagclassurl=dp_itagClassLink($tcr['classid']);
    ?>
       <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=dp_itagLink($tr['tagid']);
        ?>
            <li><a href="<?=$tagurl?>"><?=$tr['tagname']?></a>(<?=$tr['num']?>)</li>
        <?
        }
        ?>
            </ul>
      </div>
    <?
    }
}
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值