#1 youngqj
function index(){
$tpl=$this->spArgs("template","a");
$gb=spClass('guestbook');
$smt=$this->$rs=$gb->findAll();
$this->display("{$tpl}/index.html");
}
问题1:难道必须是模版下面的A文件夹吗?我帮模版文件放到template下 然后写
function index(){
$tpl=$this->spArgs("template");
$gb=spClass('guestbook');
$smt=$this->$rs=$gb->findAll();
$this->display("index.html");
}
不能运行。
问题二 按照手册说明那样使用smarty 模版
无法foreach 出数组
谁能帮我解决一下。
问题三。请问如何 使用其他模版引擎 如xintemplate
谢谢!
2010-04-06 11:44:17
#2 jake的马甲
1. 要看看你的配置,比如
'view' => array(
'enabled' => TRUE, // 开启视图
'config' =>array(
'template_dir' => APP_PATH.'/tpl', // 模板目录
'compile_dir' => APP_PATH.'/tmp', // 编译目录
'cache_dir' => APP_PATH.'/tmp', // 缓存目录
'left_delimiter' => '<{', // smarty左限定符
'right_delimiter' => '}>', // smarty右限定符
),
)
那么tpl/index.htm的显示方式就是$this->display("index.htm");
如果是目录 tpl/mydir/index.htm 的显示方式是 $this->display("mydir/index.htm");
2. 在模板中使用变量的方法:
http://speedphp.com/post/view-smarty.html你的模板需要用到的变量是$smt,所以在控制器内给$smt赋值的方法应该是:
$this->smt = $gb->findAll();
看上面的代码,你是给模板的$rs赋值了。
3. xingtemplate这些模板引擎,目前还有些难题,因为这些模板引擎的变量处理方法不是很规范,扩展性也不强,所以很难在非全局的地方来引用变量。这个问题我们会着手解决(在未来sp将会支持phpnew或xing,目前在考虑当中。),不过还是推荐你使用smarty或是templatelite这些比较多人使用并且规范的模板引擎,那对你以后的开发来说,是更有利的事情。
2010-04-06 12:06:56