对于ecshop新手来说,这篇总结值得关注。

对于没有web编程基础的同学来说,ecshop模板里面有两个文件特别重要,

但是这两个文件同时也很不好理解,分别是index.dwt和style.css.

而且网络上很难找到这两个文件的详细说明,经过好多天摸索,把我的经验和认识记录下来,

不一定完全正确,希望更有经验的同学能出来指导。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

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

//关键字和描述

<meta name="Keywords" content="{$keywords}" />

<meta name="Description" content="{$description}" />

// 可编辑区域,书写首页标题名

<!-- TemplateBeginEditable name="doctitle" -->

<title>{$page_title}</title>

<!-- TemplateEndEditable -->

<!-- TemplateBeginEditable name="head" -->

<!-- TemplateEndEditable -->

//图标以及css样式和可替换样式

<link rel="shortcut icon" href="favicon.ico" />

<link rel="icon" href="animated_favicon.gif" type="image/gif" />

<link href="{$ecs_css_path}" rel="stylesheet" type="text/css" />

<link rel="alternate" type="application/rss+xml" title="RSS|{$page_title}"

href="{$feed_url}" />

//注释文件以及脚本文件

{* 包含脚本文件 *}

{insert_scripts files='common.js,index.js'}

</head>

//主体文件格式

<body>

//插入首页头文件

<!-- #BeginLibraryItem "/library/page_header.lbi" --><!-- #EndLibraryItem -->

//这个div引用了一个叫做blank的css类

<div class="blank"></div>

//定义首页左边区域

<div class="block clearfix">

<!--left start-->

<div class="AreaL">

//定义站内公告

<!--站内公告 start-->

<div class="box">

<div class="box_1">

<h3><span>{$lang.shop_notice}</span></h3>

<div class="boxCenterList RelaArticle">

{$shop_notice}

</div>

</div>

</div>

<div class="blank5"></div>

<!--站内公告 end-->

<!-- TemplateBeginEditable name="左边区域" -->

//购物车信息

<!-- #BeginLibraryItem "/library/cart.lbi" -->

{insert_scripts files='transport.js'}

<div class="cart" id="ECS_CARTINFO">

{insert name='cart_info'}

</div>

<div class="blank5"></div>

<!-- #EndLibraryItem -->

//快捷引导目录信息

<!-- #BeginLibraryItem "/library/category_tree.lbi" -->

<div class="box">

<div class="box_1">

<div id="category_tree">

//第一层循环

<!--{foreach from=$categories item=cat}-->

<dl>

<dt><a href="{$cat.url}">{$cat.name|escape:html}</a></dt>

//第二层循环

<!--{foreach from=$cat.cat_id item=child}-->

<dd><a href="{$child.url}">{$child.name|escape:html}</a></dd>

//第三层循环

<!--{foreach from=$child.cat_id item=childer}-->

<dd>&nbsp;&nbsp;<a href="{$childer.url}">{$childer.name|escape:html}</a></dd>

<!--{/foreach}-->

<!--{/foreach}-->

</dl>

<!--{/foreach}-->

</div>

</div>

</div>

<div class="blank5"></div>

// 销量前十的商品

<!-- #EndLibraryItem -->

<!-- #BeginLibraryItem "/library/top10.lbi" -->

<div class="box">

<div class="box_2">

<div class="top10Tit"></div>

<div class="top10List clearfix">

//获取销量前十的商品的图片

<!-- {foreach name=top_goods from=$top_goods item=goods}-->

<ul class="clearfix">

<img src="../images/top_{$smarty.foreach.top_goods.iteration}.gif"

class="iteration" />

<!-- {if $smarty.foreach.top_goods.iteration<4}-->

<li class="topimg">

//获取销量前十的商品的缩略图

<a href="{$goods.url}"><img src="{$goods.thumb}" alt="{$goods.name|escape:html}"

class="samllimg" /></a>

</li>

<!-- {/if} -->

<li {if $smarty.foreach.top_goods.iteration<4}class="iteration1"{/if}>

<a href="{$goods.url}" title="{$goods.name|escape:html}">{$goods.short_name}</a><br />

