ecshop模板教程-模板动作结合结构分析

2011-09-07 23:35 来源:www.chinab4c.com 作者:ecshop专家

     很长时间没有讲ecshop模板教程了。最近再忙,也会抽时间出来写写教程的,我们以前讲了一些ecshop模板教程的变量处理,循环和判断。后来很多朋友反应模板动作结合结构分析特别复杂,根本搞不清楚该如何处理。而且很多ecshop模板非常庞大,里面很多的if else很难让人看明白。

    首先,我们讲述的是ecshop的模板,很多模板他都是多个动作组合在一个模板文件里面。我们比如ecshop购物车把。他就是通过flow.php里面的一些判断,通过$step变量,来将所有购物车中的动作页面都写在ecshop模板文件flow.dwt里面。

   ecshop的模板有个特征,就是ecshop模板分成三个部分,头部page_header.lbi,底部page_footer.lbi,以及ecshop模板{if}{else}中间的一些判断。ecshop将一个页面的所有动作对应的HTML都写在一个模板里面。有个好处就是集中管理,不好的地方就是文件结构复杂。

    首先我们看flow.php,

    if (!isset($_REQUEST['step']))
{
    $_REQUEST['step'] = "cart";
}
 

   这个$step是主要的,我们可以看到在ecshop购物车页面,我们可以看到底部文件$smarty->assign('step',            $_REQUEST['step']);,这个就是为了把$step传到模板中去,不同的动作进行区别判断。

    先看flow.dwt里,第一个动作是显示ecshop默认的购物车的功能。 <!-- {if $step eq "cart"} -->,他表示对应着flow.php里面的cart动作。   <!-- {if $step eq "consignee"} -->这个动作就对应flow.php?step=consignee动作。

   从这里我们可以看出,ecshop程序中的每个动作,都会对应模板里的{if}{else}动作。这样的话,有了这个ecshop模板规律,我将更好的掌握和应用ecshop的一些模板规则去进行新的ecshop模板开发。同样,在ecshop每个不同的动作里面,你还可以通过js包含的形式包含该动作所需要支持的JS。比如这个{insert_scripts files='region.js,utils.js'}。

   记住,每个ecshop模板的动作最前面,先必须通过类似方式来初始化ecshop中的js变量。

   {foreach from=$lang.flow_js item=item key=key}
          var {$key} = "{$item}";
          {/foreach}

          {literal}

 来源:http://www.chinab4c.com