ECShop二次开发教程

您将了解:

      每个前台页面所对应的模板页面,模板文件的目录结构。

      一些最基本的ECshop模板修改方法。

      模板的路径以及相关包含文件的方法(深入了解Dreamweaver模板制作)。

      一些常用模板例子讲解.


模板存放路径:
ecshop/themes/xxxxx   其中的 xxxxx 就是某一套模板,如系统一般会自带的模板文件名叫做 default, (即:ecshop/themes/default )里面放的就是安装好时的默认模板,以下所有的说明都是针对默认模板来讲解.

操作前提,将您当前使用的模板调整为default模板,然后清空缓存。

接下来我们进入default目录,可以看到以下文件目录:
images/        (存放模板中用到的图片)
library/          ( 存放一些小模板文件及重复被用到的模板文件 )
style.css        (模板样式文件)
index.dwt     (首页的模板 index.php)
goods.dwt   ( 商品显示页的模板 goods.php)

*.dwt    (表示其它.dwt文件)

虾米?难道你不相信这些就是模板吗?好,那我证明给你看看.

我们把把images里面的logo.gif文件的名字,改为logo2.gif,然后我们随便找一张gif图片,起名为logo.gif放到images目录中,然后我们刷新首页。看到没?首页logo被修改了。

如果你觉得大小不合适,那么我们打开library目录中的 page_header.lib 查看源代码,然后搜索 images/logo.gif 然后看它后面 width="130" height="56"  把130和56改为相应的值就可以了,到前台刷新看看。

好接下来我们用dreamweaver打开index.dwt文件,在源代码中搜索 {$page_title} ,找到后,将{$page_title} 修改为 超级无敌的大卖场. 然后到到浏览器前台刷新,看看页面有什么变化。虾米?没有发现吗?看看浏览器头部啊,呵呵,是不是网站的标题被改变了?哈哈,对,{$page_title}就是网站标题的标签 ( 注: 标签是从{开始到}结束哦,{和}属于标签的一部分 ). 整个ECshop的模板就是一个一个这样的标签组成了,控制网站内容和数据的动态显示。比如({$keywords} )控制网站的关键字标签,{$description} :网站描述标签 ,( 这就是模板中的标签,每个标签都会对应程序里面的一个值,网站运行时模板引擎会来读取模板页面,然后把对应的标签用对应的值进行替换,就显示出我们看到的网站页面了,明白了吧。这一段内容对于新手来说,可能一下子不能完全消化,还有什么问题就留言,我会更新到这里来)

很简单8,哈哈,大家真是冰雪聪明,孔明再世啊,这么快就学会了,如果你上一步你操作很超级非常very的简单的话,接下来的学习也时一样的哦.接下来要怎么改呢?广告之后我们继续。

.....黄金广告位...欢迎购买......需要的话PM我.....(PS:人不能无耻到这个地步)....哈哈...

大家不要着急,欲速则不达,呵呵,下面我们真正开始做ECshop的模板了,( 不懂HTML的观众准备好Dreamweaver哦 )

1.   我们到/themes/default目录中,把index.dwt改名为index_bak.dwt, 然后用Dreamweaver新建一个HTML文件,然后保存到/themes/default目录中,命名为 index.dwt, 好,我们刷新前台看看,哈哈,什么也没有哦. 好,在我们新建的index.dwt中找到<title>,我们把<title>和</title>中间的内容替换为:{$page_title},在<body>和</body>之间也放入一个{$page_title}, 刷新前台看看.嘿嘿,看到什么了?网站标题被打印出来了吧?

如有操作时候有弹出对话框:

如图:

点击确定就可以了,:)

2.   接下来我们选择可视化界面编辑:然后在{$page_title}后面按Enter键换行,然后输入: 商店公告:{$shop_notice}
到浏览器刷新首页刷新看看,呵呵。商店公告被调出来了,可以去网站后台 系统设置->商店设置->网店信息->商店公告  修改内容,然后到浏览器再刷新网站首页看看,呵呵,商店公告是被动态掉出来的哦.

3.   好继续在{$shop_notice}后面按Enter键换行,然后输入



CODE:

网站快讯:
{foreach from=$new_articles item=article}
{$article.short_title}
{/foreach}


注:换行的地方按Enter键哦,
好刷新前台看看 ,呵呵,网站快讯被调出来了哦。好我们再到网站后台->文章管理->网站列表->添加文章,选择 网站快讯这个分类,随便添加一篇内容,完成后前台刷新看看。两篇文章都被动态掉出来了哦。

注释:

QUOTE:

{foreach from=$new_articles item=article} : 循环的开始,
{/foreach}  : 循环的结束
$new_articles: 为要循环的东西,这里为网站快讯
{$article.short_title} : 快讯标题的标签
模式为:
{foreach from=$post item=name}
content
{/foreach}


{foreach from=$post item=name}和{/foreach}标签中间可以任意添加要循环的内容content(可以为任意的东西),循环的次数受到 $post的限制(这里要填什么我都会告诉大家的.)name为当前这个循环的对象。方便调用数据。

以后这个循环我们会经常的用到哦. 还是不懂也没有关系,每次遇到我都会讲哪里要怎么设置的,多用就会了。

我们也可以这么写哦 , 注意: 在代码编辑的视图里面编辑



CODE:

<table>
{foreach from=$new_articles item=article}
<tr><td>
{$article.short_title}
</td></td>
{/foreach}
</table>


哈哈,保存,刷新首页看看,表格被一行一行的循环出来了哦



好累啊,今天先写到这里,晚上有时间继续,哈哈如果喜欢就给我点支持啊,多给我提问题,我希望能够更完善帮助更多的人。


明天的预告:
产品列表调用,还有产品缩略图哦,呵呵!
产品分类调用呢!

第二章

一人得道,鸡犬升天啊,谢谢ECshop将我提升为教程区版主 ,实在时荣幸啊,谢谢大家的支持,感谢零风,Arlicle,Orange, 谢谢我的笔记本电脑小白(注:她是黑色的,我喜欢她变白,哈哈),谢谢我的电脑桌,谢谢我的椅子,谢谢卡卡布熊,谢谢大家! 呵呵!  ~Orz.   

模板教程继续啦!

不知道大家是学会用循环了呢,还是我的言语实在有问题,大家实在无法完成阅读哦,居然大家都没有问题,暂时心里安慰,把他当做好事情,大家都会调用了,呵呵,那我们继续循环调用商品了!

好,继续在我们昨天的基础上,我们在网站快讯的循环后面,按 Enter键, 输入:商品列表,接着建立一个2行3列的表格,宽度为70%, 表格边框为1(为了让大家看清楚 ),起HTML代码如下



CODE:

<p>商品列表</p>
<table width="70%" border="1">
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr>
    <td>4</td>
    <td>5</td>
    <td>6</td>
  </tr>
</table>


注: ( 1,2,3,4,5,6这些个是序号,方便跟大家讲解呢 )

在这里,我们暂时先把下面这一行去掉(为了大家操作简单),变成



CODE:

<p>商品列表</p>
<table width="70%" border="1">
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
</table>


我们要循环的是列,也就是<td>,因此我们的循环标签应该在<td> 和</td>的外面, 而2,和3应该是循环出来的东西,也就时我模板里面只用保留 1 这个td就可以了,2 和3都要去掉,

于是就变成了下面的样子



CODE:

<p>商品列表</p>
<table width="70%" border="1">
  <tr>
    <td>1</td>
  </tr>
</table>


好,现在我们开始加循环标签,我们要调用的是精品推荐商品, 代码如下:



CODE:

<p>商品列表</p>
<table width="70%" border="1">
  <tr>
{foreach from=$best_goods item=goods}
    <td>{$goods.short_style_name}</td>
{/foreach}
  </tr>
</table>


注意了:foreach 表示下面的内容属于要进行循环,from=$best_goods 表示循环的内容来自$best_goods,($best_goods是精品商品推荐的标签 ) , item=goods 表示当前循环这一次的对象叫goods,你也可以改为其它的东东,当然{$goods.short_style_name}这个地方的goods也要相应的改了哦,{$goods.short_style_name} 表示goods 这个对象的商品名称.
好了,我们保存,前台刷新看一下啊。呵呵,精品商品被循环出来了吧?

接着,为了大家应用方便,我们把goods改为jingpinshangpin,代码如下:



CODE:

<p>商品列表</p>
<table width="70%" border="1">
  <tr>
{foreach from=$best_goods item=jingpinshangpin}
    <td>{$jingpinshangpin.short_style_name}</td>
{/foreach}
  </tr>
</table>


好前台刷新看看哦,呵呵,夷?如果你有很多的精品商品你会发现商品变了,因为精品商品是随机调取出来的.


好我们继续完善他,给它加上链接对应商品的链接,也就是添加<a>属性, 代码如下:



CODE:

<p>商品列表</p>
<table width="70%" border="1">
  <tr>
{foreach from=$best_goods item=jingpinshangpin}
    <td><a href="{$jingpinshangpin.url}">{$jingpinshangpin.short_style_name}</a></td>
{/foreach}
  </tr>