{$lang.shop_price}<font class="f1">{$goods.price}</font><br />

</li>

</ul>

<!-- {/foreach} -->

</div>

</div>

</div>

<div class="blank5"></div>

<!-- #EndLibraryItem -->

//促销商品信息

<!-- #BeginLibraryItem "/library/promotion_info.lbi" -->

<!-- {if $promotion_info} -->

<!-- 促销信息 -->

<div class="box">

<div class="box_1">

<h3><span>{$lang.promotion_info}</span></h3>

<div class="boxCenterList RelaArticle">

<!-- {foreach from=$promotion_info item=item key=key} -->

<!-- {if $item.type eq "snatch"} -->

<a href="snatch.php" title="{$lang.$item.type}">{$lang.snatch_promotion}</a>

<!-- {elseif $item.type eq "group_buy"} -->

<a href="group_buy.php" title="{$lang.$item.type}">{$lang.group_promotion}</a>

<!-- {elseif $item.type eq "auction"} -->

<a href="auction.php" title="{$lang.$item.type}">{$lang.auction_promotion}</a>

<!-- {elseif $item.type eq "favourable"} -->

<a href="activity.php" title="{$lang.$item.type}">{$lang.favourable_promotion}</a>

<!-- {/if} -->

<a href="{$item.url}" title="{$lang.$item.type} {$item.act_name}{$item.time}"

style="background:none; padding-left:0px;">{$item.act_name}</a><br />

<!-- {/foreach} -->

</div>

</div>

</div>

<div class="blank5"></div>

<!-- {/if} -->

<!-- #EndLibraryItem -->

//订单查询

<!-- #BeginLibraryItem "/library/order_query.lbi" -->

<!--{if empty($order_query)}-->

<script>var invalid_order_sn = "{$lang.invalid_order_sn}"</script>

<div class="box">

<div class="box_1">

<h3><span>{$lang.order_query}</span></h3>

<div class="boxCenterList">

<form name="ecsOrderQuery">

<input type="text" name="order_sn" class="inputBg" /><br />

<div class="blank5"></div>

<input type="button" value="{$lang.query_order}" class="bnt_blue_2"

onclick="orderQuery()" />

</form>

<div id="ECS_ORDER_QUERY" style="margin-top:8px;">

<!--{else}-->

<!--{if $order_query.user_id}-->

<b>{$lang.order_number}:</b><a href="user.php?act=order_detail&order_id=

{$order_query.order_id}" class="f6">{$order_query.order_sn}</a><br>

<!--{else}-->

<b>{$lang.order_number}:</b>{$order_query.order_sn}<br>

<!--{/if}-->

<b>{$lang.order_status}:</b><br><font class="f1">{$order_query.order_status}</font><br>

<!--{if $order_query.invoice_no }-->

<b>{$lang.consignment}:</b>{$order_query.invoice_no}<br>

<!--{/if}-->

{if $order_query.shipping_date}:{$lang.shipping_date} {$order_query.shipping_date}

<br>

<!--{/if}-->

<!--{/if}-->

</div>

</div>

</div>

</div>

<div class="blank5"></div>

//发货单查询

<!-- #EndLibraryItem -->

<!-- #BeginLibraryItem "/library/invoice_query.lbi" -->

<!--{if $invoice_list}-->

<style type="text/css">

.boxCenterList form{display:inline;}

