ECShop这个代码怎么理解啊?{insert name='getlist_ads' id=1 num=5}

这个是ECshop首页index.dwt中首页导航下面几个切换广告图的代码。

<div class="mfpSlide">
<div class="slideBox main ">
{insert name='getlist_ads' id=1 num=5}
</div>
</div>

谁能给分析分析,这个是怎么一个执行的逻辑啊?怎么通过这些去找它们是怎么找函数、文件等的。
比如说程序看到这个的时候,是怎么一步步(先调用什么,后调用什么之类的)的到最后显示成首页的那几个滚动的广告条的。

类似的还有这几个:
1、
{insert name='ads' id=2 num=1}
------------------------------------------------------------------
2、
{foreach from=$order item=order}
<li>
<p class="lip1">{$order.user_name|truncate:8:"***":true}({$order.usercity}){$order.randtime}分钟前购买了{$order.goods_name}</p>
<p class="lip2"><a target="_blank" href="{$order.goods_url}">{$order.goods_name}</a></p>
</li>
{/foreach}
------------------------------------------------------------------

谢谢了。

先说一句,什么用惯框架的人不容易懂,扯淡。
现在回答可能有点晚,不过,就当是给其他人一个参考吧。

{insert name='getlist_ads' id=1 num=5}
意思是ecshop获取广告名称为getlist_ads,且广告位id为1,该广告位置的广告数量为5.
ecshop它能识别【insert】是广告的名称,是因为,当我们新建一个广告位时,会出现以下模板
<table cellpadding="0" cellspacing="0">
{foreach from=$ads item=ad}
<tr><td>{$ad}</td></tr>
{/foreach}
</table>
我们会看到这有其中一句,from=$ads,这个ads就是insert识别到的名称,而怎么知道他是广告,后面的 item=ad,意思就表明了,项目的类型为广告。
这个就是为何ecshop能识别这是一句广告的原因。
而我们用insert的时候,需要对应新建广告位的那个from=$xxx,为的就是让ecshop识别它是从何而来的。
{insert name='ads' id=2 num=1}

同理,这个ads直接就对应了新建广告位时的默认名称。
而{foreach from=$order item=order}
这句就不好说啦,例如order这是一个订单参数,只有预先定义了相关的order功能,这才会有效果。
不过也解释一下吧,
from=$order查找order这个参数,类型定义为order(订单),$order.user_name调用预先定义好的用户者的订单,truncate是数据库的事情,不解释。
开始=====
{$order.user_name|truncate:8:"***":true},整句的意思是,调用订单者的名称并且删除订单者的名称前八个字符,用***代替。就是我们常见的:恭喜用户137******37获得大奖。

{$order.usercity}订单者的城市名称。

{$order.randtime}这个本应该是随机时间的,不知道定义,不好说。

{$order.goods_name}订单的商品名称。googs代表商品

{$order.goods_url}订单所对应的商品的地址

结束=====
这个效果大概是
*********尔康 北京 30分钟前购买了 充气的娃娃
*********日天 东京 32分钟前购买了 漏气的煤气罐
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-03
第一个,是在那个位置调用了广告位,广告1个,名字为ads;
第二个,循环调用订单表商品追问

功能我知道。
我想知道的是ecshop程序去解读这个标签的流程是什么。当ECShop的源程序看到{insert name='getlist_ads' id=1 num=5}这样一段代码的时候,它会做哪些事情?它怎么知道是调用哪个文件的哪段代码去执行?

谢谢!

第2个回答  2015-07-08
ECSHOP是面向过程,是原生态,用惯框架的人不容易懂

{insert name='ads' id=2 num=1}
是一个标签 等效于 insert into {前缀}ads (id ,num) value(2,1); 的MYSQL语句
第二个是循环标签.
ECSHOP 不分模版,控制器,没什么哪里调用
要不你把整个类截图发来看看

ECShop这个代码怎么理解啊?{insert name='getlist_ads' id=1 num=5}
{insert name='getlist_ads' id=1 num=5} 意思是ecshop获取广告名称为getlist_ads,且广告位id为1,该广告位置的广告数量为5.ecshop它能识别【insert】是广告的名称,是因为,当我们新建一个广告位时,会出现以下模板 {foreach from=$ads item=ad} {$ad} {\/foreach} 我们会看到这有其中一句...

ecshop单独页面调用后台指定广告
这个主要是ecshop分类很多,但是分类就一个模板,要做到不同分类不同广告的效果。若是单独页面 要调用单独的广告怎么调用呢?很简单,在代码处:{insert name='ads' id=2 num=1} ID:广告位置ID num:显示数量 直接在放广告地方插入{insert name='ads'id=2 num=1} 就可以了!小编极力推荐:网页...

怎么在ecshop后台替换首页新品特惠的图片,不要代码的
广告图片要在后台广告列表中找到相应的广告来修改 要是标题图片,就去themes\/我的模版名称\/images目录下找到标题图片替换一下就可以了

ecshop广告位管理之如何调用和删除主广告位内容
告位置添加图片。需要调广告的,在php文件里加以下代码:$ads =array('num'='1','id'='1');\/\/广告数量,广告位ID banner =insert_ads($ads);smarty-assign("banner",$banner);打开模板文件.dwt在相应的位置写上{$banner},这时,这个位置上就显示广告了 主广告位区显示2个ecshop广告,进入主广...

Ecshop首页主广告修改为JS并能排序
1、把library\/index_ad.lbi里代码替换成以下代码:\/\/设置myFocus.set({id:'myFocus',\/\/IDpattern:'mF_pconline',\/\/风格time:5\/\/切换时间间隔(秒)});<!--焦点图盒子--><!--载入画面(可删除)--><!--图片列表-->

php+mysql结果处理 字符串转化为数组
你的explode("\\r\\n",$value);这个地方弄错了,r=explode("\\\\r\\\\n",'HDCD\\r\\nDTS\\r\\nDVD\\r\\nDVD9\\r\\nVCD\\r\\nCD\\r\\nTAPE\\r\\nLP');print_r($r);结果:Array ([0] => HDCD [1] => DTS [2] => DVD [3] => DVD9 [4] => VCD [5] => CD [6] => TAPE [7] =...

ECShop这个代码怎么理解啊?{insert name='getlist_ads' id=1 num=5}
{insert name='getlist_ads'id=1 num=5} 意思是ecshop获取广告名称为getlist_ads,且广告位id为1,该广告位置的广告数量为5.ecshop它能识别【insert】是广告的名称,是因为,当我们新建一个广告位时,会出现以下模板 {foreach from=$ads item=ad} {\/foreach} {$ad} 我们会看到这有其中一句,...

ecshop广告位管理之如何调用和删除主广告位内容
告位置添加图片。需要调广告的,在php文件里加以下代码:$ads =array('num'='1','id'='1');\/\/广告数量,广告位ID banner =insert_ads($ads);smarty-assign("banner",$banner);打开模板文件.dwt在相应的位置写上{$banner},这时,这个位置上就显示广告了 主广告位区显示2个ecshop广告,进入主...

ecshop广告位管理之如何调用和删除主广告位内容
需要调广告的,在php文件里加以下代码:$ads =array('num'='1','id'='1');\/\/广告数量,广告位ID$banner =insert_ads($ads);$smarty-assign("banner",$banner);打开模板文件.dwt在相应的位置写上{$banner},这时,这个位置上就显示广告了主广告位区显示2个ecshop广告,进入主广告管理,添加新的...

相似回答