</table>


刷新浏览器,点击链接看看链接到什么地方去了哦。呵呵! 链接到了每个产品自己的页面了呢。
说明:标签 {$jingpinshangpin.url} 就是精品商品的商品链接的标签了,但是要记得哦,$jingpinshangpin 是你起的名字哦,item=$jingpinshangpin的这个 $jingpinshangpin改变了的话,这里也要跟着改变。

接下来我们添加上商品的图片哦 ,也就是增加一个<img>属性 ,代码如下:



CODE:

<p>商品列表</p>
<table width="70%" border="1">
  <tr>
{foreach from=$best_goods item=jingpinshangpin}
    <td><a href="{$jingpinshangpin.url}"><img src="{$jingpinshangpin.thumb}" border="0" /><br>{$jingpinshangpin.short_style_name}</a></td>
{/foreach}
  </tr>
</table>


到前台刷新浏览器看看看,呵呵,商品缩略图也被调出来了。

说明:标签 {$jingpinshangpin.thumb} 就是精品商品的缩略图的标签了,但是要记得哦,$jingpinshangpin 是你起的名字哦,item=$jingpinshangpin的这个 $jingpinshangpin改变了的话,这里也要跟着改变。

如果你已经熟练理解和掌握了以上的步骤,那么下面就越来越清晰和容易了。

接下来我们调取新品上市(标签为: $new_goods )和热卖商品( 标签为:$hot_goods) ,接着在刚才的代码后面加上去就是了。我就不多讲了哦,代码如下



CODE:

<p>新品上市</p>
<table width="70%" border="1">
<tr>
{foreach from=$new_goods item=xinpinshangshi}
<td><a href="{$xinpinshangshi.url}"><img src="{$xinpinshangshi.thumb}" border="0" /><br>
{$xinpinshangshi.short_style_name}</a></td>
{/foreach}
</tr>
</table>

<p>热卖商品</p>
<table width="70%" border="1">
<tr>
{foreach from=$hot_goods item=remaishangpin}
<td><a href="{$remaishangpin.url}"><img src="{$remaishangpin.thumb}" border="0" /><br>
{$remaishangpin.short_style_name}</a></td>
{/foreach}
</tr>
</table>


接着我们要一个Menu菜单,也就是做一个产品的分类列表出来。相信你现在至少知道分类的标签是什么,就知道要怎么做了吧,呵呵.

分类的标签是:$categories

代码如下:



CODE:

<p>分类列表</p>
{foreach from=$categories item=fenlei}
   <a href="{$fenlei.url}">{$fenlei.name}</a>
{/foreach}


到前台刷新看看哦,呵呵,分类列表被调取出来了,我们试着在后台多添加几个一级分类,然后到首页刷新看看。

呵呵,我先去吃饭啦,吃完饭继续写如何把子分类调用出来,大家有问题多问哦,

吃饭回来了....(PS:这是怎么地啊,呵呵!)

子分类的标签是对应在父分类标签来调用的.代码如下:



CODE:

<p>分类列表</p>
{foreach from=$categories item=fenlei}
   <a href="{$fenlei.url}"> {$fenlei.name}</a>
     {foreach from=$fenlei.children item=child}
     <br>- - <A href="{$child.url}">{$child.name|escape:html}</A>
     {/foreach}
{/foreach}


保存以后前台刷新看看呢。呵呵,怎么样?子分类也被调用出来了吧,当然可以根据自己的需要,加上不同的表格或者图片的修饰哦,子分类是放在了父分类标签的基础上来调用的呢。

不过如果你的分类已经固定了很少改动,我建议还是做成死的,这样可以做的更漂亮一些,比如每个分类直接是用图片来代替。呵呵,我一般就是这么处理的,我除了商品和新闻是动态调用出来的以外,其它的都是做成固定的死的,这样就能够设计的很漂亮,因为有时候受到代码的限制,做出来不是很好看。(...说的好模糊,您能理解吗?不能的话就告诉我 ).

本来教程已经写了好多了,但是很多地方写的有点让新手不是那么容易接受,所以就一直在想办法,如何讲解的更简单一些,能让每个人都学会做模板。思考中.....


由于个人原因,今天教程停播一天,明天继续,实在不好意思各位. ~Orz.

啊,今天的章节就算是结束啦,明天预告:

1.如何调用某个分类里面的商品
2.如何制作商品展示页面的模板
3.完善前面讲的章节,并对大家提出的问题做出解答