.boxCenterList form a{color:#404040; text-decoration:underline;}

</style>

<div class="box">

<div class="box_1">

<h3><span>{$lang.shipping_query}</span></h3>

<div class="boxCenterList">

<!-- 发货单查询{foreach from=$invoice_list item=invoice} -->

{$lang.order_number} {$invoice.order_sn}<br />

{$lang.consignment} {$invoice.invoice_no}

<div class="blank"></div>

<!-- 结束发货单查询{/foreach}-->

</div>

</div>

</div>

<div class="blank5"></div>

<!-- {/if} -->

<!-- #EndLibraryItem -->

//投票信息

<!-- #BeginLibraryItem "/library/vote_list.lbi" -->

{insert name='vote'}

<!-- #EndLibraryItem -->

//邮件订阅功能

<!-- #BeginLibraryItem "/library/email_list.lbi" -->

<div class="box">

<div class="box_1">

<h3><span>{$lang.email_subscribe}</span></h3>

<div class="boxCenterList RelaArticle">

<input type="text" id="user_email" class="inputBg" /><br />

<div class="blank5"></div>

<input type="button" class="bnt_blue" value="{$lang.email_list_ok}"

onclick="add_email_list();" />

<input type="button" class="bnt_bonus"  value="{$lang.email_list_cancel}"

onclick="cancel_email_list();" />

</div>

</div>

</div>

<div class="blank5"></div>

//处理邮件订阅的脚本

<script type="text/javascript">

var email = document.getElementById('user_email');

function add_email_list()

{

if (check_email())

{

Ajax.call('user.php?act=email_list&job=add&email=' + email.value, '',

rep_add_email_list, 'GET', 'TEXT');

}

}

function rep_add_email_list(text)

{

alert(text);

}

function cancel_email_list()

{

if (check_email())

{

Ajax.call('user.php?act=email_list&job=del&email=' + email.value, '',

rep_cancel_email_list, 'GET', 'TEXT');

}

}

function rep_cancel_email_list(text)

{

alert(text);

}

function check_email()

{

if (Utils.isEmail(email.value))

{

return true;

}

else

{

alert('{$lang.email_invalid}');

return false;

}

}

</script>

<!-- #EndLibraryItem -->

<!-- TemplateEndEditable -->

</div>

<!--left end-->

<!--right start-->

//右侧区域

<div class="AreaR">

// 站内快讯和焦点图

<!--焦点图和站内快讯 START-->

<div class="box clearfix">

<div class="box_1 clearfix">

<div class="f_l" id="focus">

<!-- #BeginLibraryItem "/library/index_ad.lbi" --><!-- #EndLibraryItem -->

</div>

<!--news-->

<div id="mallNews" class="f_r">

<div class="NewsTit"></div>

<div class="NewsList tc">

<!-- TemplateBeginEditable name="站内快讯上广告位(宽:210px)" -->

<!-- TemplateEndEditable -->

<!-- #BeginLibraryItem "/library/new_articles.lbi" --><!-- #EndLibraryItem -->

</div>

</div>

<!--news end-->

</div>

</div>

<div class="blank5"></div>

<!--焦点图和站内快讯 END-->

<!--今日特价,品牌 start-->

<div class="clearfix">

<!--特价-->

<!-- #BeginLibraryItem "/library/recommend_promotion.lbi" --><!-- #EndLibraryItem -->

<!--品牌-->

<div class="box f_r brandsIe6">

<div class="box_1 clearfix" id="brands">

<!-- #BeginLibraryItem "/library/brands.lbi" --><!-- #EndLibraryItem -->

</div>

</div>

</div>

<div class="blank5"></div>

//主区域

<!-- TemplateBeginEditable name="右边主区域" -->

// 精品推荐

<!-- #BeginLibraryItem "/library/recommend_best.lbi" -->

<!-- {if $best_goods} -->

<!-- {if $cat_rec_sign neq 1} -->

<div class="box">

<div class="box_2 centerPadd">

<div class="itemTit" id="itemBest">

{if $cat_rec[1]}

// 点击切换标签页

<h2><a href="javascript:void(0)" onclick="change_tab_style('itemBest', 'h2',

this);get_cat_recommend(1, 0);">{$lang.all_goods}</a></h2>

{foreach from=$cat_rec[1] item=rec_data}

<h2 class="h2bg"><a href="javascript:void(0)" onclick="change_tab_style('itemBest',

'h2', this);get_cat_recommend(1, {$rec_data.cat_id})">{$rec_data.cat_name}</a></h2>

{/foreach}

{/if}

</div>

<div id="show_best_area" class="clearfix goodsBox">

<!-- {/if} -->

<!--{foreach from=$best_goods item=goods}-->

<div class="goodsItem">

<span class="best"></span>

<a href="{$goods.url}"><img src="{$goods.thumb}" alt="{$goods.name|escape:html}"

class="goodsimg" /></a><br />

<p><a href="{$goods.url}" title="{$goods.name|escape:html}">

