帝国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