最新消息:

自学ECshop模板制作教程(全)

教程 admin 727浏览 0评论

1363812183626767321

读取这些内容,将了解:

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

     一些最基本的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} :网站描述标签 ,( 这就是模板中的标签,每个标签都会对应程序里面的一个值,网站运行时模板引擎会来读取模板页面,然后把对应的标签用对应的值进行替换,就显示出我们看到的网站页面了。

==================================================================

这里我们真正开始做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键换行,然后输入

 网站快讯:

{foreach from=$new_articles item=article}

{$article.short_title}

{/foreach}

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

{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为当前这个循环的对象。方便调用数据。

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

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

<table>

{foreach from=$new_articles item=article}

<tr><td>

{$article.short_title}

</td></td>

{/foreach}

</table>

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

===========================================================================

接着上一节开始

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

<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>
在这里,我们暂时先把下面这一行去掉(为了大家操作简单),变成 <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都要去掉,

于是就变成了下面的样子
<p>商品列表</p>

<table width=”70%” border=”1″>

 <tr>

   <td>1</td>

 </tr>

</table>
好,现在我们开始加循环标签,我们要调用的是精品推荐商品, 代码如下:
<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,代码如下:
<p>商品列表</p>

<table width=”70%” border=”1″>

 <tr>

{foreach from=$best_goods item=jingpinshangpin}

   <td>{$jingpinshangpin.short_style_name}</td>

{/foreach}

 </tr>

</table>
好前台刷新看看哦,呵呵,夷?如果你有很多的精品商品你会发现商品变了,因为精品商品是随机调取出来的.
好我们继续完善他,给它加上链接对应商品的链接,也就是添加<a>属性, 代码如下:
<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>属性 ,代码如下:
<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) ,接着在刚才的代码后面加上去就是了。我就不多讲了哦,代码如下
<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

代码如下:
<p>分类列表</p>

{foreach from=$categories item=fenlei}

  <a href=”{$fenlei.url}”>{$fenlei.name}</a>

{/foreach}
到前台刷新看看哦,呵呵,分类列表被调取出来了,我们试着在后台多添加几个一级分类,然后到首页刷新看看。
子分类的标签是对应在父分类标签来调用的.代码如下:
<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}
保存以后前台刷新看看呢。呵呵,怎么样?子分类也被调用出来了吧,当然可以根据自己的需要,加上不同的表格或者图片的修饰哦,子分类是放在了父分类标签的基础上来调用的呢。

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

================================================================

今天我们来学习如何掉用某一个分类里面的产品。
首先把 default文件夹中的category.dwt 的名字改为category_bak.dwt,然后新建一个category.dwt文件. 然后插入下面的代码:
{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文件. 然后插入下面的代码:
商品图片: <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模板

在我们以前做的基础上增加如下代码(也就是在原来代码的下面加上):
<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的代码如下:

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>

<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>

 <!–{foreach from=$cat_goods item=goods}–>

 <table border=”0″ cellpadding=”3″ cellspacing=”1″ style=”float: left”>

   <tr>

     <td align=”center”><a href=”{$goods.url}”><img src=”{$goods.thumb}” border=”0″ alt=”{$goods.name|escape:html}” /></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>{$goods.promote_price}</span>

       <!– {else}–>

       {$lang.shop_price}<span>{$goods.shop_price}</span>

       <!–{/if}–>

     </td>

   </tr>

 </table>

 <!–{/foreach}–>

 <br style=”clear:both”/>

</div>
这里哦于一些奇怪的地方就是在标签两边多了 <!– 和 –> 符号,这个是没有关系的.删除掉也没有关系的啦
常见问题解答:
1.  怎么让首页显示的每行3个商品能够按照普通屏或者宽屏,自动的缩放。
答:把表格宽度设置为百分比,或者在Css中设置为百分比就好了。
2. 又或者改成每行固定4个显示 ?
答:到网站后台 -> 模板管理 -> 设置模板
3 .首页图片大小是多少?图片点击放大后为什么失真这么厉害?怎么让图片自动调节大小?
答:有两种方法哦,第一种就是到网站后台,重新设置缩略图的大小,然后再批量重新生成缩略图
第二中方法就是把图片显示的高和宽都去掉(即:把width=***,height=***删除掉),它就显示原始的大小了.

转载请注明:中国翼通 » 自学ECshop模板制作教程(全)


分享到:
已有 0 条评论 腾讯微博