{$goods.short_style_name}</a></p>

<font class="f1">

<!-- {if $goods.promote_price neq ""} -->

{$goods.promote_price}

<!-- {else}-->

{$goods.shop_price}

<!--{/if}-->

</font>

</div>

<!--{/foreach}-->

<div class="more"><a href="../search.php?intro=best"><img src="data:images/more.gif"

/></a></div>

<!-- {if $cat_rec_sign neq 1} -->

</div>

</div>

</div>

<div class="blank5"></div>

<!-- {/if} -->

<!-- {/if} -->

<!-- #EndLibraryItem -->

// 最新商品

<!-- #BeginLibraryItem "/library/recommend_new.lbi" -->

<!-- {if $new_goods} -->

<!-- {if $cat_rec_sign neq 1} -->

<div class="box">

<div class="box_2 centerPadd">

<div class="itemTit New" id="itemNew">

{if $cat_rec[2]}

<h2><a href="javascript:void(0)" onclick="change_tab_style('itemNew', 'h2',

this);get_cat_recommend(2, 0);">{$lang.all_goods}</a></h2>

{foreach from=$cat_rec[2] item=rec_data}

<h2 class="h2bg"><a href="javascript:void(0)" onclick="change_tab_style('itemNew',

'h2', this);get_cat_recommend(2, {$rec_data.cat_id})">{$rec_data.cat_name}</a></h2>

{/foreach}

{/if}

</div>

<div id="show_new_area" class="clearfix goodsBox">

<!-- {/if} -->

<!--{foreach from=$new_goods item=goods}-->

<div class="goodsItem">

<span class="news"></span>

<a href="{$goods.url}"><img src="{$goods.thumb}" alt="{$goods.name|escape:html}"

class="goodsimg" /></a><br />

<p><a href="{$goods.url}" title="{$goods.name|escape:html}">

{$goods.short_style_name}</a></p>

<font class="f1">

<!-- {if $goods.promote_price neq ""} -->

{$goods.promote_price}

<!-- {else}-->

{$goods.shop_price}

<!--{/if}-->

</font>

</div>

<!--{/foreach}-->

<div class="more"><a href="../search.php?intro=new"><img src="data:images/more.gif"

/></a></div>

<!-- {if $cat_rec_sign neq 1} -->

</div>

</div>

</div>

<div class="blank5"></div>

<!-- {/if} -->

<!-- {/if} -->

<!-- #EndLibraryItem -->

//热销商品

<!-- #BeginLibraryItem "/library/recommend_hot.lbi" -->

<!-- {if $hot_goods} -->

<!-- {if $cat_rec_sign neq 1} -->

<div class="box">

<div class="box_2 centerPadd">

<div class="itemTit Hot" id="itemHot">

{if $cat_rec[3]}

<h2><a href="javascript:void(0)" onclick="change_tab_style('itemHot', 'h2',

this);get_cat_recommend(3, 0);">{$lang.all_goods}</a></h2>

{foreach from=$cat_rec[3] item=rec_data}

<h2 class="h2bg"><a href="javascript:void(0)" onclick="change_tab_style('itemHot',

'h2', this);get_cat_recommend(3, {$rec_data.cat_id})">{$rec_data.cat_name}</a></h2>

{/foreach}

{/if}

</div>

<div id="show_hot_area" class="clearfix goodsBox">

<!-- {/if} -->

<!--{foreach from=$hot_goods item=goods}-->

<div class="goodsItem">

<span class="hot"></span>

<a href="{$goods.url}"><img src="{$goods.thumb}" alt="{$goods.name|escape:html}"

class="goodsimg" /></a><br />

<p><a href="{$goods.url}" title="{$goods.name|escape:html}">{$goods.short_style_name}</a></p>

<font class="f1">

<!-- {if $goods.promote_price neq ""} -->

{$goods.promote_price}

<!-- {else}-->

{$goods.shop_price}

<!--{/if}-->

</font>

</div>

<!--{/foreach}-->

<div class="more"><a href="../search.php?intro=hot"><img src="data:images/more.gif" /></a></div>

<!-- {if $cat_rec_sign neq 1} -->

