帝国CMS7.5 信息反馈页面模板修改,让控制面板模板头尾也支持标签调用的方法
微wx笑
2021-08-05【帝国CMS】
9
0关键字:
帝国CMS 信息反馈 页面模板 标签调用
信息页面模板的修改,需要修改公共模板中的控制面板模板,但是帝国CMS本身默认是不支持标签调用的,所以如果你的模板中使用了标签调用的话,还需要添加、修改代码来支持。
信息页面模板的修改,需要修改公共模板中的控制面板模板,但是帝国CMS本身默认是不支持标签调用的,所以如果你的模板中使用了标签调用的话,还需要添加、修改代码来支持。
牵扯到的文件
1.页面头部尾部修改
公共模板——>控制面板模板
2.后台信息反馈列表修改
/e/admin/tool/feedback.php
3.发布信息反馈成功后的跳转页面修改
/e/class/q_functions.php 文件 function AddFeedback($add)方法。
4、让控制面板模板头尾也支持标签调用
/e/class/functions.php
支付标签调用的修改方法
找到
=============================
//解析代码
function RepExeCode($string)
=============================
在这之前添加
//标签替换4
function CustomNewsBq($name,$indextext){
global $empire,$dbtbpre,$public_r,$emod_r,$class_r,$class_zr,$fun_r,$navclassid,$navinfor,$class_tr,$level_r,$etable_r;
$file=ECMS_PATH.'e/data/tmp/dt_temp'.$name.'.php';
$indextext=stripSlashes($indextext);
$indextext=ReplaceTempvar($indextext);//替换全局模板变量
//替换标签
$indextext=DoRepEcmsLoopBq($indextext);
$indextext=RepBq($indextext);
//写文件
WriteFiletext($file,AddCheckViewTempCode().$indextext);
//读取文件内容
ob_start();
include($file);
$string=ob_get_contents();
ob_end_clean();
$string=RepExeCode($string);//解析代码
return $string;
}找到
WriteFiletext($file1,AddCheckViewTempCode().$r[0]);
改为
$tmplist= CustomNewsBq ("cp0",$r[0]);
WriteFiletext($file1,$tmplist);找到
WriteFiletext($file2,AddCheckViewTempCode().$r[1]);
改为
$tmplist= CustomNewsBq ("cp1",$r[1]);
WriteFiletext($file2,$tmplist);都在 ReCptemp 方法中
//更新控制面板模板
function ReCptemp(){
global $empire,$public_r,$dbtbpre,$fun_r;
$pr=$empire->fetch1("select cptemp from ".GetTemptb("enewspubtemp")." limit 1");
$url="<?=\$url?>";
$pagetitle="<?=defined('empirecms')?\$public_diyr[pagetitle]:'".$fun_r['membercp']."'?>";
$temptext=ReplaceSvars($pr['cptemp'],$url,0,$pagetitle,$pagetitle,$pagetitle,$add,1);
//生成头尾文件
$r=explode("[!--empirenews.template--]",$temptext);
$file1=eReturnTrueEcmsPath()."e/data/template/cp_1.php";
//WriteFiletext($file1,AddCheckViewTempCode().$r[0]);
$tmplist= CustomNewsBq("cp0",$r[0]);
WriteFiletext($file1,$tmplist);
$file2=eReturnTrueEcmsPath()."e/data/template/cp_2.php";
//WriteFiletext($file2,AddCheckViewTempCode().$r[1]);
$tmplist= CustomNewsBq("cp1",$r[1]);
WriteFiletext($file2,$tmplist);
}注意:虽然支持标签调用了,但是出现了一个副作用,就是“现在的位置:”显示不出来了。
2021-08-06更新,解决位置导航问题
完整代码
//更新控制面板模板
function ReCptemp(){
global $empire,$public_r,$dbtbpre,$fun_r;
$pr=$empire->fetch1("select cptemp from ".GetTemptb("enewspubtemp")." limit 1");
$url="<?=\$url?>";
$pagetitle="<?=defined('empirecms')?\$public_diyr[pagetitle]:'".$fun_r['membercp']."'?>";
$temptext=ReplaceSvars($pr['cptemp'],$url,0,$pagetitle,$pagetitle,$pagetitle,$add,1);
//生成头尾文件
$r=explode("[!--empirenews.template--]",$temptext);
$file1=eReturnTrueEcmsPath()."e/data/template/cp_1.php";
//WriteFiletext($file1,AddCheckViewTempCode().$r[0]);
$tmplist= CustomNewsBq("cp0",$r[0]);
$tmplist= str_replace($url,'<?=\$url?>',$tmplist); //位置导航
WriteFiletext($file1,$tmplist);
$file2=eReturnTrueEcmsPath()."e/data/template/cp_2.php";
//WriteFiletext($file2,AddCheckViewTempCode().$r[1]);
$tmplist= CustomNewsBq("cp1",$r[1]);
WriteFiletext($file2,$tmplist);
}前面“CustomNewsBq”方法的代码中使用了“include($file);”,等于是把文件执行了一遍,所以文件中的“<?=\$url?>”就没有了,我这里先将 “$url="<?=\$url?>";”修改,执行完“CustomNewsBq”方法后,再执行一次替换
$tmplist= str_replace($url,'<?=\$url?>',$tmplist); //位置导航
成功解决信息反馈页面“现在的位置:”显示不出来的问题。
参考:https://www.daixiao360.cn/jc/619.html
模板修改
位置:插件》信息反馈管理》管理反馈分类