今天我们来学习如何掉用某一个分类里面的产品。
首先把 default文件夹中的category.dwt 的名字改为category_bak.dwt,然后新建一个category.dwt文件. 然后插入下面的代码:



CODE:

{foreach from=$goods_list item=goods}
<img src="{$goods.goods_thumb}" border="0"  /><br>
{$goods.goods_name}
{/foreach}


注:$goods_list表示商品标签

接着我们访问这个页面:(Ecshop的访问网址/category.php?id=1)例如:http://localhost/ecshop/category.php?id=1
这样我们就访问到了分类id为1的商品了,我们也可以让id=2就访问到id = 2商品了,那如何看某个分类的id呢?
我们看后台: 商品管理-》商品分类-》就可以看到商品分类的列表,然后把鼠标指上去选择新窗口打开,就能在地址来里面看到goods.php?act=list&cat_id=1这样子的信息,cat_id所等于的值就是这个分类的id了,然后就可以拿来调取了,呵呵。


好每次每次都把商品的列表调取出来了,那么如何调取某一个商品的页面呢?
首先把 default文件夹中的goods.dwt 的名字改为goods_bak.dwt,然后新建一个goods.dwt文件. 然后插入下面的代码:



CODE:

商品图片: <img src="{$goods.goods_img}" /><br><br>
商品名称:{$goods.goods_style_name}<br><br>
商品货号:{$goods.goods_sn}<br><br>
商品品牌: {$goods.goods_brand}<br><br>
商品数量:{$goods.goods_number} 单位:{$goods.measure_unit}<br><br>
添加时间:{$goods.add_time}<br><br>
市场价格:{$goods.market_price}<br><br>
本店价格:{$goods.shop_price_formated}<br><br>
注册用户价格:{$rank_price.price}<br><br>
注册用户价格:{$rank_price.price}<br><br>
注册用户价格:{$rank_price.price}<br><br>


接着我们访问这个页面:(Ecshop的访问网址/goods.php?id=1)例如:http://localhost/ecshop/goods.php?id=1
这样我们就访问到了商品id为1的商品了,我们也可以让id=2就访问到id = 2商品了,那如何看某个商品的id呢?
我们看后台:商品管理-》商品列表-》就可以看到商品品的列表,最前面那一栏就是商品的id了,,然后就可以拿来调取了,呵呵。

还有人在问品牌的,某一个品牌的商品怎么调用,呵呵,下次有时间再讲

更新啦!!


今天我们学习一下如何在首页调取某个分类的商品:
注意了,这里的修改有一些麻烦了哦:
首先你需要下载一套新的模板,比如blueksy 上传到模板目录 /themes/   也就是 /themes/bluesky,