</div>

</div>

</div>

<div class="blank5"></div>

<!-- {/if} -->

<!-- {/if} -->

<!-- #EndLibraryItem -->

//拍卖商品

<!-- #BeginLibraryItem "/library/auction.lbi" -->

<!-- {if $auction_list} -->

<div class="box">

<div class="box_1">

<h3><span>{$lang.auction_goods}</span><a href="auction.php"><img src="../images/more.gif"></a></h3>

<div class="centerPadd">

<div class="clearfix goodsBox" style="border:none;">

<!--{foreach from=$auction_list item=auction}-->

<div class="goodsItem">

<a href="{$auction.url}"><img src="{$auction.thumb}" alt="{$auction.goods_name|

escape:html}" class="goodsimg" /></a><br /> <p><a href="{$auction.url}" title="{$auction.goods_name|escape:html}">

{$auction.short_style_name|escape:html}</a></p>

<font class="shop_s">{$auction.formated_start_price}</font>

</div>

<!--{/foreach}-->

</div>

</div>

</div>

</div>

<div class="blank5"></div>

<!-- {/if} -->

<!-- #EndLibraryItem -->

//团购商品

<!-- #BeginLibraryItem "/library/group_buy.lbi" -->

<!-- {if $group_buy_goods} -->

<div class="box">

<div class="box_1">

<h3><span>{$lang.group_buy_goods}</span><a href="group_buy.php"><img

src="../images/more.gif"></a></h3>

<div class="centerPadd">

<div class="clearfix goodsBox" style="border:none;">

<!--{foreach from=$group_buy_goods item=goods}-->

<div class="goodsItem">

<a href="{$goods.url}"><img src="{$goods.thumb}" alt="{$goods.goods_name|

escape:html}" class="goodsimg" /></a><br />

<p><a href="{$goods.url}"

title="{$goods.goods_name|escape:html}">{$goods.short_style_name|escape:html}</a></p>

<font class="shop_s">{$goods.last_price}</font>

</div>

<!--{/foreach}-->

</div>

</div>

</div>

</div>

<div class="blank5"></div>

<!-- {/if} -->

<!-- #EndLibraryItem -->

<!-- TemplateEndEditable -->

</div>

<!--right end-->

</div>

<div class="blank5"></div>

<!--帮助-->

<div class="block">

<div class="box">

<div class="helpTitBg clearfix">

<!-- #BeginLibraryItem "/library/help.lbi" --><!-- #EndLibraryItem -->

</div>

</div>

</div>

<div class="blank"></div>

<!--帮助-->

<!--友情链接 start-->

<!--{if $img_links  or $txt_links }-->

<div id="bottomNav" class="box">

<div class="box_1">

<div class="links clearfix">

<!--开始图片类型的友情链接{foreach from=$img_links item=link}-->

<a href="{$link.url}" target="_blank" title="{$link.name}"><img src="{$link.logo}"

alt="{$link.name}" border="0" /></a>

<!--结束图片类型的友情链接{/foreach}-->

<!-- {if $txt_links} -->

<!--开始文字类型的友情链接{foreach from=$txt_links item=link}-->

[<a href="{$link.url}" target="_blank" title="{$link.name}">{$link.name}</a>]

<!--结束文字类型的友情链接{/foreach}-->

<!-- {/if} -->

</div>

</div>

</div>

<!--{/if}-->

<!--友情链接 end-->

<div class="blank"></div>

<!-- #BeginLibraryItem "/library/page_footer.lbi" --><!-- #EndLibraryItem -->

</body>

</html>

来源:http://blog.csdn.net/zurich1979/article/details/9164799

