CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

关于Smarty中{php}{/php}标签的使用方法??

楼主igenus(徘徊边缘)2004-03-04 00:19:29 在 Web 开发 / PHP 提问

困饶了我近一个星期的问题.  
   
  手册上写到:  
  {php}  
  //   including   a   php   script   directly  
  //   from   the   template.  
  include("/path/to/display_weather.php");  
  {/php}  
   
  写不得不详细。现在,我需要实现这样的功能。  
   
  --------------------------  
  test.php  
  --------------------------  
  class   testSmarty{  
  ...  
          function   testSmarty(){  
                    $ths->init();  
          }  
          function   doAction(){  
                    return   "yes";  
          }  
          function   init(){  
                  $this->iSmarty->display('test.tql');  
          }  
  ...      
  }  
  $t   =   new   testSmarty();  
   
   
  ------------------------  
  test.tql  
  --------------------------  
   
  <html>  
  <head>  
  </head>  
  <body>  
  {php}  
  $this->doAction();  
  {/php}  
  </body>  
  </html>  
   
  ----------------  
   
  即在模版中执行一个function.  
   
  但一直没有成功。请各位老大指点指点。  
   
  谢了。  
   
   
   
  问题点数:20、回复次数:12Top

1 楼igenus(徘徊边缘)回复于 2004-03-23 12:42:05 得分 0

lownr(廖宇雷)     您说得非常不错:)  
   
   
  但我现在要实现的功能是:  
   
  通过smarty生成静态文件。  
   
  而模版中{php}标签里定义的内容是不确定的。比如:$getNews(3,4,5,6,7)或者$getNews(5,4,2,5,6)。  
   
  之所以想要这种设计是想在制作模版的时候给用户更多的选择。总不能在处理templates之前就将所有的可能性的结果都计算出来吧。这样子效率就....不敢想像了。Top

2 楼wubai250(新版日语mp3)回复于 2004-03-23 14:01:55 得分 20

<{foreach   from=$array2   item=item   key=key}>  
                                          <tr>  
                                              <td><div   align="center"><{$item.id}></div></td>  
                                              <td><div   align="center"><{$item.name}></div></td>  
                                              <td><div   align="center"><{$item.regdate}></div></td>  
                                              <td><{$item.so_unitprice}></td>  
                                              <td><div   align="center"><a   href='productedit.php?act=del&id=<{$item.id}>'>删除</a></div></td>  
                                              <td><div   align="center"><a   href='productedit.php?act=mod&id=<{$item.id}>'>修改</a></div></td>  
                                          </tr>  
      <{/foreach}>  
   
  我个人目前为止还不打算用Smarty  
  原因如下:  
  Smarty的目的就是让你把业务逻辑代码从HTML模板中分离出来[引用lownr(廖宇雷)],这句话说的真是不错,  
  但向上面写的东西,是呼"真的"分开了,可仔细想想和直接用php写的代码没有什么区别  
   
  "<{foreach   from=$array2   item=item   key=key}>"可以说是一个循环,类似while  
  "<{$item.id}>"   一些变量输出了,类是<?=?>  
   
  如果将以上代码完全用PHP,会是这样  
  <?   foreach($array2   as   $key=>$value):?>  
                                          <tr>  
                                              <td><div   align="center"><?=$value?><div></td>  
                                          ...      
                                          </tr>  
  <?endforeach?>  
   
  居然在html中可以用smarty的流程控制,和自己的语法,编译之后再转成php的语法,有点晕!  
   
  还有一点是关于文件修改的问题  
  如果需求有改动怎么办?是不是只修改模板文件就可以了吗?不见得吧!  
  如要在模板文件中加一数据项,模板处理文件也要修改  
   
   
  因为在使用一种工具时,主要是看它给人们带来了什么便利,我认为smarty没有给我带来什么便利,所以一直没有用smarty.就像以前我为什么很喜欢用htmlhelp一样.  
   
  最后还有一点,模板文件和模板文件处理文件谁来写  
  现在MVC不是很流行吗(我想模板技术也有之意)  
   
  开发者角色                       相关系统逻辑                   职责    
  网页设计人员                   View视图/界面                 设计所有用户界面的网页模板。    
  控制流程开发人员           Controller控制/流程     编写系统流程中的所有PHP页面。    
  商业逻辑开发人员           Model模型/逻辑               开发系统设计中规定的各个类(其中的方法)。    
   
  在现实中控制流程开发人员,商业逻辑开发人员往往是一个人或一些人  
  网页设计人员当然负责页面设计了,他们不可能会类似"<{foreach   from=$array2   item=item   key=key}>"  
  的编写.  
   
  所以模板文件和模板文件处理文件不可能是由"网页设计人员"来写的  
   
  最可怕的一件事可能是突然"网页设计人员"说他要所页面重新做一下,这个时候会怎么样,  
  模板文件和模板文件处理文件可以都要做修改,只不过是改多或改少的问题  
   
  模板文件和模板文件处理文件综合在一起可以说就是最初的PHP文件了,使用模板技术看起来只不过是将一个问题分成两个问题来解决了  
   
  也上也许是偏面之谈!  
   
  想请这里最有威望的唠叨说一说吧!  
   
  Top

相关问题

  • 求tabpage标签中,文字换行的方法。谢谢。
  • pagecontrol用什么方法可以使标签变成不可用?
  • ●●●关于JavaBean标签,它如何知道调用JavaBean里的哪个方法?●●●
  • 使用自定义标签将结果集显示到页面!(推荐方法)
  • vb打印,PrintForm方法 文本框和标签打出来的字不一样?
  • 要用bean:write标签输出一个非bean的类的方法能行吗
  • 有知道如何让BCB中文本标签竖排的方法吗
  • 求 "JScript.Encode" 的php decode 方法。
  • vb中有没有实现像ultraedit那种标签式的窗体的方法或者控件?
  • strusts中的formbean是不是一定要为每个form中的标签定义getset方法

关键词

  • php

得分解答快速导航

  • 帖主:igenus
  • wubai250

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo