帝国CMS7.5 信息反馈页面模板修改,让控制面板模板头尾也支持标签调用的方法
微wx笑
2021-08-05【帝国CMS】
157
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)
=============================
在这之前添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //标签替换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]);
改为
1 2 | $tmplist = CustomNewsBq ( "cp0" , $r [0]); WriteFiletext( $file1 , $tmplist ); |
找到
WriteFiletext($file2,AddCheckViewTempCode().$r[1]);
改为
1 2 | $tmplist = CustomNewsBq ( "cp1" , $r [1]); WriteFiletext( $file2 , $tmplist ); |
都在 ReCptemp 方法中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | //更新控制面板模板 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更新,解决位置导航问题
完整代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //更新控制面板模板 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”方法后,再执行一次替换
1 | $tmplist = str_replace ( $url , '<?=\$url?>' , $tmplist ); //位置导航 |
成功解决信息反馈页面“现在的位置:”显示不出来的问题。
参考:https://www.daixiao360.cn/jc/619.html
模板修改
位置:插件》信息反馈管理》管理反馈分类
可以有多个反馈分类,通常其实一个就够了,修改默认反馈分类就可以了。
自动生成反馈表单
默认的生成代码生成的表单是表格形式,使用 table 标签,导致对移动端兼容适配很不好,所以将其改为 div 形式的。
修改 /e/class/com_functions.php,大约在688行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | //自动生成反馈表单 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