开发的第一步是搭建前后台系统。搭建前台系统的时候新建了LoginController控制器和登录界面View/Login/index.tpl。模板文件中需要引入js和css文件,这里想通过在配置文件中创建模板变量的方式简化脚本文件的引入,但在创建的过程中遇到了问题。
Home/Conf/config.php <?php return array( ‘TMPL_PARSE_STRING‘ => array( ‘__CSS__‘ => ‘__PUBLIC__/Home/css‘, ‘__JS__‘ => ‘__PUBLIC__/Home/js‘, ‘__IMG__‘ => ‘__PUBLIC__/Home/img‘, ), );
View/Login/index.tpl <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>微博系统——登录界面</title> <script type="text/javascript" src="__JS__/jquery.js"></script> <script type="text/javascript" src="__JS__/jquery.ui.js"></script> <script type="text/javascript" src="__JS__/login.js"></script> <link rel="stylesheet" href="__CSS__/jquery.ui.css"> <link rel="stylesheet" href="__CSS__/login.css"> </head> <body> </body> </html>
结果__JS__等几个变量在模板文件中无法正确解析。原因是__PUBLIC__是模板替换变量,只有出现在模板文件中时才会被替换为对应的字符串。而__ROOT__、__APP__、__MODULE__、__CONTROLLER__、__ACTION__、__SELF__既是模板替换变量,也是系统常量,它们可以应用在模板文件和配置文件中,所以这里可以用__ROOT__
Home/Conf/config.php
<?php return array( ‘TMPL_PARSE_STRING‘ => array( ‘__CSS__‘ => __ROOT__.‘/Public/Home/css‘, ‘__JS__‘ => __ROOT__.‘/Public/Home/js‘, ‘__IMG__‘ => __ROOT__.‘/Public/Home/img‘, ), );
这里还可以用系统常量MODULE_NAME代替模块名称Home,改进后的版本如下:
Home/Conf/config.php <?php return array( ‘TMPL_PARSE_STRING‘ => array( ‘__CSS__‘ => __ROOT__.‘/Public/‘.MODULE_NAME.‘/css‘, ‘__JS__‘ => __ROOT__.‘/Public/‘.MODULE_NAME.‘/js‘, ‘__IMG__‘ => __ROOT__.‘/Public/‘.MODULE_NAME.‘/img‘, ), );
时间: 2024-10-20 12:04:40