国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 網(wǎng)站 > 建站經(jīng)驗 > 正文

ecshop源碼分析-ecshop二次開發(fā)

2024-04-25 20:43:14
字體:
供稿:網(wǎng)友

ecshop源碼分析-ecshop二次開發(fā)

Ecshop包括的文件夾有admin、api、cert、data、images、includes、js、languages、plugins、temp、theme、wap、widget這些文件夾,和根目錄下的所有.php文件。這些文件和文件夾組成了整個ecshop。如果從軟件工程角度分析ecshop的話,ecshop的二級可以看成admin和前臺兩個部分。admin主要是面向服務(wù)端的,而前臺是面向客戶端的,這是這兩個部分的最明顯的差別。下面給出ecshop的二級流程圖:

此二級流程圖給出了admin模塊、前臺顯示模塊和數(shù)據(jù)庫模塊之間的一個關(guān)系。從上面的圖示可以看出,admin模塊要對數(shù)據(jù)庫進(jìn)行讀和寫,這里的讀和寫組成了整個的后臺的管理,包括商品的增加和刪減、留言的管理、訂單的處理等等。前臺模塊也要對數(shù)據(jù)庫進(jìn)行讀和寫,它的讀寫主要是完成交易的過程,寫的內(nèi)容基本都是和商品數(shù)量、點擊數(shù)量這些在商品交易中一定要改變的數(shù)字。在admin模塊也可以對前臺顯示部分進(jìn)行寫,這個寫的過程主要是完成前臺顯示方式的改變,比如admin模塊可以選擇模板;同樣也可以改變每個小模塊在某個頁面中是否顯示,以及顯示的位置(如果顯示)。

Images文件夾:

這個文件夾下有子文件夾,在這些子文件夾下面存放著當(dāng)前網(wǎng)站商品的原始圖片和縮略圖。這些子文件夾命名有規(guī)律的,它們的文件名是它們目錄下商品加入的年月份。也就是說在同一個月份加入的商品,它們的圖片是在同一個文件夾下的,且這個文件夾的名字就是當(dāng)前的年月份。后臺每添加一個帶圖片的商品,這邊都會在某個文件夾下出現(xiàn)提交圖片的副本。

Data文件夾:

這個文件夾是包括一些固定的數(shù)據(jù),比如固定的配置、圖片等等。在data這個文件夾下的config.php記錄了數(shù)據(jù)庫的一些固定的信息,afficheimg文件夾下存放這首頁最中間的flash的圖片源。實現(xiàn)將afficheimg文件夾下的圖片加載到首頁的flash中是通過文件夾flashdata下面文件夾dynfocus中的javascript來實現(xiàn)的。文件夾brandlogo下存放這有品牌商品的公司的logo,另外文件夾captcha下存放這驗證碼的背景圖片。

Theme文件夾:

頁面的顯示是有theme這個文件夾全權(quán)負(fù)責(zé)的。而這些準(zhǔn)備的數(shù)據(jù)是怎么在theme下的.dwt中顯示的呢?數(shù)據(jù)是通過smarty加載進(jìn)去的。在根目錄下每個.php文件中都會有類似$smarty->assign(’page_title’, $position['title']);這樣的句子,這樣page_title在對應(yīng)的dwt文件中就可以作為一個變量使用了。這樣就將php文件很dwt文件很好的結(jié)合好了。

下面稍微說一下dwt這個文件。這個文件中大部分的信息是自動生成的。在dwt文件中都會看到這樣的塊,這個快就是用來確定每個模塊顯示的位置的,如果在后臺將某個模塊選擇顯示在“左邊區(qū)域”,那么這個模塊的代碼會在上面的這個區(qū)域生成。當(dāng)然在dwt文件中我們也會到處看到這里面的代碼全都是自動生成的,要改也只能該.lbi文件。還有就是在出現(xiàn)之前,這兩個標(biāo)志之間不能直接編輯代碼,要加入自己的代碼必須要在和下一個BeginLibraryItem之前插入。

程序:

程序主要是包括(這里說的是關(guān)于前臺的)根目錄下的所有的php腳本、includes,js文件夾,這些所有的腳本完成了前臺顯示的數(shù)據(jù)準(zhǔn)備。所以它們在整個ecshop的結(jié)構(gòu)中占著相當(dāng)重要的地位,對ecshop的修改也主要集中在這些腳本中,這些腳本的具體分析會在后期中一一給出。

