首页 | PHP资讯 | 技术专栏 | 资源共享 | PHP培训 | PHP职场 | 图书 | PHP ON WIN | PHP圈子 | PHPer学习大本营
返回列表 回复 发帖

ZF结合模板系统

ZF结合模板系统

毕竟我们程序员还不能兼作模板,不是会不会的问题..实在没那个艺术修养..= =!所以这玩意还是交给美工来做,view中虽然已经很少php代码了..但是毕竟还是有一些的,这对美工来说还是不小的难度,下面我们就看看ZF如何结合模板吧

  我们这里就用smarty作例子,为了更快的进入主题,我们就不重复多余的步骤了,我们下面的步骤是配合zf版blog demo实例教程的.

  我们先在views目录里面把smarty的libs目录扔进去,在views目录下写一个lib.php文件.作一些配置

<?
    include "libs/Smarty.class.php";
    define('__SITE_ROOT', '/project/views'); //这里要写是绝对路径,根据自己的情况填写吧
    $tpl = new Smarty();
    $tpl->template_dir = __SITE_ROOT . "/templates/";
    $tpl->compile_dir = __SITE_ROOT . "/templates_c/";
?>



  然后在views目录下创建templates目录和templates_c目录.创建一个index.tpl文件扔到templates目录里面,index.tpl的代码如下:

<head>
</head>
<body>
<h1>浏览帖子</h1>
<table>
    <tr>
        <th>Id</th>
        <th>标题 </th>
        <th>发帖时间 </th>
    </tr>
   
   {foreach name=post item=body from=$info}
   <tr>
   {foreach item=item from=$body}
      <td>{$item}</td>
   {/foreach}
   </tr>
  {/foreach}
   

</table>
       
</body>
</html>


  最重要的步骤,回到views目录.把原来的index.php的内容清空(请看zf版的blog 实例教程写的显示数据那个部分),换成下面的代码:

<?
include "lib.php";


$tpl->assign('info', $this->info);
$tpl->display("index.tpl");

?>


  phplib等模板就触类旁通了,自己试试就OK了.^_^

[ 本帖最后由 mikale 于 2006-6-14 13:27 编辑 ]

没写完?跟ZFW的结合哩?

明白了,是跟前面ZFW的BLOG教程配合着用的。

[ 本帖最后由 seraph 于 2006-6-14 13:18 编辑 ]
Stay Hungry. Stay Foolish.

TOP

我觉得直接用php做模板,也挺方便的。

TOP

原帖由 Bantu 于 2006-6-15 22:15 发表
我觉得直接用php做模板,也挺方便的。


你应该考虑到美工的难度问题..如果要一个美工最大程度的自由修改模板..有PHP代码不是好事情..

TOP

呵呵!支持一下!
我的Blog:liuming.aipx.cn

TOP

原帖由 mikale 于 2006-6-16 01:54 发表


你应该考虑到美工的难度问题..如果要一个美工最大程度的自由修改模板..有PHP代码不是好事情..


完全同意,不能因为程序员的方便而让美工/网页制作提高他们的难度和限制。
Stay Hungry. Stay Foolish.

TOP

呵呵,我也用ZF结合smarty,不过我不是通过ZF的类注册,而是在view中再引入的,相对代码就清晰一点,并能用到ZF view的一些功能。
View:只做与smarty赋值,不做显示
  1. <?php
  2. include_once("smarty.php");
  3. $smarty                =        new MySmarty();
  4. $smarty->assign('blogList',$this->blogList);
  5. $smarty->display('index.html');
  6. ?>
复制代码

TOP

同ZF结合可以如此
index.php里
require( SMARTY_DIR . 'Smarty.class.php' );
$tpl = new Smarty();
$tpl->template_dir = TPL_DIR;
$tpl->compile_dir = CACHE_DIR;
Zend::register('tpl', $tpl);

然后在Controller里:
$tpl = Zend::registry('tpl');

TOP

原帖由 Bantu 于 2006-6-15 22:15 发表
我觉得直接用php做模板,也挺方便的。



我比较支持这种。
ZF的VIEW即支持直接执行PHP语句,也支持一些简单的标签,比如foreach,endforeach,if,elseif等等。。。

另外我觉得smarty的标签和view里面的简单PHP语句对美工人员来说是没什么区别的。

PS:最近我作的一个比较大的项目中就采用了ZF,其中也没有使用smarty,phplib之类的其他模版。直接采用zf的view,感觉性能挺好的。
PHP面对对象
征友情链接

TOP

这个我要

TOP

返回列表