首页 > 代码库 > 入手ecshop
入手ecshop
用入手这个词可能有点草率,但是以我有限的汉语词汇量也想不出更恰当的词儿。
本科阶段一直无视C以外的程序语言,虽然也有学过JAVA,甚至数据库语言这种算不上程序语言的不知道什么东西。毕业以后发现自己C也没有学的很好,其他的东西更是两眼一抹黑。于是开始睁眼看世界,狂补以前留下的不足,第一个着手点就是PHP。
最开始抱着core php programming看,看完chapter1-chapter8,到之后的一个个具体的函数说明就再也看不下去了,就是这么狂躁,没辙。
搁了几天后,一次巧合看到了php的ecshop这个开源的项目,感觉不错,代码量似乎也不大,整个工程解压缩以后也就18.6M,于是下下来从它入手开始学PHP。
刚入手ecshop时还是蛮晕,除了知道主页的索引页index.php在upload文件夹下其他啥也不知道了,在网上找了其结构看了看,思路清晰了许多。网上关于ecshop的结构很多,在此就不重复劳动也不转帖了,说一下除了网上有的文章外,自己对整个ecshop的一些理解。
ecshop中除了txt外,有7种重要的文件格式:
- php
- dwt
- lbi
- css
- html/htm
- xml
- js
其中dwt和lbi文件之前完全没听说过,在此简单说一下。dwt是网页模板文件Dreamweaver Template,简单来说就是用html写的文件,如upload/themes/default/activity.dwt代码如下所示:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> 5 <meta name="Keywords" content="{$keywords}" /> 6 <meta name="Description" content="{$description}" /> 7 <!-- TemplateBeginEditable name="doctitle" --> 8 <title>{$page_title}</title> 9 <!-- TemplateEndEditable --><!-- TemplateBeginEditable name="head" --><!-- TemplateEndEditable --> 10 <link rel="shortcut icon" href="favicon.ico" /> 11 <link rel="icon" href="animated_favicon.gif" type="image/gif" /> 12 <link href="{$ecs_css_path}" rel="stylesheet" type="text/css" /> 13 {* 包含脚本文件 *} 14 {insert_scripts files=‘common.js‘} 15 </head> 16 <body> 17 <!-- #BeginLibraryItem "/library/page_header.lbi" --><!-- #EndLibraryItem --> 18 <!--当前位置 start--> 19 <div class="block box"> 20 <div id="ur_here"> 21 <!-- #BeginLibraryItem "/library/ur_here.lbi" --><!-- #EndLibraryItem --> 22 </div> 23 </div> 24 <!--当前位置 end--> 25 <div class="blank"></div> 26 <div class="block"> 27 <h5><span>{$lang.activity_list}</span></h5> 28 <div class="blank"></div> 29 <!-- {foreach from=$list item=val} --> 30 <table width="100%" border="0" cellpadding="5" cellspacing="1" bgcolor="#dddddd"> 31 <tr> 32 <th bgcolor="#ffffff">{$lang.label_act_name}</th> 33 <td colspan="3" bgcolor="#ffffff">{$val.act_name}</td> 34 </tr> 35 <tr> 36 <th bgcolor="#ffffff">{$lang.label_start_time}</th> 37 <td width="200" bgcolor="#ffffff">{$val.start_time}</td> 38 <th bgcolor="#ffffff">{$lang.label_max_amount}</th> 39 <td bgcolor="#ffffff"> 40 <!-- {if $val.max_amount > 0} --> 41 {$val.max_amount} 42 <!-- {else} --> 43 {$lang.nolimit} 44 <!-- {/if} --> 45 </td> 46 </tr> 47 <tr> 48 <th bgcolor="#ffffff">{$lang.label_end_time}</th> 49 <td bgcolor="#ffffff">{$val.end_time}</td> 50 <th bgcolor="#ffffff">{$lang.label_min_amount}</th> 51 <td width="200" bgcolor="#ffffff">{$val.min_amount}</td> 52 </tr> 53 <tr> 54 <th bgcolor="#ffffff">{$lang.label_act_range}</th> 55 <td bgcolor="#ffffff"> 56 {$val.act_range} 57 <!-- {if $val.act_range ne $lang.far_all} --> 58 :<br /> 59 <!-- {foreach from=$val.act_range_ext item=ext} --> 60 <a href="{$val.program}{$ext.id}" taget="_blank" class="f6"><span class="f_user_info"><u>{$ext.name}</u></span></a> 61 <!-- {/foreach} --> 62 <!-- {/if} --> 63 </td> 64 <th bgcolor="#ffffff">{$lang.label_user_rank}</th> 65 <td bgcolor="#ffffff"> 66 <!-- {foreach from=$val.user_rank item=user} --> 67 {$user} 68 <!-- {/foreach} --> 69 </td> 70 </tr> 71 <tr> 72 <th bgcolor="#ffffff">{$lang.label_act_type}</th> 73 <td colspan="3" bgcolor="#ffffff"> 74 {$val.act_type}<!-- {if $val.act_type ne $lang.fat_goods} -->{$val.act_type_ext}<!-- {/if} --> 75 </td> 76 </tr> 77 <!-- {if $val.gift} --> 78 <tr> 79 <td colspan="4" bgcolor="#ffffff"> 80 <!-- {foreach from=$val.gift item=goods} --> 81 <table border="0" style="float:left;"> 82 <tr> 83 <td align="center"><a href="goods.php?id={$goods.id}"><img src="{$goods.thumb}" alt="{$goods.name}" /></a></td> 84 </tr> 85 <tr> 86 <td align="center"><a href="goods.php?id={$goods.id}" class="f6">{$goods.name}</a></td> 87 </tr> 88 <tr> 89 <td align="center"> 90 <!-- {if $goods.price > 0} --> 91 {$goods.price}{$lang.unit_yuan} 92 <!-- {else} --> 93 {$lang.for_free} 94 <!-- {/if} --> 95 </td> 96 </tr> 97 </table> 98 <!-- {/foreach} --> 99 </td>100 </tr>101 <!-- {/if} -->102 </table>103 <div class="blank5"></div>104 <!-- {/foreach} -->105 </div>106 <div class="blank5"></div>107 <!--帮助-->108 <div class="block">109 <div class="box">110 <div class="helpTitBg clearfix">111 <!-- #BeginLibraryItem "/library/help.lbi" --><!-- #EndLibraryItem -->112 </div>113 </div>114 </div>115 <div class="blank"></div>116 <!--帮助-->117 <!--友情链接 start-->118 <!--{if $img_links or $txt_links }-->119 <div id="bottomNav" class="box">120 <div class="box_1">121 <div class="links clearfix">122 <!--开始图片类型的友情链接{foreach from=$img_links item=link}-->123 <a href="{$link.url}" target="_blank" title="{$link.name}"><img src="{$link.logo}" alt="{$link.name}" border="0" /></a>124 <!--结束图片类型的友情链接{/foreach}-->125 <!-- {if $txt_links} -->126 <!--开始文字类型的友情链接{foreach from=$txt_links item=link}-->127 [<a href="{$link.url}" target="_blank" title="{$link.name}">{$link.name}</a>]128 <!--结束文字类型的友情链接{/foreach}-->129 <!-- {/if} -->130 </div>131 </div>132 </div>133 <!--{/if}-->134 <!--友情链接 end-->135 <div class="blank"></div>136 <!-- #BeginLibraryItem "/library/page_footer.lbi" --><!-- #EndLibraryItem -->137 </body>138 </html>
全是html标签!lbi文件DreamWeaver HTML Library Module解释起来费劲儿,简单来说还是html代码写的文件,在此就不贴代码了,那么这两个文件有没有关系,或者是什么关系呢,从ecshop的文章列表页: article_cat.dwt结构图中能清楚地感受到:
dwt文件和lbi文件是从属关系,每个dwt文件由若干个lbi文件组成,这里就不用管lbi文件是什么什么库、重复使用之类的。
ecshop一共有22个dwt文件,分别表示22个不同的页面,至于由多少个lbi文件我就没去统计。
根目录有三个文件夹,upload、upgrade、docs。我在这里刻意把upload文件夹放在最前面,因为它最重要,前台、后台、数据处理都是在它下面完成的;upgrade从名字来看是用于升级的,我还没看这个文件夹下的内容;docs下是一些文档,暂时不管。
主页的索引文件index.php在upload文件夹下,是程序的入口点,我还是决定用最原始的方式,跟程序的执行流程。
入手ecshop