然后进入网站后台->模板管理->模板选择,选择bluesky, 选择OK,
然后到网站后台 -> 模板管理 -> 设置模板 -> 分类下的商品 ( 点击分类下的商品前面的+号,然后选择“主区域中间“,序号默认, 商品分类随便选择一个就可以了", 然后填写显示的条数,填写好后点击确定提交,( 注意: 有的朋友可能会遇到提交不了,是因为权限问题,需要把bluesky的模板权限改,然后再重新提交一次)。

这里我增加了两个,的数据是:主区域空间 0 手机  6
                                          主区域空间  0 手机 6
我们在这里增加了多少条记录,对应首页就可以调取多少个分类。
好接下来我们恢复模板为原来我们改过的default模板

在我们以前做的基础上增加如下代码(也就是在原来代码的下面加上):



CODE:

<p>第一个分类的<p>
<?php $this->assign('cat_goods',$this->_var['cat_goods_1']); ?><?php $this->assign('goods_cat',$this->_var['goods_cat_1']); ?><?php echo $this->fetch('library/cat_goods.lbi'); ?>
<p>第二个分类的<p>
<?php $this->assign('cat_goods',$this->_var['cat_goods_3']); ?><?php $this->assign('goods_cat',$this->_var['goods_cat_3']); ?><?php echo $this->fetch('library/cat_goods.lbi'); ?>


这里要注意了, 红色的 1 代表你要显示分类的分类的ID, 将它改为你需要的 刚才添加的ID就可以了
红色的 3 代表你要显示分类的分类的ID, 将它改为你需要的 刚才添加的ID就可以了

好了,保存,前台刷新看看啊,呵呵.是不是我们要的分类就出来了,

看样子改起来很简单哦,不过每次都是这样要操作两个模板才能改还是有些麻烦,呵呵,等到高手进阶的时候再来讲怎么做。

仔细一看还是有点不好的地方哦,就是样子不好看啊,对不对?是默认模板的样子,没有关系啦,我们打开 librasy目录中的cat_goods.lbi文件修改就可以了。修改要注意的地方上门讲过了,不过这里还是要再说明一些小问题

cat_goods.lbi的代码如下:



CODE:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div class="title-div"><img src="../images/green_arrow.gif" width="37" height="37" alt="" border="0" style="vertical-align:middle" /><a href="{$goods_cat.url}">{$goods_cat.name|escape:html}</a></div>
<div class="content-div">
  <!--{foreach from=$cat_goods item=goods}-->
  <table border="0" cellpadding="3" cellspacing="1" class="goods-table" style="float: left">
    <tr>
      <td align="center"><a href="{$goods.url}"><img src="{$goods.thumb}" border="0" alt="{$goods.name|escape:html}" class="thumb" /></a></td>
    </tr>
    <tr>
      <td><a href="{$goods.url}" title="{$goods.name|escape:html}">{$goods.short_name|escape:html}</a><br />
        <!-- {if $goods.promote_price neq ""} -->
        {$lang.promote_price}<span class="goods-price">{$goods.promote_price}</span>
        <!-- {else}-->
        {$lang.shop_price}<span class="goods-price">{$goods.shop_price}</span>
        <!--{/if}-->
      </td>
    </tr>
  </table>
  <!--{/foreach}-->
  <br style="clear:both"/>
</div>
常见问题解答:
1.  怎么让首页显示的每行3个商品能够按照普通屏或者宽屏,自动的缩放。
答:把表格宽度设置为百分比,或者在Css中设置为百分比就好了。
2. 又或者改成每行固定4个显示 ?
答:到网站后台 -> 模板管理 -> 设置模板
3 .首页图片大小是多少?图片点击放大后为什么失真这么厉害?怎么让图片自动调节大小?
答:有两种方法哦,第一种就是到网站后台,重新设置缩略图的大小,然后再批量重新生成缩略图
第二中方法就是把图片显示的高和宽都去掉(即:把width=***,height=***删除掉),它就显示原始的大小了。

转载于:https://www.cnblogs.com/futan/archive/2012/12/24/php-ecshopjiaocheng.html

前言 3 一、商圈和地区进行关联 4 二、其他页面显示购买记录的函数 5 三、多货币解决方案 6 四、仿淘宝商品详细页实现尺码颜色关联显示库存 12 五、仿淘宝商品详细页加入购物车效果 14 六、ecshop加入购物车效果(各个页面) 22 七、商品列表页面“喜欢“ 功能实现 29 八、商品列表也显示获赠消费积分 32 九、分析 ecshop 里的$GLOBALS 37 十、解决 选择属性 直接就是属性价格不需要在原价基础上加价 38 十一、商品详细页下载商品介绍相关图片 39 十二、实现后台二次开发后功能模块仍然可以分配权限 41 十三、ecshop调用bbs数据 42 十四、整理了一个 获取用户等级的函数 43 十五、商品页显示具体属性排序 44 十六、解决ecshop新建页面分页问题 49 十七、刚修改的伪静态分类URL 52 十八、ecshop批发销售 66 十九、网银支付直通插件 实现方法 69 二十、商品列表页多图切换的实现 75 二十一、完善论坛发布的qq登录插件 77 二十二、倒计时代码 78 二十三、关于ecshop回调函数应用 83 二十四、商品内容页加订单留言功能分析 84 二十五、有关商品详细页是常规显示还是显示宣传页的实现方法 85 二十六、后台添加搜索功能讲解 87 二十七、分享ec搜索出现相关商品的效果滑动效果(模仿百度) 88 二十八、修改注册发送邮件(更新) 94 二十九、新增加一调用编辑器函数 97 三十、简单实现 各个页面都可显示友情链接 97 三十一、Ecshop系统框架分析 99 三十二、二次开发技术共享 后台邮件群发共享 100 三十三、ecshop内页调用友情链接 100 三十四、项目要求在后台商品分类添加图片的功能。 102 三十五、分类按照拼音第一字母排序显示实现 102 三十六、获取分类的一级分类和二级分类 106 三十七、如何调用解决列表的购买数量 107 三十八、详情页调评论次数 108 三十九、关于购买数量 订单数量 109 四十、Ecshop ajax应用讨论 109 四十一、调用当前分类或当前分类的下级分类函数 115 四十二、在商品列表显示购买记录 118 四十三、ajax更新购物车数量 118 四十四、PHP导出excle数据 123 四十五、页面多倒计时显示最新修改 125 四十六、关于lbi文件控制原理分析 129 四十七、页面浏览历史图片调用分析 130
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值