ecshop中index.dwt文件分析的更多相关文章

  1. 【AT91SAM3S】英蓓特EM-SAM3S开发板例子工程中的启动文件分析

    手上一块英倍特的EM-SAM3S开发板,拿到已经有一个月了.本来是做uLoong活动使用的板子,可当初由于不熟悉这个芯片,使用了STM32F4当作了替代.最近准备抽点时间折腾下这个板子. 这个板子的资 ...

  2. Caffe源码中caffe.proto文件分析

    Caffe源码(caffe version:09868ac , date: 2015.08.15)中有一些重要文件,这里介绍下caffe.proto文件. 在src/caffe/proto目录下有一个 ...

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

    原文:http://www.yunmoban.cn/article-241.html Ecshop包括的文件夹有admin.api.cert.data.images.includes.js. lang ...

  4. Android Studio中的AndroidManifest.xml文件分析

    一.关于AndroidManifest.xml AndroidManifest.xml清单文件是每个Android程序中必须的文件,它是整个Android程序的全局描述文件,除了能声明程序中的Acti ...

  5. ECshop中TemplateBeginEditable 和后台编辑讲解

    在ecshop的dwt文件里面经常发现有“<!-- TemplateBeginEditable name="doctitle" -->和<!-- #BeginLi ...

  6. Java class文件分析工具 -- Classpy

    Classpy Classpy是一个图形化的class文件分析工具,功能和javap类似,界面主要參考了Java Class Viewer: 为什么要又一次创造轮子? 写这个工具花了将近一周的时间.那 ...

  7. ecshop init.php文件分析

    1.  ecshop init.php文件分析 2.  <?php  3.   4.  /**  5.  * ECSHOP 前台公用文件  6.  * ===================== ...

  8. 在自定义的dwt文件中调用page_header.lbi和page_footer.lbi

    昨天下午接到需求说要增加一个新的页面,作为优惠活动规则的介绍之用,之前对ecshop各种修改,但是这次自己做页面还是第一次,文件太多,函数也太多,一个一个的读过来时间很头疼的事情,于是就参照goods ...

  9. ECSHOP在线手册之布局参考图-首页 index.dwt

        A.logo替换 1,设置方法 后台商店设置里,上传logo就行,注意logo的名称必须是logo.gif 2,代码相关 page_header.lbi 中 <a href=" ...

随机推荐

  1. 一步一步制作yaffs/yaffs2根文件系统(四)---构建etc、dev等剩余目录

    开发环境:Ubuntu 12.04 开发板:mini2440  256M NandFlash   64M SDRAM 交叉编译器:arm-linux-gcc 4.4.3点此可下载 BusyBox版本: ...

  2. 蓝牙(2)用BluetoothAdapter搜索蓝牙设备示例

    注意在搜索之前要先打开蓝牙设备 package com.e.search.bluetooth.device; import java.util.Set; import android.app.Acti ...

  3. window.addEventListener来解决让一个js事件执行多个函数

    可能你也碰到过这种情况,就是在js的代码中用了window.onload后,可能会影响到body中的onload事件.这时就要用window.attachEvent和window.addEventLi ...

  4. WinCE下VPN设置

    一.环境 1.      WinCE5.0+2004/2005/2006/2007补丁. 2.      3G拨号模块. 二.说明 1.      WinCE设备必须可以接入网络. 2.      支 ...

  5. 取出block所对应的hash值

    /**********************************************************************//** Gets the hash value of t ...

  6. UVa 1210 (高效算法设计) Sum of Consecutive Prime Numbers

    题意: 给出n,求把n写成若干个连续素数之和的方案数. 分析: 这道题非常类似大白书P48的例21,上面详细讲了如何从一个O(n3)的算法优化到O(n2)再到O(nlogn),最后到O(n)的神一般的 ...

  7. C#String与string大小写的区别

    string是c#中的类 String是.net Framework的类 用string需要通过再次编译,所以直接用String速度会更快··· string是关键字,而String不是··· str ...

  8. I.MX6 driver goto 使用

    /************************************************************************** * I.MX6 driver goto 使用 * ...

  9. html的视频插件 (转)

         1)jMedia Element是一个基于jQuery/jQuery UI实现的HTML5音频/视频开发工具包.提供非常多的功能来控制页面中的音频和视频内容.当旧的浏览器不兼容HTML5时, ...

  10. Erlang入门(二)—并发编程

    Erlang中的process——进程是轻量级的,并且进程间无共享.查了很多资料,似乎没人说清楚轻量级进程算是什么概念,继续查找中...闲话不提,进入并发编程的世界.本文算是学习笔记,也可以说是< ...