在上一篇中給大家?guī)砹薳cshop的總體的框架。從總體上看ecshop,相信大家的思路應(yīng)該很清楚。作為一個對開源項目修改者你來說,能對ecshop有個初步的了解就行了,下面我會給大家?guī)砦以谛薷膃cshop的過程中的一些體會。

記得在上一篇中我們聊到了Adobe的模板。下面我們來根據(jù)ecshop跟大家討論一下模板。說到模板,這就是ecshop前臺顯示的主要文件,如果你能很好理解theme下模板文件和樣式表文件,對于ecshop前臺顯示應(yīng)該沒有任何問題了。Ecshop中頁面到底是怎么顯示的呢?這個問題我們先放在一邊,我們先研究一下ecshop是怎么將一系列從數(shù)據(jù)庫中讀取出來,然后傳到顯示頁面中的。要解決這個問題我們要用根目錄下的index.php和theme/default下的index.dwt來作為用例。之所以用對應(yīng)的兩個文件夾,是因為在index.dwt中要顯示的數(shù)據(jù)是通過smarty從index.php中加載進(jìn)來的。在index.php中有如下代碼:

$position = assign_ur_here();

$smarty->assign('page_title', $position['title']); // 頁面標(biāo)題

$smarty->assign('ur_here', $position['ur_here']); // 當(dāng)前位置

首先它是調(diào)用函數(shù)assign_ur_here,這樣得到了變量$position,在變量$position中有title和ur_here這兩個變量。在index.dwt中會有如下代碼:

<title>{$page_title}<title>

是的,一旦$smarty->assign(’page_title’, $position['title'])執(zhí)行完,$page_title就會在index.dwt中成為一個可以使用的變量。那么到目前為止我們知道如何從php腳本中往dwt文件中傳我們需要的變量了。smarty就是通過這種機(jī)制將需要顯示的內(nèi)容傳到對應(yīng)的dwt文件中,這樣就實現(xiàn)了頁面與內(nèi)容的分離。Php腳本中的數(shù)據(jù)我們已經(jīng)有辦法在dwt文件中得到了,下面就是要解決如何顯示這些數(shù)據(jù)。凡是通過smarty加載到dwt文件中的變量,在顯示的時候都是加上{}來顯示的。如果加載過來的是數(shù)組那么就要通過smarty的循環(huán)來顯示,如果我傳進(jìn)來一個數(shù)組是 $school并且數(shù)組的每個條目中有name,那么下面的代碼就是實現(xiàn)在頁面中顯示數(shù)組的每個條目的name。

Foreach($school as $k)

{

echo $k[‘name’] . ‘ ’;

}

這樣就會在頁面中將數(shù)組的內(nèi)容全部打印出來了。

下面我們來舉個例子來說明一下dwt到底是怎么顯示的。

在index.php中的某個地方寫上 smarty->assign(‘test’, ‘This is just a test!’);

然后在index.dwt中某個地方寫上{$test},然后在首頁中就會有“This is a test!”。當(dāng)然它顯示的地方跟你把{$test}放在哪里有關(guān)系。當(dāng)然這個位置是有規(guī)定的,dwt中不是任何的地方都可以編輯的,有些地方是不能動的,這些我們會在后面一一給出講解。這個時候如果在你的首頁中沒有出現(xiàn)“This is a test!”這個內(nèi)容,那么你也不要擔(dān)心,因為ecshop中默認(rèn)的cache是開著的,不能顯示肯定是cache的問題,這個我們在后面也會給出講解。今天就到這里,今天我們討論了如何往dwt中傳參數(shù)和參數(shù)的顯示。下一次會給出上面遺留問題的講解,Thanks。

大家好,今天我們來解決上次遺留下的問題。上次我們談到了如何從php腳本中往dwt模板中傳參數(shù),同時我們留下了兩個問題,第一是dwt中有的地方是不可以編輯的;第二是往dwt中傳參數(shù)并且讓它顯示,它不一定顯示出來。

