帝国cms相关
2021-05-02 11:11:51
1、搜索模板高亮
e\search\result\index.php
101行:
while($r=$empire->fetch($sql))
{
//替换列表变量
$repvar=ReplaceListVars($no,$listvar,$subnews,$subtitle,$formatdate,$url,$have_class,$r,$ret_r,$docode);
$listtext=str_replace("<!--list.var".$changerow."-->",$repvar,$listtext);
$listtext=str_replace($search_r[keyboard],"<font color='#FD8675'>$search_r[keyboard]</font>",$listtext);
$changerow+=1;
//超过行数
if($changerow>$rownum)
{
$changerow=1;
$string.=$listtext;
$listtext=$list_r[1];
}
$no++;
}
帝国CMS7.5搜索页面模板不支持灵动标签和万能标签的解决方法
查找
require("../../class/connect.php");
require("../../class/db_sql.php");
require("../../data/dbcache/class.php");
require("../../class/q_functions.php");
require "../".LoadLang("pub/fun.php");
修改为:
require('../../class/connect.php');
require('../../class/db_sql.php');
require('../../class/functions.php');
require('../../class/t_functions.php');
require('../../data/dbcache/class.php');
require "../".LoadLang("pub/fun.php");
2,再查找
//替换公共模板变量
$listtemp=$tempr[temptext];
在上面添加如下代码
//新增支持灵动标签和万能标签
$tempr[temptext]=DtNewsBq('list'.$tempid,$tempr[temptext],0);
修改完成,这样就可以在搜索模板中灵活使用帝国CMS强大的灵动和万能标签了
定要刷新一下:清除临时文件和数据
2、搜索模板分页导航按钮(e\class\connect.php)
function page1($num,$line,$page_line,$start,$page,$search){
global $fun_r;
if($num<=$line)
{
return '';
}
$search=RepPostStr($search,1);
$url=eReturnSelfPage(0).'?page';
$snum=2;//最小页数
$totalpage=ceil($num/$line);//取得总页数
//$firststr='<a title="'.$fun_r['trecord'].'"> <b>'.$num.'</b> </a> ';
//上一页
if($page<>0)
{
$toppage='<li class="active"><a href="'.$url.'=0'.$search.'">'.$fun_r['startpage'].'</a></li> ';
$pagepr=$page-1;
$prepage='<li class="active"><a href="'.$url.'='.$pagepr.$search.'">'.$fun_r['pripage'].'</a></li>';
}
if($page==0)
{
$toppage='<li class="disabled"><a href="'.$url.'=0'.$search.'">'.$fun_r['startpage'].'</a></li> ';
$prepage='<li class="disabled"><a href="'.$url.'='.$pagepr.$search.'">'.$fun_r['pripage'].'</a></li>';
}
//下一页
if($page!=$totalpage-1)
{
$pagenex=$page+1;
$nextpage=' <li class="active"><a href="'.$url.'='.$pagenex.$search.'">'.$fun_r['nextpage'].'</a></li>';
$lastpage=' <li class="active"><a href="'.$url.'='.($totalpage-1).$search.'">'.$fun_r['lastpage'].'</a></li>';
}
if($page==$totalpage-1)
{
$nextpage=' <li class="disabled"><a href="'.$url.'='.$pagenex.$search.'">'.$fun_r['nextpage'].'</a></li>';
$lastpage=' <li class="disabled"><a href="'.$url.'='.($totalpage-1).$search.'">'.$fun_r['lastpage'].'</a></li>';
}
$starti=$page-$snum<0?0:$page-$snum;
$no=0;
for($i=$starti;$i<$totalpage&&$no<$page_line;$i++)
{
$no++;
if($page==$i)
{
$is_1='<li class="active"><a href="#">';
$is_2="</a></li>";
}
else
{
$is_1='<li><a href="'.$url.'='.$i.$search.'">';
$is_2="</a></li>";
}
$pagenum=$i+1;
$returnstr.=" ".$is_1.$pagenum.$is_2;
}
$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
return $returnstr;
}
3、在各页面获取最上层栏目ID:$classid
if($class_r[$GLOBALS[navclassid]][bclassid]==0){
$classid=$GLOBALS['navclassid'];
$classname=$class_r[$classid][classname];
}else{
$classid=$class_r[$GLOBALS[navclassid]][bclassid];
$classname=$class_r[$classid][classname];
}
$classname_cu= $class_r[$GLOBALS[navclassid]][classname];
4、动态页二级菜单循环时候当前页面的ID:$GLOBALS[navclassid]
5、php7登录后台空白或报错:php.ini short_open_tag = On
6、登录显示“您还未登陆”
e/data/adminlogin权限问题所致
chown apache:apache /usr/nginx/html/e/data/adminlogin -R
chmod 755 /usr/nginx/html/e/data/adminlogin -R
7、根据当前栏目ID获取根目录ID和名称
$栏目id=$class_r[$GLOBALS[navclassid]][classid];
$栏目名称 = $class_r[$GLOBALS[navclassid]][classname];
//根据当前栏目ID获取根目录ID
function GetRootParentID($classid){
global $empire , $dbtbpre ;
$bclassid = '999';
while ($bclassid!='0'){
$query = "select * from {$dbtbpre}enewsclass where classid=" . $classid ;
$sql = $empire ->query($query);
$r = $empire ->fetch($sql);
if ($r[bclassid]=='0')
{
return $r[classid];
}
else {//如果不是根目录的情况
$bclassid = $r[bclassid];
$classid = $r[bclassid];
}
}
}
//根据当前栏目ID获取根目录名称
function GetRootParentName($classid){
global $empire , $dbtbpre ;
$bclassid = '999';
while ($bclassid!='0'){
$query = "select * from {$dbtbpre}enewsclass where classid=" . $classid ;
$sql = $empire ->query($query);
$r = $empire ->fetch($sql);
if ($r[bclassid]=='0')
{
return $r[classname];
}
else {//如果不是根目录的情况
$bclassid = $r[bclassid];
$classid = $r[bclassid];
}
}
}
8、帝国cms搜索页面根据时间筛选功能
<form action="/e/search/index.php" id="tj" name="tj" method="post">
<input name="show" id="show" value="title,smalltext,newstext,writer" type="hidden">
<input name="starttime" id="starttime" type="hidden">
<input name="endtime" id="endtime" type="hidden">
<input name="classid" id="classid" value="0" type="hidden">
<div class="input-group form-search input-group-lg">
<input name="keyboard" id="keyboard" type="text" class="form-control search-query" value="[!--keyboard--]" placeholder="请输入关键词...">
<span class="input-group-btn">
<button type="submit" class="btn btn-primary" data-type="last" onclick="stj()"><i class="search-icon glyphicon glyphicon-search"></i></button>
</span>
</div>
</form>
function setDateSearch(days)
{
days = parseInt(days);
var a = (new Date().getFullYear()+"-"+(new Date().getMonth()+1)+"-"+new Date().getDate());
document.getElementById("endtime").value=a;
var b = (new Date(new Date()-days*86400000).getFullYear() + "-" + (new Date(new Date()-days*86400000).getMonth()+1) + "-" + new Date(new Date()-days*86400000).getDate());
document.getElementById("starttime").value=b;
}
$('body').on('click','.search_filter_time ul li>a',function(){
var time = $(this).data('time');
if(time == 'week')
{
setDateSearch('7');
}
if(time == 'month')
{
setDateSearch('30');
}
if(time == 'year'){
setDateSearch('365');
}
$('#tj').submit();
})
8、关闭前台所有动态页面后遗症的解决
如果开启了“关闭前台所有动态页面”选项,二次开发的文件如何能访问?
答:可以在开发的程序代码顶部一行加:define('EmpireCMSAdmin','1');
就可以不受此设置影响。
9、推荐变量过滤处理
(1)、数字型变量可以用(int)或intval函数处理,例子:
$page=(int)$_GET[*page*];
或
$page=intval($_GET[*page*]);
(2)、带小数点的数字型变量可以用(float)或floatval函数处理,例子:
$money=(float)$money;
或
$money=floatval($money);
(3)、字符型处理:
不带空格或其他特殊符号的,用
RepPostVar()函数过滤
带空格或其他特殊符号的用:
RepPostVar2()函数过滤
写入数据库的用:
RepPostStr()函数过滤
e\search\result\index.php
101行:
while($r=$empire->fetch($sql))
{
//替换列表变量
$repvar=ReplaceListVars($no,$listvar,$subnews,$subtitle,$formatdate,$url,$have_class,$r,$ret_r,$docode);
$listtext=str_replace("<!--list.var".$changerow."-->",$repvar,$listtext);
$listtext=str_replace($search_r[keyboard],"<font color='#FD8675'>$search_r[keyboard]</font>",$listtext);
$changerow+=1;
//超过行数
if($changerow>$rownum)
{
$changerow=1;
$string.=$listtext;
$listtext=$list_r[1];
}
$no++;
}
帝国CMS7.5搜索页面模板不支持灵动标签和万能标签的解决方法
查找
require("../../class/connect.php");
require("../../class/db_sql.php");
require("../../data/dbcache/class.php");
require("../../class/q_functions.php");
require "../".LoadLang("pub/fun.php");
修改为:
require('../../class/connect.php');
require('../../class/db_sql.php');
require('../../class/functions.php');
require('../../class/t_functions.php');
require('../../data/dbcache/class.php');
require "../".LoadLang("pub/fun.php");
2,再查找
//替换公共模板变量
$listtemp=$tempr[temptext];
在上面添加如下代码
//新增支持灵动标签和万能标签
$tempr[temptext]=DtNewsBq('list'.$tempid,$tempr[temptext],0);
修改完成,这样就可以在搜索模板中灵活使用帝国CMS强大的灵动和万能标签了
定要刷新一下:清除临时文件和数据
2、搜索模板分页导航按钮(e\class\connect.php)
function page1($num,$line,$page_line,$start,$page,$search){
global $fun_r;
if($num<=$line)
{
return '';
}
$search=RepPostStr($search,1);
$url=eReturnSelfPage(0).'?page';
$snum=2;//最小页数
$totalpage=ceil($num/$line);//取得总页数
//$firststr='<a title="'.$fun_r['trecord'].'"> <b>'.$num.'</b> </a> ';
//上一页
if($page<>0)
{
$toppage='<li class="active"><a href="'.$url.'=0'.$search.'">'.$fun_r['startpage'].'</a></li> ';
$pagepr=$page-1;
$prepage='<li class="active"><a href="'.$url.'='.$pagepr.$search.'">'.$fun_r['pripage'].'</a></li>';
}
if($page==0)
{
$toppage='<li class="disabled"><a href="'.$url.'=0'.$search.'">'.$fun_r['startpage'].'</a></li> ';
$prepage='<li class="disabled"><a href="'.$url.'='.$pagepr.$search.'">'.$fun_r['pripage'].'</a></li>';
}
//下一页
if($page!=$totalpage-1)
{
$pagenex=$page+1;
$nextpage=' <li class="active"><a href="'.$url.'='.$pagenex.$search.'">'.$fun_r['nextpage'].'</a></li>';
$lastpage=' <li class="active"><a href="'.$url.'='.($totalpage-1).$search.'">'.$fun_r['lastpage'].'</a></li>';
}
if($page==$totalpage-1)
{
$nextpage=' <li class="disabled"><a href="'.$url.'='.$pagenex.$search.'">'.$fun_r['nextpage'].'</a></li>';
$lastpage=' <li class="disabled"><a href="'.$url.'='.($totalpage-1).$search.'">'.$fun_r['lastpage'].'</a></li>';
}
$starti=$page-$snum<0?0:$page-$snum;
$no=0;
for($i=$starti;$i<$totalpage&&$no<$page_line;$i++)
{
$no++;
if($page==$i)
{
$is_1='<li class="active"><a href="#">';
$is_2="</a></li>";
}
else
{
$is_1='<li><a href="'.$url.'='.$i.$search.'">';
$is_2="</a></li>";
}
$pagenum=$i+1;
$returnstr.=" ".$is_1.$pagenum.$is_2;
}
$returnstr=$firststr.$toppage.$prepage.$returnstr.$nextpage.$lastpage;
return $returnstr;
}
3、在各页面获取最上层栏目ID:$classid
if($class_r[$GLOBALS[navclassid]][bclassid]==0){
$classid=$GLOBALS['navclassid'];
$classname=$class_r[$classid][classname];
}else{
$classid=$class_r[$GLOBALS[navclassid]][bclassid];
$classname=$class_r[$classid][classname];
}
$classname_cu= $class_r[$GLOBALS[navclassid]][classname];
4、动态页二级菜单循环时候当前页面的ID:$GLOBALS[navclassid]
5、php7登录后台空白或报错:php.ini short_open_tag = On
6、登录显示“您还未登陆”
e/data/adminlogin权限问题所致
chown apache:apache /usr/nginx/html/e/data/adminlogin -R
chmod 755 /usr/nginx/html/e/data/adminlogin -R
7、根据当前栏目ID获取根目录ID和名称
$栏目id=$class_r[$GLOBALS[navclassid]][classid];
$栏目名称 = $class_r[$GLOBALS[navclassid]][classname];
//根据当前栏目ID获取根目录ID
function GetRootParentID($classid){
global $empire , $dbtbpre ;
$bclassid = '999';
while ($bclassid!='0'){
$query = "select * from {$dbtbpre}enewsclass where classid=" . $classid ;
$sql = $empire ->query($query);
$r = $empire ->fetch($sql);
if ($r[bclassid]=='0')
{
return $r[classid];
}
else {//如果不是根目录的情况
$bclassid = $r[bclassid];
$classid = $r[bclassid];
}
}
}
//根据当前栏目ID获取根目录名称
function GetRootParentName($classid){
global $empire , $dbtbpre ;
$bclassid = '999';
while ($bclassid!='0'){
$query = "select * from {$dbtbpre}enewsclass where classid=" . $classid ;
$sql = $empire ->query($query);
$r = $empire ->fetch($sql);
if ($r[bclassid]=='0')
{
return $r[classname];
}
else {//如果不是根目录的情况
$bclassid = $r[bclassid];
$classid = $r[bclassid];
}
}
}
8、帝国cms搜索页面根据时间筛选功能
<form action="/e/search/index.php" id="tj" name="tj" method="post">
<input name="show" id="show" value="title,smalltext,newstext,writer" type="hidden">
<input name="starttime" id="starttime" type="hidden">
<input name="endtime" id="endtime" type="hidden">
<input name="classid" id="classid" value="0" type="hidden">
<div class="input-group form-search input-group-lg">
<input name="keyboard" id="keyboard" type="text" class="form-control search-query" value="[!--keyboard--]" placeholder="请输入关键词...">
<span class="input-group-btn">
<button type="submit" class="btn btn-primary" data-type="last" onclick="stj()"><i class="search-icon glyphicon glyphicon-search"></i></button>
</span>
</div>
</form>
function setDateSearch(days)
{
days = parseInt(days);
var a = (new Date().getFullYear()+"-"+(new Date().getMonth()+1)+"-"+new Date().getDate());
document.getElementById("endtime").value=a;
var b = (new Date(new Date()-days*86400000).getFullYear() + "-" + (new Date(new Date()-days*86400000).getMonth()+1) + "-" + new Date(new Date()-days*86400000).getDate());
document.getElementById("starttime").value=b;
}
$('body').on('click','.search_filter_time ul li>a',function(){
var time = $(this).data('time');
if(time == 'week')
{
setDateSearch('7');
}
if(time == 'month')
{
setDateSearch('30');
}
if(time == 'year'){
setDateSearch('365');
}
$('#tj').submit();
})
8、关闭前台所有动态页面后遗症的解决
如果开启了“关闭前台所有动态页面”选项,二次开发的文件如何能访问?
答:可以在开发的程序代码顶部一行加:define('EmpireCMSAdmin','1');
就可以不受此设置影响。
9、推荐变量过滤处理
(1)、数字型变量可以用(int)或intval函数处理,例子:
$page=(int)$_GET[*page*];
或
$page=intval($_GET[*page*]);
(2)、带小数点的数字型变量可以用(float)或floatval函数处理,例子:
$money=(float)$money;
或
$money=floatval($money);
(3)、字符型处理:
不带空格或其他特殊符号的,用
RepPostVar()函数过滤
带空格或其他特殊符号的用:
RepPostVar2()函数过滤
写入数据库的用:
RepPostStr()函数过滤