新手接触几个不明白的地方谢谢解答

#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