剛開始接觸一個新的系統,最好是全面的熟悉,理解整個頁面怎麼輸出,怎麼控制的。不要剛開始就是分析某一項功能,或者只是瞭解須要更改的那一部份內容。對於Prestashop 這種系統,咱們更要全面的瞭解。php
接觸Prestashop 這個系統有一段時間了,寫個模塊,更改一下顯示效果,作一個頁面,仍是很隨意的。可是一直沒有認真的去分析和理解整個網站的結構。今天特地抽了一點時間來研究一下,而且將本身的分析記錄下來了,理解得不是很透徹,可是經過這個仍是可以幫助你們理解Prestashop 這個系統的。如今Prestashop 的最新版本是1.6了,結構有了不少改變。瞭解了1.3的結構,有了必定的基礎,更有利於咱們理解 1.6的結構和體會Prestashop在這幾年中的進步。css
Prestashop 1.3.7 的目錄結果以下html
這裏主要是經過一個頁面來分析整個結構,訪問頁面包括index.php、cart.php、address.php等等。數據庫
1.1 使用_autoload($className)載入classes目錄下的相關class
1.2 經過判斷config/settings.inc.php文件是否存在,來判斷程序是否安裝,而後載入 config/settings.inc.php 文件, settings.inc.php 文件主要定義了數據庫信息:網站的_PS_BASE_URL_路徑、數據庫信息、主題名稱
1.3 載入 config/defines.inc.php,此文件主要設置網站的自定義變量,包括網站的各個文件夾
1.4 設置和載入網站的基本變量,載入配置:Configuration::loadConfiguration();,載入語言:Language::loadLanguages();,加載全部區/稅收關係:Tax::loadTaxZones();,設置默認的國家:$defaultCountry = new Country(intval(Configuration::get(‘PS_COUNTRY_DEFAULT’)));,設置網站時區
1.5 引用smarty.config.inc.php,載入Prestashop 系統的 Smarty 模板的基本配置信息網站
2.1 載入ini.php文件
2.1.1 判斷模板文件是否存在,作出相應的處理
2.1.2 獲取頁面的名稱,以id的形式顯示在body
2.1.3 實例化Cookie,設置Cookie的基本變量,包括當前頁面顯示的語言、用戶的信息、貨幣信息等。處理購物車的相關信息。
2.1.4 設置 smarty 模板中要使用的相關方法:dateFormat、productPrice、convertPrice、convertPriceWithoutDisplay、convertPriceWithCurrency、displayWtPrice、displayWtPriceWithCurrency、displayPrice、convertAndFormatPrice
2.1.5 定義網站連接,是http仍是https模式
2.1.6 在smarty中設置相關的參數:模板路徑、語言文件路徑、郵件路徑、頁面名稱、tpl路徑、貨幣、購物車信息等。
2.1.7 判斷商店是否關閉,關閉的話,顯示設置相關的路徑。
2.2 Smarty 中定義 HOOK_HEADER、HOOK_LEFT_COLUMN、HOOK_TOP、token等信息
2.3 判斷和載入相關的js和css文件
2.4 載入theme中的header.tpl,header.tpl主要輸出頁面頭部,包含HOOK_HEADER、HOOK_TOP、HOOK_LEFT_COLUMN等內容以及左側的內容。rest
4.1 Smarty 中定義 HOOK_RIGHT_COLUMN、HOOK_FOOTER等內容
4.2 載入theme中的footer.tpl文件,輸出右側的內容和底部的內容orm