首先我們來討論一下第一個問題——為什么有的地方不可以編輯。我們通過討論index.dwt來分析一下這個問題的原因。在index.dwt中我們會看到好多形如

這樣的語句。如果對ecshop的后臺的管理有點了解的朋友們對“左邊區(qū)域”這幾個字應(yīng)該很熟悉吧!不錯,在后臺的模板管理->設(shè)置模板中你會看到如下的圖片

從表面上看,大家都應(yīng)該知道,比如“商品分類樹”是在整個頁面的中間區(qū)域顯示。那么為什么在后臺這邊重新選擇一下并且確定,在頁面顯示就會按照你的選擇來顯示呢了?它的實質(zhì)是這樣的,上面每個模塊是對應(yīng)一個庫文件(就是theme下library下的lbi文件),當(dāng)你把上面的這些按照你的布局設(shè)置好后點擊確定,程序就會按照你的布局的選擇將每個lbi文件的內(nèi)容寫入到index.dwt中,那么lbi文件中的內(nèi)容往哪里寫呢,這個時候上面的

這句話就起到作用了,比如上面“銷售排行”是選擇的右邊區(qū)域,那么當(dāng)你確定以后,程序會對index.dwt重寫一邊,其中“銷售排行”對應(yīng)的lbi(就是top10.lbi)中的內(nèi)容會被完全的讀取并且寫到index.dwt中和之間。那么這個時候大家可能有一個疑問,如果有很多的內(nèi)容要往右邊區(qū)域?qū)懀悄膫€先寫呢?上面的圖中有個“序號”,這個就是決定寫的順序的。下面是寫之后index.dwt文件中和之間的一段代碼:

<div class="box">

<div class="box_2">

<div class="top10Tit">div>

<div class="top10List">

<ul>

<li><img src="../images/top_{$smarty.foreach.top_goods.iteration}.gif"> <a title="{$goods.name|escape:html}" href="{$goods.url}">{$goods.short_name}a>

li>ul>

div>

div>

div>

<div class="blank5">div>

好的,到了這里相信大家應(yīng)該清楚很多了,那么到底是為什么index.dwt中有些的地方是不可以編輯的。大家想一想上面這段代碼是從哪邊而來的,對的,是從top10.lbi中讀取出來的,然后寫到這里的,如果你編輯這里,然后下次再重新布局后,這邊的內(nèi)容不是要被重寫掉了嘛!所以在index.dwt中類似和之間的內(nèi)容是動態(tài)生成的,是不可編輯的,如果真的想編輯這邊的內(nèi)容,就就編輯對應(yīng)的lbi文件。

相信大家已經(jīng)清楚,為什么dwt文件中部分地方是不可編輯的。那么今天就和大家談到這里,下次我們來研究一下cache的問題。我感覺這個很是頭疼(如果你自己添加了session)。

上次我們主要討論了關(guān)于模板的問題,最后我們留下了一個問題——cache的問題。我覺得這個問題到目前位置先不要討論好,再往后一點我們再來分析這個問題。到現(xiàn)在我們知道了模板的一些操作了,但是我們還是很郁悶,因為我們只是在ecshop的前臺框架的控制之下。那么我們?nèi)绾文軌蛎撾x出來呢?如果我們能做到自己添加屬于自己或者可以放自己想要放的東西的模板,那么應(yīng)該算是到了一個更高的臺階來看ecshop了。

要做到添加一個模板就必須做到前臺可以顯示這個模板,后臺可以編輯這個模板。下面我們一步一步教大家怎么添加一個屬于自己的模板。在添加之前我們先稍微分析一下,對以一個模板,在前臺一定有一個php文件和它對應(yīng)(很顯然這個php文件就是實現(xiàn)給這個模板文件傳送數(shù)據(jù)的)。并且在后臺可以編輯這個模板對于的模塊,也就是在模板管理——設(shè)置模板中有你加的模板的選項。下面我們來添加一個home模板。首先在根目錄下新建home.dwt和home.php。然后將index.dwt和index.php中的內(nèi)容分別拷貝到home.dwt和home.php中。對于這個模板的內(nèi)容完全由你自己決定,你的內(nèi)容就會決定你要怎么修改home.dwt和home.php。當(dāng)然這個模板的內(nèi)容是受限制的,首先要home這個模板的候選的庫文件是存在的。這個是什么意思呢?這句話的意思就是對于每個模板文件,可以調(diào)用的庫文件是固定的,并且這些可以調(diào)用的庫文件在文件admin/includes/lib_templete.php中定義的。首先要在后臺將home這個模板放入到可設(shè)置內(nèi)容的模板中,部分代碼如下:

/* 可以設(shè)置內(nèi)容的模板 */

$template_files = array(

'home.dwt',

'index.dwt',

'zhiku.dwt',

'article.dwt',

'article_cat.dwt',

'brand.dwt',

'category.dwt',

'user_clips.dwt',

'compare.dwt',

'gallery.dwt',

在上面的代碼中就將home.dwt加入到后臺的可編輯模板中,這個時候你就可以在后臺的模板管理->設(shè)置模板中編輯home模板了。但是到這里我們發(fā)現(xiàn)一個很小的問題,那就是這個home模板在后臺是顯示成什么名字。其實這個很簡單,只要在文件language/zh_cn/admin/template.php中添加$_LANG['template_files']['home'] = ‘home模板’;這樣的語句,那么在后臺看到的home模板的名稱就是“home模板”,當(dāng)然這里也可以設(shè)置成其他的名稱。在上面我們有說到每個模板可以調(diào)用的庫文件是固定的,既然說是固定的,那應(yīng)該是哪些呢?就拿index來說吧,在文件admin/includes/lib_templete.php中有下面這樣的代碼:

'index' => array(

'/library/ur_here.lbi' => 0,

'/library/search_form.lbi' => 0,

'/library/member.lbi' => 0,

'/library/new_articles.lbi' => 0,

'/library/success_article.lbi' => 0,

'/library/dynamic_article.lbi' => 0,

'/library/school_article.lbi' => 0,

'/library/category_tree.lbi' => 0,

'/library/top10.lbi' => 0,

'/library/invoice_query.lbi' => 0,

'/library/recommend_best.lbi' => 3,

'/library/recommend_new.lbi' => 3,

'/library/recommend_hot.lbi' => 3,

'/library/recommend_promotion.lbi' => 4,

'/library/group_buy.lbi' => 3,

'/library/auction.lbi' => 3,

'/library/brands.lbi' => 0,

'/library/promotion_info.lbi' => 0,

'/library/cart.lbi' => 0,

'/library/order_query.lbi' => 0,

'/library/email_list.lbi' => 0,

'/library/vote_list.lbi' => 0

),

那么這邊枚舉到的庫文件,對于index.dwt都可以調(diào)用的。依葫蘆畫瓢,home.dwt需要調(diào)用哪些庫文件,那么就對應(yīng)上面這個寫就是了,相信大家都有這個水平。好的,到目前為止一個模板文件添加成功了,那么它在瀏覽器中的顯示就要通過后臺的設(shè)置模板來確定了。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
免费午夜一级| 日本国产在线| 久久精品视频免费看| 久久av少妇| 中文字幕高清av| 国产视频精品久久| 18激情网站| 日韩国产成人| 国产区在线观看| 亚洲日本一区二区三区在线观看| 麻豆精品不卡国产免费看| 天天av天天爽| 精品剧情v国产在线观看| 天堂√中文在线| 尤物在线视频| av在线中文| 国产成+人+亚洲+欧美+综合| eeuss影院www在线观看| 国产精品自产拍在线网站| 69精品视频| 国产羞羞视频在线观看| 亚洲精品国自产拍在线观看| 国产秀色在线www免费观看| 亚洲精品视频在线免费| 国产欧美久久久久久久久| 青草视频在线播放| 一区免费观看| 6699久久国产精品免费| 国产理论片免费观看| www.91av| 亚洲天堂久久久| 精精国产xxxx视频在线中文版 | 香蕉视频网站在线播放| 国产精品入口麻豆免费看| 四虎成年永久免费网站| 99热国产在线| 国产人成精品| 国产夫妻视频| 精品日韩av| 在线播放国产区| 伊人电影在线观看| 精精国产xxxx视频在线| 国产一区二区在线|播放| 国产尤物视频在线| 亚洲第一区视频| а√天堂www在线а√天堂视频| 国产毛片毛片| 久久一本精品| 中文字幕日本在线观看| 尤物视频在线观看| 国产一级粉嫩xxxx| 国产小视频免费在线网址| 中文字幕亚洲免费| 国产成人福利| 日本不卡视频一区二区| 超碰在线中文| 国产免费av在线| 国产精品久久久久白浆| 精品街拍一区二区| wwww亚洲| 国产香蕉视频在线看| 国产素人视频在线观看| 99热免费在线| 九九色在线观看| 国产对白在线| 久热免费在线视频| 2021av天天| 国产蜜臀av在线播放| 精品176二区| 91超碰在线免费| 国产精品国产三级国产试看| av丝袜在线| 国产性色视频| 男人天堂v视频| 国产白浆在线| 黄色毛片在线观看| 国产极品一区二区三区| 麻豆网站在线| 一本大道香蕉久久| 国产三级视频| 青娱乐在线视频观看| 国产福利三区| 国产小视频在线高清播放| а√天堂www在线а√天堂视频| 国产网红女主播精品视频| 欧美专区日韩| 国产成人夜间影院在线观看| 快射av在线播放一区| 在线观看免费高清完整| 国产激情网址| 国产视频青青| 国产免费高清| 1区2区3区在线| 国产美女极品在线| 欧洲亚洲精品视频| 免费午夜一级| 青青免费在线视频| 亚洲综合天堂网| av中文在线资源| av中文资源在线| 亚洲欧美中文字幕在线观看| 精品国产一区二区三区不卡在线| 国产特级淫片免费看| 国产一区二区影视| 国产探花在线观看| 国产国语**毛片高清视频| 中文字幕av中文字幕| 最好2018中文免费视频| 国产羞羞视频在线观看| 精品视频二区| 欧美性猛交xxxxbbbb| 久久综合精品视频| 中文字幕亚洲免费| 国产wwww| 亚洲v片在线观看| 欧美黑人乱大交| 久热免费在线视频| 国产一级大片| 午夜影院在线| 国产麻豆精品视频一区二区 | 在线观看午夜av| 日本动漫同人动漫在线观看| 另类综合图区| 国产黄色一级电影| www.91在线播放| 尤物视频网站在线观看| 国产成人午夜精品| 黄色国产网站在线观看| 91黄色在线| 中文字幕第一页在线| 影音先锋中文字幕在线| 九九热在线播放| 777电影在线观看| 国产资源在线看| 精品av中文字幕在线毛片| 久久一本精品| 夜夜操com| 国产激情视频在线| 尤物视频免费在线观看| 四虎a级欧美在线观看| 国产丝袜在线| 免费在线黄色av| 在线免费看黄| 国产欧美久久久久久久久| 麻豆网站在线免费观看| 精品176二区| 国产精品日日爱| 天堂在线中文资源| 久热久精久品这里在线观看| 在线国产三级| 精品精品导航| 中文av在线播放| 尤物在线视频观看| 2018中文字幕在线| 国产黄色免费在线观看| 国产亚洲精品久久久久久移动网络 | 99热在线免费播放| www.eeuss影院| 在线免费观看黄色av| 国产区av在线| 国产福利三区| 99在线免费视频| 精品黄色免费中文电影在线播放| 国产黄在线播放| 国产福利在线播放麻豆| 91中文字幕| av手机免费观看| 日本免费视频www| www久久日com| 福利视频在线看| 国产天堂素人系列在线视频| 最近中文字幕mv免费高清电影 | 国产中文在线观看| 国产精品一区二区婷婷| 九九在线免费视频| 天堂在线亚洲| 国产成人精品久久一区二区小说| 国产h色视频在线观看| а√天堂8资源在线官网| 国产在线视精品麻豆| 五月综合网站| 国产va在线| 免费av在线| 国产午夜在线视频| 精品入口麻豆传煤| 九九精品视频在线观看九九| 国产免费高清| 中文国产字幕在线观看| 男女午夜视频在线观看| 国产三级在线| 青青青青在线| 国产高清免费在线播放| eeuss影院在线观看| 国产人成在线观看| 欧美日韩一区二区三区在线播放 | 中文字幕在线永久在线视频| 中文av资源在线| 国产一区在线视频观看| 精品国产一区二区三区四区阿崩| 久久国产情侣|