在济南网站建设中,经常会遇到有些客户需要做商城类网站,在如今的商城类网站上面最受欢迎和安全度最高的要数ecshop和shopex这两个程序了,其中ecshop是免费开源的系统,而shopex属于半开源系统,shopex的核心php文件都是通过加密后发布的,所以如果我们想通过自己的需求对网站进行修改或者二次开发的时候,对于加密的程序会造成很大的不便,甚至是无法进行二次开发和升级的工作。ecshop的强大性也被众多人所认可,从原来的ecshop1.0到现在的ecshop2.7.3已经经历了多个版本的升级的完善,我们这篇文章讲解在ecshop二次开发中,常用的前台标签的书写方法。
一、echsop循环指定次数,判断循环次数,输出指定内容
<ul class="lh">
<!-- {if $brand_list} -->
<!-- {foreach from=$brand_list item=brand name="brand_foreach"} -->
{if $smarty.foreach.brand_foreach.index <= 3}
<!-- {if $brand.brand_logo} -->
<li>
<a href="{$brand.url}" title="{$brand.brand_name|escape:html}" target="_blank">
<img width="175" height="45" alt="{$brand.brand_name|escape:html}" src="data/brandlogo/{$brand.brand_logo}" class="err-product">
</a>
</li>
<!-- {/if} -->
{/if}
<!-- {/foreach} -->
<!-- {/if} -->
</ul>
通过上面的语句我们能够看到,使用index的属性,可以判断循环的次数,不过这里大家需要注意的是,使用index属性必须要制定循环的name值,然后通过name值的index属性进行判断,很多人在使用的时候往往会忽略了指定name值,导致无法进行循环次数的判断。
二、echsop标签中增加php语句,进行自由判断输出
<?php
$this=1;
?>
<!--{foreach from=$best_goods item=goods name=goods}-->
<li class="">
<a title="{$goods.name|escape:html}" href="{$goods.url}" target="_blank" class="thumb">
<img width="175" height="228" alt="{$goods.name|escape:html}" src="{$goods.thumb}">
</a>
<a href="{$goods.url}" target="_blank" class="subject">{$goods.short_style_name}</a>
<div class="prices"><strong>{$goods.shop_price}</strong></div>
</li>
{if $this%2==0}<div class="line"></div>{/if}
<?php
$this++;
?>
<!--{/foreach}-->
通过上面的语句我们能够看到在ecshop的前台页面中也可以加入php语句,灵活使用,可以完成自己项目需求的许多工作,无需对php文件的修改,可以方便日后对echsop系统的升级和维护工作。这里也需要注意一点问题,那就是php标签必须成对出现,而且使用循环增加的时候,记得要在循环语句内部加入变量的递增语句。
三、echsop标签中使用last和first判断循环是否为第一条和最后一条
<!--{foreach from=$promotion_goods item=goods name="promotion_foreach"}-->
{if $smarty.foreach.promotion_foreach.index <= 4}
<li {if $smarty.foreach.promotion_foreach.last} style="margin-right:0px;"{/if}>
<p class="r-img">
<a target="_blank" href="{$goods.url}"><img alt="{$goods.name|escape:html}" src="{$goods.thumb}"></a>
<span class="p1 p2">济南网站建设</span>
</p>
<p class="r-desc"><a target="_blank" href="{$goods.url}">{$goods.short_name|escape:html}</a></p>
<p class="r-price"><span>济南网站建设:</span><strong>{$goods.promote_price}</strong>
</p>
</li>
{/if}
<!--{/foreach}-->
在echsop的模板标签中,判断循环第一条或者最后一条可使用last和first的方法进行判断,使用此方法进行判断的时候,也需要制定循环数组的name属性,通过name值的first或者last来进行具体的输出操作。
四、使用insert语句动态加载指定模板文件,然后对文章进行输出和判断操作
{insert_scripts files='transport.js,utils.js'}
<div id="ECS_COMMENT"> {* ECSHOP 提醒您:动态载入comments_list.lbi,显示评论列表和评论表单 *}{insert name='comments' type=$type id=$id}</div>
以上代码是ecshop中评论文件自带的代码,为什么评论的地方要使用insert的语句,我们在实际的网站建设中在什么情况下需要使用insert语句,在这里使用insert语句的目的是为了得到当前栏目或者商品的ID值,而且评论的列表和评论表单属于单独的页面显示,这时候就需要我们通过insert语句来进行加载,这样可以很好的对所需栏目ID值的传递,不用过于复杂的去书写大量代码,获取ID值了。
ecshop常用语法还有很多,这里我们只列出几个比较实用和常见的几点,具体在实际应用中应该使用什么方法去操作和书写,应该根据自己网站的功能需求去选择的具体的方法,当然如果功能需求比较特殊,就需要对ecshop进行二次开发的操作了。
一、echsop循环指定次数,判断循环次数,输出指定内容
<ul class="lh">
<!-- {if $brand_list} -->
<!-- {foreach from=$brand_list item=brand name="brand_foreach"} -->
{if $smarty.foreach.brand_foreach.index <= 3}
<!-- {if $brand.brand_logo} -->
<li>
<a href="{$brand.url}" title="{$brand.brand_name|escape:html}" target="_blank">
<img width="175" height="45" alt="{$brand.brand_name|escape:html}" src="data/brandlogo/{$brand.brand_logo}" class="err-product">
</a>
</li>
<!-- {/if} -->
{/if}
<!-- {/foreach} -->
<!-- {/if} -->
</ul>
通过上面的语句我们能够看到,使用index的属性,可以判断循环的次数,不过这里大家需要注意的是,使用index属性必须要制定循环的name值,然后通过name值的index属性进行判断,很多人在使用的时候往往会忽略了指定name值,导致无法进行循环次数的判断。
二、echsop标签中增加php语句,进行自由判断输出
<?php
$this=1;
?>
<!--{foreach from=$best_goods item=goods name=goods}-->
<li class="">
<a title="{$goods.name|escape:html}" href="{$goods.url}" target="_blank" class="thumb">
<img width="175" height="228" alt="{$goods.name|escape:html}" src="{$goods.thumb}">
</a>
<a href="{$goods.url}" target="_blank" class="subject">{$goods.short_style_name}</a>
<div class="prices"><strong>{$goods.shop_price}</strong></div>
</li>
{if $this%2==0}<div class="line"></div>{/if}
<?php
$this++;
?>
<!--{/foreach}-->
通过上面的语句我们能够看到在ecshop的前台页面中也可以加入php语句,灵活使用,可以完成自己项目需求的许多工作,无需对php文件的修改,可以方便日后对echsop系统的升级和维护工作。这里也需要注意一点问题,那就是php标签必须成对出现,而且使用循环增加的时候,记得要在循环语句内部加入变量的递增语句。
三、echsop标签中使用last和first判断循环是否为第一条和最后一条
<!--{foreach from=$promotion_goods item=goods name="promotion_foreach"}-->
{if $smarty.foreach.promotion_foreach.index <= 4}
<li {if $smarty.foreach.promotion_foreach.last} style="margin-right:0px;"{/if}>
<p class="r-img">
<a target="_blank" href="{$goods.url}"><img alt="{$goods.name|escape:html}" src="{$goods.thumb}"></a>
<span class="p1 p2">济南网站建设</span>
</p>
<p class="r-desc"><a target="_blank" href="{$goods.url}">{$goods.short_name|escape:html}</a></p>
<p class="r-price"><span>济南网站建设:</span><strong>{$goods.promote_price}</strong>
</p>
</li>
{/if}
<!--{/foreach}-->
在echsop的模板标签中,判断循环第一条或者最后一条可使用last和first的方法进行判断,使用此方法进行判断的时候,也需要制定循环数组的name属性,通过name值的first或者last来进行具体的输出操作。
四、使用insert语句动态加载指定模板文件,然后对文章进行输出和判断操作
{insert_scripts files='transport.js,utils.js'}
<div id="ECS_COMMENT"> {* ECSHOP 提醒您:动态载入comments_list.lbi,显示评论列表和评论表单 *}{insert name='comments' type=$type id=$id}</div>
以上代码是ecshop中评论文件自带的代码,为什么评论的地方要使用insert的语句,我们在实际的网站建设中在什么情况下需要使用insert语句,在这里使用insert语句的目的是为了得到当前栏目或者商品的ID值,而且评论的列表和评论表单属于单独的页面显示,这时候就需要我们通过insert语句来进行加载,这样可以很好的对所需栏目ID值的传递,不用过于复杂的去书写大量代码,获取ID值了。
ecshop常用语法还有很多,这里我们只列出几个比较实用和常见的几点,具体在实际应用中应该使用什么方法去操作和书写,应该根据自己网站的功能需求去选择的具体的方法,当然如果功能需求比较特殊,就需要对ecshop进行二次开发的操作了。