我们在济南网站建设中,通常用到的企业网站的cms,主要用的是beescms,但是现在这个cms是无法直接在前台直接写php代码的,这样就大大减少了网站前台标签的灵活性,我们只需要按照济南腾飞网络和你说如下几点修改,就可以让beescms前台标签支持php语句了,beescms前台支持php语句的方法:
第一、打开beescms根目录的include文件夹。
打开beescms根目录的include文件夹,找到里面的tpl.class.php文件,在48行左右找到private function tpl_replace()这个函数,将这整个函数修改为:
//替换模板
private function tpl_replace(){
$template=$this->template_file_content;//模板内容
$preg_arr[] = '/\{\/loop\}/isU';
$preg_arr[] = '/\{(lang|print)\s+(.*)\/\}/isU';//输出变量
$preg_arr[] = '/{cate\s+(.*)\s*\/}/isU';//栏目变量
$preg_arr[] = '/\{webinfo\s+(.*)\/\}/isU';//网站信息
$preg_arr[] = '/{position\s+(.*)\/}/isU';//当前位置
$preg_arr[] = '/\{if\s+(.*)\}/isU';//判断
$preg_arr[] = '/\{else\}/';//判断
$preg_arr[] = '/\{\/if\}/';//判断
$preg_arr[] = '/\{flash\s*(.*)\/\}/isU';//flash幻灯
$preg_arr[] = '/\{list_page\s+source=(.*)\/\}/isU';//列表分页
$preg_arr[] = '/\{body_page\s*\/\}/isU';//内容分页
$preg_arr[] = '/{path\s+(.*)\s*\/\}/isU';//路径
$preg_arr[] = '/{langs\s+(.*)\s*\/\}/isU';//语言
$preg_arr[] = '/{include\s+(.*)\s*\/\}/isU';//包含标签
$preg_arr[] = '/\{assign\s+source=(.*)\s+name=(.*)\/\}/isU';//assign输出
$replace_arr[] = "<?php \n}\n}?>";
$replace_arr[] = "<?php echo \\2;?>";
$replace_arr[] = '<?php echo $cate_info[\'cate_\\1_seo\'];?>';
$replace_arr[] = "<?php webinfo(\\1);?>";
$replace_arr[] = '<?php position(); ?>';
$replace_arr[] = "<?php if(\\1){?>";
$replace_arr[] = "<?php }else{?>";
$replace_arr[] = "<?php }?>";
$replace_arr[] = "<?php echo flash_ad('\\1');?>";
$replace_arr[] = "<?php echo \$\\1;?>";
$replace_arr[] = "<?php echo \$body_page;?>";
$replace_arr[] = "<?php cmspath('\\1');?>";
$replace_arr[] = "<?php langs('\\1');?>";
$replace_arr[] = "<?php \$this->display('\\1',1);?>";
$replace_arr[] = "<?php \$\\2=\\1;?>";
ksort($preg_arr);
ksort($replace_arr);
$template = preg_replace($preg_arr,$replace_arr,$template);
//循环标签
$template=$this->made_tag($template,'loop');
return $template;
}
然后继续在这个文件里面找到private function made_tag($tpl,$tag_type)这个函数,将这整个函数替换为:
//处理标签
private function made_tag($tpl,$tag_type){
$preg_str='/{'.$tag_type.'(.*)}/isU';
preg_match_all($preg_str,$tpl,$rel);
if(!empty($rel[1])){
$tag_value='';
foreach($rel[1] as $k=>$v){
$val=preg_split('/\s/',trim($v));//标签属性
if(!empty($val)){
$tag_value2='';
foreach($val as $key=>$value){
if(!empty($value)){
$value_tag_arr=explode('=',$value,2);//属性名称和值
$tag_value2[$value_tag_arr[0]]=empty($value_tag_arr[1])?'':$value_tag_arr[1];
}
}
$tag_value[]=$tag_value2;
}
}
if(!empty($tag_value)){
//获取标签值
$replace=$this->get_tag_value($tag_value,$tag_type);
}
return str_replace($rel[0],$replace,$tpl);
}else{
return $tpl;
}
}
然后保存,到网站的后台更新一下缓存,然后你在去前台写一个php的语句试试。
前台的php语句格式应该是这样:
<?php
//这里是php的语句//
?>
这就是实现beescms前台支持php语句的方法。大家如果有什么不明白的地方可以联系下我们,济南网站建设公司-济南腾飞网络,大家可以一起交流进步。本文由济南腾飞网络发布,转载请注明。http://m.0531soso.com