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;
}
1、在内容页模板中使用上述dp_InfoTag函数,调用当前信息的tag
<?=dp_InfoTag($navinfor['classid'],$navinfor['id'],'|<br>',8)?>
2、列表页模板修改
$tagstr=dp_InfoTag($r['classid'],$r['id'],'| ',5); $listtemp=' <li> <h3><a href="[!--titleurl--]">[!--title--]</a></h3> <p>[!--smalltext--]</p> TAG:'.$tagstr.' </li> '; 注意需要勾选使用程序代码。
3、首页模板修改
[e:loop={"select * from {$dbtbpre}enewstags order by tagid limit 40",0,24,0}]
<a href=" <?=dp_itagLink($bqr[tagid])?>" target="_blank">
<?=$bqr[ 'tagname']?>
</a>
[/e:loop]
4、调用最新10个TAG信息
<?
$tsql=$empire->query("select * from {$dbtbpre}enewstags order by num desc limit 10");
while($tr=$empire->fetch($tsql)){
$tagurl=dp_itagLink($tr['tagid']);
?>
<a href="<?=$tagurl?>" target="_blank" class="tag"> <?=$tr['tagname']?> <span class="count"></span> </a>
<?
}
?>
5、一级最新推荐
<?
$tsql=$empire->query("select * from {$dbtbpre}enewstags where isgood=1 order by tagid desc limit 24");
while($tr=$empire->fetch($tsql)){
$tagurl=dp_itagLink($tr['tagid']);
?>
<a href="<?=$tagurl?>" target="_blank"><?=$tr['tagname']?></a>
<?
}
?>
六,栏目ID调用:
<?
$tsql=$empire->query("select * from {$dbtbpre}enewstags where cid=2 order by tagid desc limit 30");
while($tr=$empire->fetch($tsql)){
$tagurl=dp_itagLink($tr['tagid']);
?>
<a href="<?=$tagurl?>" target="_blank"><?=$tr['tagname']?></a>
<?php
}
?>
七,关键词自动替换,放进 e/class/userfun.php 文件 ?> 代码之前
function tihuan($id) {
global $empire, $dbtbpre, $public_r, $class_r;
// 获取新闻的基本信息和内容
$tagr = $empire->fetch1("select id, classid from {$dbtbpre}ecms_news where id='$id' limit 1");
$f = $empire->fetch1("select newstext from {$dbtbpre}ecms_news_data_1 where id='$id' limit 1");
$newstext = $f['newstext'];
// 获取新闻的标签ID
$sql = $empire->query("select tagid from {$dbtbpre}enewstagsdata where id=".$tagr['id']." and classid=".$tagr['classid']."");
// 用于存储已处理的标签ID,确保不重复替换
$processedTagIds = [];
while ($td = $empire->fetch($sql)) {
$tr = $empire->fetch1("select * from {$dbtbpre}enewstags where tagid=".$td['tagid']." limit 1");
if ($tr['tagid'] && !in_array($tr['tagid'], $processedTagIds)) {
$processedTagIds[] = $tr['tagid']; // 标记为已处理
$tagurl = dp_itagLink($td['tagid']);
// 使用回调函数和正则表达式实现只替换一次
$newstext = preg_replace_callback(
'/('.preg_quote($tr['tagname'], '/').')(?!([^<]*>)|([^<]*<\/a>))/i',
function ($matches) use ($tagurl) {
return '<a href="'.$tagurl.'" target="_blank" class="infotextkey">'.$matches[1].'</a>';
},
$newstext,
1 // 这里的1表示只替换一次
);
}
}
return $newstext;
}
模板使用<?=tihuan($navinfor['id'])?> 调用
