ecshop小京东模板切换到smarty3.13之模板函数,用模板函数替换楼层

ecshop小京东的模板中用到了楼层的概念,看下了模板每个楼层都写了一下,用几个楼层就写了几段,个人感觉这样的有点冗余,不如做个函数,直接循环一下

有两种方法,第一种是:写个函数来实现楼层的显示,第二种是直接做一个模板函数,直接在页面上循环,第一种方法,本人觉得麻烦,就试了第二种,居然成功了


smarty2好像不支持 模板函数,下面提供一个官方的例子,

{* 定义函数 *}
{function name=menu level=0}
<ul class="level{$level}">
{foreach $data as $entry}
{if is_array($entry)}
<li>{$entry@key}</li>
{call name=menu data=$entry level=$level+1}
{else}
<li>{$entry}</li>
{/if}
{/foreach}
</ul>
{/function}


 
{$menu = ['item1','item2','item3' => ['item3-1','item3-2','item3-3' =>['item3-3-1','item3-3-2']],'item4']}
 
{call name=menu data=$menu}
{call menu data=$menu} {* 简写*}


用在小京东的模板上我们可以模仿一下

      {function name=louceng }


  <!-- TemplateBeginEditable name="商品分类楼层1" -->
<!-- #BeginLibraryItem "/library/cat_goods.lbi" -->

  {$child_cat=get_child_cat({$cateid}, 3)}

 <!-- #EndLibraryItem -->



{/function}
然后写上调用就完成了,后边这个可以写一个数组
      {$lou =4}
      {call louceng  cateid=$lou}

对于原来的模板,我有些看不懂,因为原来的模板是可以在后台配置的,关于配置那个地方的功能,有些复杂,

个人意见,对于商城的运营,还是需要技术团队来支持的,一些小的功能还是没有必要做的太复杂,

有时直接写数组与配置文件还是必要的,有于一小点的便利,可能会引入很多代码,有时这样的代价太大,没有必要


后面附人个人微信二维码ecshop小京东模板切换到smarty3.13之模板函数,用模板函数替换楼层

ecshop小京东模板切换到smarty3.13之模板函数,用模板函数替换楼层

上一篇:Spring Cloud Alibaba IDE 工具重大升级


下一篇:英特尔升级至强产品线 面向云环境提供更多CPU选项