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

简介: ecshop小京东的模板中用到了楼层的概念,看下了模板每个楼层都写了一下,用几个楼层就写了几段,个人感觉这样的有点冗余,不如做个函数,直接循环一下 有两种方法,第一种是:写个函数来实现楼层的显示,第二种是直接做一个模板函数,直接在页面上循环,第一种方法,本人觉得麻烦,就试了第二种,居然成功了 smarty2好像不支持 模板函数,下面提供一个官方的例子, {* 定义函数 *}

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}

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

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

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


后面附人个人微信二维码大笑


相关文章
|
3月前
|
编译器 C++
【C++练级之路】【Lv.11】模板(你真的了解模板特化和分离编译吗?)
【C++练级之路】【Lv.11】模板(你真的了解模板特化和分离编译吗?)
|
2月前
|
运维 前端开发 Serverless
函数计算产品使用问题之wordpress应用模板在什么地方
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
9月前
|
C++
《C++避坑神器·十六》函数默认参数和占位参数
《C++避坑神器·十六》函数默认参数和占位参数
49 0
|
10月前
|
编译器 C语言 C++
【C++】模板进阶:非类型模板参数&模板的特化&模板分离编译(下)
【C++】模板进阶:非类型模板参数&模板的特化&模板分离编译(下)
|
10月前
|
C语言 C++ 容器
【C++】模板进阶:非类型模板参数&模板的特化&模板分离编译(上)
【C++】模板进阶:非类型模板参数&模板的特化&模板分离编译(上)
|
编译器 C++
C++模板总结, 外加一些模板的特殊用法(语法), 比如非类型模板参数, 模板的特化全特化, 以及真正理解为何模板不可以分离编译
C++模板总结, 外加一些模板的特殊用法(语法), 比如非类型模板参数, 模板的特化全特化, 以及真正理解为何模板不可以分离编译
C++模板总结, 外加一些模板的特殊用法(语法), 比如非类型模板参数, 模板的特化全特化, 以及真正理解为何模板不可以分离编译
|
小程序 JavaScript 前端开发
零基础学小程序 —— 模板语法(二)
零基础学小程序 —— 模板语法(二)
210 0
零基础学小程序 —— 模板语法(二)
|
编译器 Linux C语言
【C++初阶:模板进阶】非类型模板参数 | 模板的特化 | 模板分离编译 上
【C++初阶:模板进阶】非类型模板参数 | 模板的特化 | 模板分离编译
179 0
【C++初阶:模板进阶】非类型模板参数 | 模板的特化 | 模板分离编译 上
|
编译器 C语言 C++
【C++初阶:模板进阶】非类型模板参数 | 模板的特化 | 模板分离编译 下
【C++初阶:模板进阶】非类型模板参数 | 模板的特化 | 模板分离编译
231 0
【C++初阶:模板进阶】非类型模板参数 | 模板的特化 | 模板分离编译 下
6个绝赞的模板网站,你想要的、这里都有!
提起PPT,应该都不陌生,作为Office三件套之一,它扮演者至关重要的角色。在学生时代如此,在工作之后更为重要。 以我为例,在学生时代没有意识到PPT的重要性,无论是日常开会讨论,还是毕业答辩,我都是随便找出一个简陋的默认版本,贴上一些文字、公式、图片就大功告成。做完一个PPT,前后也用不到半天时间。
6个绝赞的模板网站,你想要的、这里都有!