1、在解释型的模板中(比如phplib template)使用块或子模板
   在编译型的模板中还可构造功能函数2、在解释型的模板中中判断是在php程序里的
   在编译型的模板中已经提供了流程控制标记个人认为,某些可能散布于多个页面的部件比如“文章排行”、“搜索框”、“登陆框”等。其html代码还是应该完整的出现在相应的模板中,否则在编辑模板时你将不能看到完整的效果。

解决方案 »

  1.   

    正是考虑可视性,所以准备放在模板里,但某些可能散布于多个页面的部件比如“文章排行”、“搜索框”、“登陆框”等岂不需要每个模板都做一个了吗?1、解释型的用子模板,会造成模板文件太多太杂。
       如果用编译型的构造函数,html代码就进了php了。而且美工进行的时候就不方便。2、编译型模板采用流程控制,会破坏模板可读性,是否?
      

  2.   

    1、解释型的用子模板,会造成模板文件太多太杂。
    此话正确,子模板不在主模板文件中将影响模板的可视性   如果用编译型的构造函数,html代码就进了php了。而且美工进行的时候就不方便。
    否,存在于功能函数中的少量html代码,不会、也不可能影响到美工2、编译型模板采用流程控制,会破坏模板可读性,是否?
    是会有一点,但可以用style的display属性来隐藏部分成员来解决
    <!-- IF name -->
    {aaaa}
    <!-- ELSE --->
    {bbbb}
    <!-- ENDIF -->
    这样的模板在编辑时会显示
    {aaaa}{bbbb}而
    <style>
    <!-- IF dev -->
    .dev { display:none }
    <!-- ENDIF -->
    </style>
    <!-- IF name -->
    {aaaa}
    <!-- ELSE --->
    <span class="div">{bbbb}</span>
    <!-- ENDIF -->
    这样的模板在编辑时只会显示
    {aaaa}
      

  3.   

    如果用phplib可以在里面写一个判断函数,我试着写了一个,不过只能做简单的判断,if、else
      

  4.   

    SmartTemplate的<!-- IF name -->是否支持多重嵌套?
      

  5.   

    phplib 有没有<!-- IF name -->的流程控制,怎么没有看过相关的资料提及。有的话,应该怎样用,给个例子吧。
      

  6.   

    由于英文不行,都是用金山词霸弄得,凑合着看
    //流程控制,$target模板文件, $name判断标识,$condition判断条件, $value要判断的值
    function check_flow($target, $name, $value='', $condition=true)
    {
    $str = $this->get_var($target);
    if($value==$condition)
    {
    $reg[] = "/<!--\s+else $name\s+-->(.*)\n\s*<!--\s+\/if $name\s+-->\r\n/sm";
    $reg[] = "/<!--\s+if $name\s+-->\r\n/isU";
    $result = preg_replace($reg,"",$str);
    return $result;
    }
    else
    {
    $reg[] = "/<!--\s+if $name\s+-->(.*)\n\s*<!--\s+else $name\s+-->\r\n/sm";
    $reg[] = '/<!--\s+\/if  $name\s+-->\r\n/isU';
    $result = preg_replace($reg,"",$str);
    return $result;
    }
    }
      

  7.   

    回复人: erldy(我还是我) ( ) 信誉:100  2004-11-09 11:32:00  得分: 0  
     
     
       phplib 有没有<!-- IF name -->的流程控制,怎么没有看过相关的资料提及。有的话,应该怎样用,给个例子吧。
      
     
    流程控制是smartemplate里面的。