在做模板使用中,如果没做一个文件的模板,会报缺模板文件,我是这样解决的

1367次浏览 更新日期:2021-02-02 16:48:07 分类:程序交流 评论:3

在框架功能文件global.func.php中修改 template功能如下

function template($module = '', $template = 'index', $theme = ''){
 if(!$module) $module = 'index';
 $template_c = YZMPHP_PATH.'cache'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR;
 $theme = !$theme ? (!defined('MODULE_THEME') ? C('site_theme') : MODULE_THEME) : $theme;
 $template_path = APP_PATH.$module.DIRECTORY_SEPARATOR.'view'.DIRECTORY_SEPARATOR.$theme.DIRECTORY_SEPARATOR;
    $template_default_path = APP_PATH.$module.DIRECTORY_SEPARATOR.'view'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR;
    $filename = $template.'.html';
 $tplfile = $template_path.$filename;
 if(!is_file($tplfile)) {
  $tplfile=$template_default_path.$filename;
        $template_path = $template_default_path;
        if(!is_file($tplfile)) {
            $template = APP_DEBUG ? str_replace(YZMPHP_PATH, '', $tplfile) :  name($tplfile);
            showmsg($template.L('template_does_not_exist'), 'stop');
        }
 }
 if(!is_dir(YZMPHP_PATH.'cache'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR)){
  @mkdir(YZMPHP_PATH.'cache'.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR, 0777, true);
 }
 $template =  name($template).'_'.md5($template_path.$template);
 $template_c = $template_c.$template.'.tpl.php';
 if(!is_file($template_c) || filemtime($template_c) < filemtime($tplfile)) {
  $yzm_tpl = yzm_ ::load_sys_class('yzm_tpl');
  $compile = $yzm_tpl->tpl_replace(@file_get_contents($tplfile));
  file_put_contents($template_c, $compile);
 }
 return $template_c;
}


我来说两句
  • zylmc
    zylmc 3年前
    改这个文件初衷就是没做的模板,可以用系统默认模板,提高灵活性。毕竟好多人不会做,要会做的就会做全套,如果系统模板做成自适应,应该用的人更多
    1
    回复
  • yzmcms
    yzmcms 官网认证 3年前
    没有做的模板本应该报不存在,更不要修改系统文件
    0
    回复
  • oolaile
    oolaile 3年前
    试试
    0
    回复
作者信息
发布见解
发内容 回顶部