可以有多个反馈分类,通常其实一个就够了,修改默认反馈分类就可以了。
自动生成反馈表单
默认的生成代码生成的表单是表格形式,使用 table 标签,导致对移动端兼容适配很不好,所以将其改为 div 形式的。
修改 /e/class/com_functions.php,大约在688行
//自动生成反馈表单
function ReturnFeedbackBtemp($cname,$center,$mustenter){
global $empire,$dbtbpre,$fun_r;
//表单元素
$temp="<div style='width:85px;min-height:35px;float:left;clear: left;'>enews.name:</div><div style='min-height:35px;float:left;clear: right;'>enews.var</div>\r\n";
for($i=0;$i<count($center);$i++)
{
$v=$center[$i];
$fr=$empire->fetch1("select fform,fformsize,fvalue from {$dbtbpre}enewsfeedbackf where f='".RepPostVar($v)."' limit 1");
if($fr['fform']=="file")
{
$fsize=$fr[fformsize]?" size='".$fr[fformsize]."'":"";
$repform="<input type='file' name='".$v."'".$fsize." size='25' class='input'>";
}
elseif($fr['fform']=="textarea")
{
$fsr=explode(',',$fr[fformsize]);
$cols=$fsr[0]?$fsr[0]:60;
$rows=$fsr[1]?$fsr[1]:12;
$repform="<textarea name='".$v."' cols='".$cols."' rows='".$rows."' class='input' style='width:95%;max-width:600px;'>".$fr[fvalue]."</textarea>";
}
elseif($fr['fform']=="select"||$fr['fform']=="radio"||$fr['fform']=="checkbox")
{
$repform=GetBFFformSelect($fr['fform'],$v,$fr[fvalue],$fr[fformsize]);
}
else
{
$fsize=$fr[fformsize]?" size='".$fr[fformsize]."'":"";
$repform="<input name='".$v."' type='text' value='".$fr[fvalue]."'".$fsize." size='25' class='input'>";
}
//必填
$star="";
if(strstr($mustenter,",".$v.","))
{
$star="(<font color='red'>*</font>)";
}
$data.=str_replace("enews.var",$repform.$star,str_replace("enews.name",$cname[$v],$temp));
}
return "[!--cp.header--]\r\n<div style='width:100%; background:#DBEAF5;overflow: auto; padding: 10px;'>\r\n<form name='feedback' method='post' enctype='multipart/form-data' action='../../enews/index.php'>\r\n<input name='enews' type='hidden' value='AddFeedback'>\r\n".$data."<div style='width:85px;height:35px;float:left;clear: left;'></div><div style='height:35px;float:left;'><input type='submit' name='submit' value='".$fun_r['onsubmit']."' class='btn primary'> <input type='reset' name='Submit22' value='重置' class='btn' /></div>\r\n</form>\r\n</div>\r\n[!--cp.footer--]";
}本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/EmpireCMS/2021-08-05/713.html



