帝国cms同一条信息使用不同的多个内容页模板伪静态实现教程

devtools/2024/12/29 7:43:03/

理论上可以实现一条信息使用无数个内容页模板,实现过程:

1、/e/action目录下新建bishun.php,内容如下:

<?php
require('../class/connect.php');
require('../class/db_sql.php');
require('../class/functions.php');
require('../class/t_functions.php');
require LoadLang('pub/fun.php');
require('../data/dbcache/class.php');
require('../data/dbcache/MemberLevel.php');
$link=db_connect();
$empire=new mysqlquery();
$classid=(int)$_GET['classid'];
$id=(int)$_GET['id'];
$page=(int)$_GET['page'];
$page=RepPIntvar($page);
$mid=$class_r[$classid]['modid'];
$tbname=$class_r[$classid]['tbname'];
//验证IP
eCheckAccessDoIp('showinfo');
if(!$classid||!$id||!$mid||!$tbname||InfoIsInTable($tbname))
{printerror('此信息不存在','',1,0,1);
}
$r=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$id' limit 1");
if(!$r['id']||$classid!=$r['classid'])
{printerror('此信息不存在','',1,0,1);
}
//外部链接
if($r['isurl'])
{$titleurl=$r['titleurl'];Header("Location:$titleurl");exit();
}
/*
//moreport
if(Moreport_ReturnMustDt())
{$class_r[$classid]['showdt']=2;
}
//是否支持动态内容页
if($class_r[$classid]['showdt']!=2)
{$titleurl=sys_ReturnBqTitleLink($r);Header("Location:$titleurl");exit();
}*/
//缓存
if($public_r['ctimeopen'])
{$public_r['usetotalnum']=0;
}
$ecms_tofunr=array();
$ecms_tofunr['cacheuse']=0;
$ecms_tofunr['cacheselfcid']=$classid;
$ecms_tofunr['cachetype']='textpage';
$ecms_tofunr['cacheids']=$classid.','.$id.','.$page;
$ecms_tofunr['cachepath']='empirecms';
$ecms_tofunr['cachedatepath']='ctext/bishun/'.date('Y/md',$r['truetime']);
$ecms_tofunr['cachetime']=$public_r['ctimetext'];
$ecms_tofunr['cachelasttime']=$public_r['ctimelast'];
$ecms_tofunr['cachelastedit']=$r['lastdotime'];
$ecms_tofunr['cacheopen']=Ecms_eCacheCheckOpen($ecms_tofunr['cachetime']);
$ecms_tofunr['cachehavedo']=0;
if($ecms_tofunr['cacheopen']==1&&!($r['groupid']||$class_r[$classid]['cgtoinfo']))
{$ecms_tofunr['cacheuse']=Ecms_eCacheOut($ecms_tofunr,2);if($ecms_tofunr['cacheuse']){//更新点击$empire->query("update {$dbtbpre}ecms_".$tbname." set onclick=onclick+1 where id='$id' limit 1");db_close();$empire=null;exit();}$ecms_tofunr['cachehavedo']=1;
}
//缓存
//副表
$finfor=$empire->fetch1("select ".ReturnSqlFtextF($mid)." from {$dbtbpre}ecms_".$tbname."_data_".$r['stb']." where id='$r[id]' limit 1");
$r=array_merge($r,$finfor);
//权限
if($r['groupid']||$class_r[$classid]['cgtoinfo'])
{define('empirecms','wm_chief');define('PageCheckLevel','wm_chief');$check_tbname=$tbname;$check_infoid=$id;$check_classid=$classid;$check_path="../../";$checkinfor=$r;@include("../class/CheckLevel.php");
}
//缓存
if($ecms_tofunr['cacheopen']==1&&!$ecms_tofunr['cachehavedo'])
{$ecms_tofunr['cacheuse']=Ecms_eCacheOut($ecms_tofunr,2);if($ecms_tofunr['cacheuse']){//更新点击$empire->query("update {$dbtbpre}ecms_".$tbname." set onclick=onclick+1 where id='$id' limit 1");db_close();$empire=null;exit();}
}
//缓存
//存文本
if($emod_r[$mid]['savetxtf'])
{$stf=$emod_r[$mid]['savetxtf'];if($r[$stf]){$r[$stf]=GetTxtFieldText($r[$stf]);}
}
//初始值
$search="&classid=$classid&id=$id";
$line=1;
$start=0;
$page_line=6;//每页显示链接数
$offset=$page*$line;//总偏移量
$GLOBALS['navclassid']=$r[classid];
$GLOBALS['navinfor']=$r;
//取得内容模板
//$r[newstempid]=$r[newstempid]?$r[newstempid]:$class_r[$r[classid]][newstempid];
$r[newstempid]=29;
$newstemp_r=$empire->fetch1("select tempid,temptext,showdate from ".GetTemptb("enewsnewstemp")." where tempid='$r[newstempid]'");//替换模板变量
function DtGetHtml($add,$newstemp_r,$mid,$tbname,$line,$page_line,$start,$page,$search){global $public_r,$class_r,$class_zr,$class_tr,$fun_r,$empire,$dbtbpre,$emod_r,$level_r;//更新点击$empire->query("update {$dbtbpre}ecms_".$tbname." set onclick=onclick+1 where id='$add[id]' limit 1");$add['onclick']=$add['onclick']+1;//模板参数$newstemptext=$newstemp_r[temptext];$formatdate=$newstemp_r[showdate];//页面$pagetitle=ehtmlspecialchars($add[title]);$url=ReturnClassLink($add[classid]);//导航$newstemptext=DtInfo_ReplaceSvars($newstemptext,$url,$add[classid],$pagetitle,$add[keyboard],$pagetitle);//相关信息if(strstr($newstemptext,'[!--other.link--]')){$keyboardtext=GetKeyboard($add[keyboard],$add[keyid],$add[classid],$add[id],$class_r[$add[classid]][link_num]);}//分页字段$ptitle=$add['title'];$truepage='';$titleselect='';$expage='[!--empirenews.page--]';//分页符$pf=$emod_r[$mid]['pagef'];if($pf&&strstr($add[$pf],$expage))//有分页{$n_r=explode($expage,$add[$pf]);$thispagenum=count($n_r);//checkpagenoeCheckListPageNo($page,$line,$thispagenum);if($page<0||$page>$thispagenum-1){$page=0;}$add[$pf]=$n_r[$page];if($page){$ti_r=explode('[/!--empirenews.page--]',$n_r[$page]);if(count($ti_r)>=2){$ptitle=$ti_r[0];$add[$pf]=$ti_r[1];}else{$ptitle=$add['title'].'('.($page+1).')';}}//伪静态$pagefunr=eReturnRewriteInfoUrl($add['classid'],$add['id'],0);$pagefunr['repagenum']=0;//取得分页$truepage=InfoUsePage($thispagenum,$line,$page_line,$start,$page,$search,$pagefunr);//下拉式分页if(strstr($newstemptext,'[!--title.select--]')){for($j=0;$j<$thispagenum;$j++){$spurl=eReturnRewritePageLink($pagefunr,$j);if($j==0){$sptitle=$add[title];}else{$ti_r=explode('[/!--empirenews.page--]',$n_r[$j]);$sptitle=count($ti_r)>=2?$ti_r[0]:$add[title].'('.($j+1).')';}$select='';if($page==$j){$ptitle=$sptitle;$select=' selected';}$titleselect.='<option value="'.$spurl.'"'.$select.'>'.$sptitle.'</option>';}$titleselect='<select name="titleselect" onchange="self.location.href=this.options[this.selectedIndex].value">'.$titleselect.'</select>';}//下一页链接if($page==$thispagenum-1){$thisnextlink=eReturnRewritePageLink($pagefunr,0);}else{$thisnextlink=eReturnRewritePageLink($pagefunr,$page+1);}}else{//checkpagenoif($page!=0){printerror('ErrorUrl','history.go(-1)',1);}}//返回替换验证字符$docheckrep=ReturnCheckDoRepStr();if($add[newstext]){if(empty($public_r['dorepword'])&&$docheckrep[3]){$add[newstext]=ReplaceWord($add[newstext]);//过滤字符}if(empty($public_r['dorepkey'])&&$docheckrep[4]&&!empty($add[dokey]))//替换关键字{$add[newstext]=ReplaceKey($add['newstext'],$add['classid']);}if($public_r['opencopytext']){$add[newstext]=AddNotCopyRndStr($add[newstext]);//随机复制字符}}//变量$tempf=$emod_r[$mid]['tempf'];$fr=explode(',',$tempf);$fcount=count($fr)-1;//变量替换$newstempstr=$newstemptext;//模板for($i=1;$i<$fcount;$i++){$f=$fr[$i];$value=$add[$f];if($f=='downpath')//下载地址{if(strstr($newstemptext,'[!--downpath--]')){$value=ReturnDownSoftHtml($add);}}elseif($f=='onlinepath')//观看地址{if(strstr($newstemptext,'[!--onlinepath--]')){$value=ReturnOnlinepathHtml($add);}}elseif($f=='morepic')//图片集{if(strstr($newstemptext,'[!--morepic--]')){$value=ReturnMorepicpathHtml($add);}}elseif($f=='newstime')//时间{if(strstr($newstemptext,'[!--newstime--]')){$value=date($formatdate,$value);}}elseif($f=='befrom')//信息来源{if($docheckrep[1]&&strstr($newstemptext,'[!--befrom--]')){$value=ReplaceBefrom($value);}}elseif($f=='writer')//作者{if($docheckrep[2]&&strstr($newstemptext,'[!--writer--]')){$value=ReplaceWriter($value);}}elseif($f=='titlepic')//标题图片{if(empty($value)){$value=$public_r[newsurl].'e/data/images/notimg.gif';}}elseif($f=='title')//标题{}else//正常字段{if(!strstr($emod_r[$mid]['editorf'],','.$f.',')){if(strstr($emod_r[$mid]['tobrf'],','.$f.','))//加br{$value=nl2br($value);}if(!strstr($emod_r[$mid]['dohtmlf'],','.$f.','))//去除html{$value=RepFieldtextNbsp(ehtmlspecialchars($value));}}}$newstempstr=str_replace('[!--'.$f.'--]',$value,$newstempstr);}//固定变量$newstempstr=str_replace('[!--id--]',$add[id],$newstempstr);$newstempstr=str_replace('[!--classid--]',$add[classid],$newstempstr);$newstempstr=str_replace('[!--class.name--]',$class_r[$add[classid]][classname],$newstempstr);$newstempstr=str_replace('[!--ttid--]',$add[ttid],$newstempstr);$newstempstr=str_replace('[!--tt.name--]',$class_tr[$add[ttid]][tname],$newstempstr);$newstempstr=str_replace('[!--tt.url--]',sys_ReturnBqInfoTypeUrl($add['ttid']),$newstempstr);$newstempstr=str_replace('[!--onclick--]',$add[onclick],$newstempstr);$newstempstr=str_replace('[!--userfen--]',$add[userfen],$newstempstr);$newstempstr=str_replace('[!--username--]',$add[username],$newstempstr);//带链接的用户名if($add[ismember]==1&&$add[userid]){$newstempstr=str_replace('[!--linkusername--]',"<a href='".$public_r[newsurl]."e/space/?userid=".$add[userid]."' target=_blank>".$add[username]."</a>",$newstempstr);}else{$newstempstr=str_replace('[!--linkusername--]',$add[username],$newstempstr);}$newstempstr=str_replace('[!--userid--]',$add[userid],$newstempstr);$newstempstr=str_replace('[!--other.link--]',$keyboardtext,$newstempstr);$newstempstr=str_replace('[!--news.url--]',$public_r[newsurl],$newstempstr);$newstempstr=str_replace('[!--plnum--]',$add[plnum],$newstempstr);$newstempstr=str_replace('[!--totaldown--]',$add[totaldown],$newstempstr);$newstempstr=str_replace('[!--keyboard--]',$add[keyboard],$newstempstr);//链接$titleurl=sys_ReturnBqTitleLink($add);$newstempstr=str_replace('[!--titleurl--]',$titleurl,$newstempstr);$newstempstr=str_replace('[!--page.stats--]','',$newstempstr);$classurl=sys_ReturnBqClassname($add,9);$newstempstr=str_replace('[!--class.url--]',$classurl,$newstempstr);//下一篇if(strstr($newstemptext,'[!--info.next--]')){$next_r=$empire->fetch1("select isurl,titleurl,classid,id,title from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where id>$add[id] and classid='$add[classid]' order by id limit 1");if(empty($next_r[id])){$infonext="<a href='".$classurl."'>".$fun_r['HaveNoNextLink']."</a>";}else{//链接$nexttitleurl=sys_ReturnBqTitleLink($next_r);$infonext="<a href='".$nexttitleurl."'>".$next_r[title]."</a>";}$newstempstr=str_replace('[!--info.next--]',$infonext,$newstempstr);}//上一篇if(strstr($newstemptext,'[!--info.pre--]')){$next_r=$empire->fetch1("select isurl,titleurl,classid,id,title from {$dbtbpre}ecms_".$class_r[$add[classid]][tbname]." where id<$add[id] and classid='$add[classid]' order by id desc limit 1");if(empty($next_r[id])){$infonext="<a href='".$classurl."'>".$fun_r['HaveNoNextLink']."</a>";}else{//链接$nexttitleurl=sys_ReturnBqTitleLink($next_r);$infonext="<a href='".$nexttitleurl."'>".$next_r[title]."</a>";}$newstempstr=str_replace('[!--info.pre--]',$infonext,$newstempstr);}//投票if(strstr($newstemptext,'[!--info.vote--]')){$myvotetext=sys_GetInfoVote($add[classid],$add[id]);$newstempstr=str_replace('[!--info.vote--]',$myvotetext,$newstempstr);}//评分if(strstr($newstemptext,'[!--pinfopfen--]')){$pinfopfen=$add[infopfennum]?round($add[infopfen]/$add[infopfennum]):0;$newstempstr=str_replace('[!--pinfopfen--]',$pinfopfen,$newstempstr);$newstempstr=str_replace('[!--infopfennum--]',$add[infopfennum],$newstempstr);}$string=$newstempstr;//替换变量$string=str_replace('[!--p.title--]',strip_tags($ptitle),$string);$string=str_replace('[!--next.page--]',$thisnextlink,$string);$string=str_replace('[!--page.url--]',$truepage,$string);$string=str_replace('[!--title.select--]',$titleselect,$string);return $string;
}if(empty($newstemp_r['tempid']))
{printerror('ErrorUrl','',1);
}
//页面支持标签
if($public_r['dtncanbq'])
{$newstemp_r[temptext]=DtNewsBq('text'.$newstemp_r[tempid],$newstemp_r[temptext],1);
}
else
{if($public_r['searchtempvar']){$newstemp_r[temptext]=ReplaceTempvar($newstemp_r[temptext]);}
}
$string=DtGetHtml($r,$newstemp_r,$mid,$tbname,$line,$page_line,$start,$page,$search);
//缓存
if($ecms_tofunr['cacheopen']==1)
{Ecms_eCacheIn($ecms_tofunr,stripSlashes($string));
}
else
{echo stripSlashes($string);
}
//缓存
db_close();
$empire=null;
?>

2、增加内容页模板,模板内容与正常内容页模板一样调用,新建完成后记住内容页模板id。

3、增加伪静态规则:rewrite ^/bishun/zi-([0-9]+)\.html$ /e/action/bishun.php?classid=5&id=$1 last;

演示地址就是使用1个内容的信息用5个页面调出

https://www.gushichi.com/bishun/zi-2606.html

https://www.gushichi.com/wubi/zi-2606.html

https://www.gushichi.com/wuxing/zi-2606.html

https://www.gushichi.com/bushou/zi-2606.html

https://www.gushichi.com/duyin/zi-2606.html


http://www.ppmy.cn/devtools/145010.html

相关文章

聊一聊性能测试是如何开展的?

目录 以下是开展性能测试的一般步骤&#xff1a; 明确目标&#xff1a; 环境设置&#xff1a; 选择或开发测试工具&#xff1a; 设计测试场景&#xff1a; 创建测试数据&#xff1a; 执行测试&#xff1a; 分析结果&#xff1a; 优化和调整&#xff1a; 重复测试&…

OCR多模态大模型:视觉模型与LLM的结合之路

原文&#xff1a;https://zhuanlan.zhihu.com/p/7783443583 在使用多模态大模型(Visual Language Model, VLM)做视觉信息抽取时&#xff0c;常常出现错字的问题。为了解决这一问题&#xff0c;本文提出了一种名为Guidance OCR的方法。该方法在不额外训练模型的情况下&#xff…

ubuntu image 中文支持

me locale 显示的是 locale.conf 的内容吗&#xff1f;下面&#xff0c;这些环境变量分别控制什么&#xff1f;我想系统支持渲染中文字符&#xff0c;但是系统默认语言设置为英文&#xff0c;设置哪些环境变量 LANGC LC_CTYPE“C” LC_NUMERIC“C” LC_TIME“C” LC_COLLATE“C…

【CVE-2024-56145】PHP 漏洞导致 Craft CMS 出现 RCE

大多数开发人员都同意,与 15 年前相比,PHP 是一种更加理智、更加安全和可靠的语言。PHP5早期的不良设计已让位于更好的开发生态系统,其中包括类、自动加载、更严格的类型、更理智的语法以及一大堆其他改进。安全性也没有被忽视。 register_globals一些老读者可能还记得和的…

2.5.1 文件管理基本概念

文章目录 文件文件系统文件分类 文件 文件&#xff1a;具有符号名&#xff0c;逻辑上有完整意义的一组相关信息的集合。 文件包含文件体、文件说明两部分。文件体存储文件的真实内容&#xff0c;文件说明存放操作系统管理文件所用的信息。 文件说明包含文件名、内部标识、类型、…

重拾设计模式--观察者模式

文章目录 观察者模式&#xff08;Observer Pattern&#xff09;概述观察者模式UML图作用&#xff1a;实现对象间的解耦支持一对多的依赖关系易于维护和扩展 观察者模式的结构抽象主题&#xff08;Subject&#xff09;&#xff1a;具体主题&#xff08;Concrete Subject&#xf…

实时预警,防范暴力事件 ----AI监控保障监狱安全与秩序

用户痛点介绍 在监狱或看守所等高风险场所&#xff0c;人工监控面临着极大的挑战。由于监控人员的疲劳和视线盲区&#xff0c;很多潜在的暴力事件或犯罪行为往往无法被及时察觉。传统监控系统无法提供实时的数据分析&#xff0c;隐患往往滞后被发现&#xff0c;极大增加了暴力…

Hutool工具包的常用工具类的使用介绍

前言 Hutool 是一个轻量级的 Java 工具类库&#xff0c;提供了非常丰富的工具方法&#xff0c;可以大大减少开发时的重复性工作。它的目标是让 Java 开发更简单、更高效。Hutool 提供了多种常用功能&#xff0c;以下是一些常用工具类的使用介绍&#xff1a; 1. StrUtil - 字符…