关于ecshop中'/library/cat_goods.lbi'的调用来源

library/cat_goods.lbi中 循环代码是这样的,

{foreach from=$cat_goods item=goods}

很显然找到$cat_goods这个变量在哪里定义就行了,发现是在这里定义的:

includes/libs_goods.php中的assign_cat_goods函数:

$GLOBALS[‘smarty‘]->assign(‘cat_goods_‘ . $cat_id, $goods);

这里对cat_goods进行了全局定义。后发现:

includes/lib_main.php中的assign_dynamic函数对上面的assign_cat_goods进行了调用:

switch ($row[‘type‘])
        {
            case 1:
                /* 分类下的商品 */
                $GLOBALS[‘smarty‘]->assign(‘goods_cat_‘ . $row[‘id‘], assign_cat_goods($row[‘id‘], $row[‘number‘]));

而首页index.php中对assgin_dynamic进行了调用:

    /* 页面中的动态内容 */
    assign_dynamic(‘index‘);   //这里是给函数传入的首页模板参数。(后台模板设置中有这个首页模板)
}

$smarty->display(‘index.dwt‘, $cache_id);   
模板中需要注意的是,ecshop模板引擎从TemplateBeginEditable的name值来索引数据的。如果模板中没有这个,那么后台模板设置>分类下的产品>下来列表就没有相应的数据。一个典型的用法如下:
<!-- TemplateBeginEditable name="1层产品" -->
  {include file="/library/cat_goods.lbi"}
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="2层产品" -->
  {include file="/library/cat_goods.lbi"}
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="3层产品" -->
  {include file="/library/cat_goods.lbi"}
<!-- TemplateEndEditable -->


 就是下面这个图了:

这样就可以了。

关于ecshop中'/library/cat_goods.lbi'的调用来源

时间: 2024-08-02 22:54:47

关于ecshop中'/library/cat_goods.lbi'的调用来源的相关文章

ectouch第十讲 之ecshop中 dwt, lbi 文件详解

原文:http://www.yunmoban.cn/article-241.html Ecshop包括的文件夹有admin.api.cert.data.images.includes.js. languages.plugins.temp.theme.wap.widget这些文件夹,和根目录下的所有.php文件.这些文件和文件夹组成了整 个ecshop.如果从软件工程角度分析ecshop的话,ecshop的二级可以看成admin和前台两个部分.admin主要是面向服务端的,而前台 是面向客户端的,

ECshop中TemplateBeginEditable 和后台编辑讲解

在ecshop的dwt文件里面经常发现有“<!-- TemplateBeginEditable name="doctitle" -->和<!-- #BeginLibraryItem "/library/page_header.lbi" --><!-- #EndLibraryItem -->”这么一段代码,有很多朋友误认为只是注释用的,这里首先来介绍一下#BeginLibraryItem这段代码.可以看到后面有“page_heade

ecshop中的些assign_dynamic(’&#39;)

很多做电子商务站的朋友都问我,在ecshop中,里面有个 assign_dynamic('index');这个到底是什么作用来的,这个其实是ecshop中的模板技术,动态处理一些局部信息更新而不被缓存的机制. 先看 assign_dynamic()函数,$sql = 'SELECT id, number, type FROM ' . $GLOBALS['ecs']->table('template') .  " WHERE filename = '$tmp' AND type > 0

ecshop 中的json

ecshop中有2个地方使用了json,一个是cls_json.php文件,一个是transport.js文件. cls_json 封装了json类,可以调用里面的encode的方法,根据参数不同,进行不同的转化,调用json_encode可以直接进行转化.是php对json的处理. transport.js是ecshop封装的ajax方法,通过ajax.call 来实现ajax的调用.ajax传值的过程中,可以选择json来传递,一般也是选择它的,因为这样调用起来方便,转化也方便.所以它对js

ECshop中defined(&#39;IN_ECS&#39;)的实现原理

在PHP中经常看到如下代码 if (!defined('IN_ECS')) { die('Hacking attempt'); } 实现的原因以及原理如下: ecshop里的有些.php页是不需要用户通过url直接访问的,用来被其它页调用的,例如/includes/init.php,就不需要直接访问,通过url访问你的网址/includes/init.php是无意义的,所以我们在可以直接方问的php里加上define('IN_ECS', true); 例如在index.php中有如下代码,一开头

ecshop中猜你喜欢的原理

最近在实现ecshop中的一个猜你喜欢的原理,一直不明白这个是如何猜的,难道是根据最近浏览记录来得到?百思不得其解,就放下了这个问题,一天在百度搜索东西的时候,突然发现这个右边有个猜你喜欢的功能,其实以前也知道,这里有这个版块,只不过没加注意,这次经过仔细观察发现,原来猜你喜欢的时候,就根据你搜索的相关结果,关联出一些同类产品. 举个例子,比如我搜索notepad2的时候,notepad++,editplus等软件就被列入了猜你喜欢的类别中,因此,在ecshop中如果我们记录了用户的浏览记录,通

Delphi 中的DLL 封装和调用对象技术(刘艺,有截图)

Delphi 中的DLL 封装和调用对象技术本文刊登2003 年10 月份出版的Dr.Dobb's 软件研发第3 期刘 艺摘 要DLL 是一种应用最为广泛的动态链接技术但是由于在DLL 中封装和调用对象受到对象动态绑定机制的限制使得DLL 在封装对象方面有一定的技术难度导致有些Delphi 程序员误以为DLL 只支持封装函数不支持封装对象本文着重介绍了DLL 中封装和调用对象的原理和思路并结合实例给出了多种不同的实现方法关键字动态链接库DLL 对象接口虚方法动态绑定类引用面向对象1 物理封装与动

ecshop中index.dwt文件分析

对于ecshop新手来说,这篇总结值得关注. 对于没有web编程基础的同学来说,ecshop模板里面有两个文件特别重要, 但是这两个文件同时也很不好理解,分别是index.dwt和style.css. 而且网络上很难找到这两个文件的详细说明,经过好多天摸索,把我的经验和认识记录下来, 不一定完全正确,希望更有经验的同学能出来指导. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/

ECSHOP中transport.js和jquery的冲突的简单解决办法

ECSHOP中transport.js和jquery的冲突的简单解决办法 一流资源网近日在ECSHOP网站加入了几个JS特效代码,在谷歌.火狐下正常,在各版本IE下都不常,左思不得其解. 最后才知道原来是"ECSHOP中transport.js和jquery的冲突" 因为通用头部文件中引用了 1 {insert_scripts files='transport.js,utils.js'} transport.js与jquery有冲突.原因不多讲.在网上找到一个最简单解决办法: 成功了,