ECSHOP系統純靜態網頁的生成

ecshop是一個很不錯的網店系統,如今不少公司都在用它,它自己優化也很好,不過由於是網店,不少東西都是動態的,因此,對優化來講,不怎麼好,不過慶幸的是它能夠僞靜態。而且有兩種重寫方法,在後臺的商店設置中,能夠選擇簡單重寫和複雜重寫。 php

僞靜態已經基本上能夠知足大部分人的需求,若是不知足的還能夠根據前面的一篇文章對重寫規則進行修改,以知足本身的需求。 html

可是本文所要描述的是,根據ECSHOP內在的一些代碼,咱們生成純靜態的網頁,使系統更好的優化。 函數

在這裏,咱們先對首頁進行純靜態生成。 優化

1.複製首頁index.php爲index_html.php,由於ECSHOP是使用SMARTY模板引擎的,因此咱們可使用SMARTY生成文件函數,把模板 ui

的靜態網頁輸出。 搜索引擎

在首頁中,$smarty->display('index.dwt', $cache_id);有這一句,說明是把網頁顯示出來,如今咱們把它改爲以下代碼(參看註釋) .net

 

$file = 'index.html';//靜態網頁文件名
$content = $GLOBALS['smarty']->make_html('index.dwt');//根據index.dwt模板生成網頁內容
$filename = ROOT_PATH . $file;//靜態網頁路徑
file_put_contents($filename, $content);//生成文件 htm

以上幾條簡單的語句,咱們就能夠生成首頁的靜態網頁。同理,咱們能夠生成產品類別和產品的靜態網頁,整個系統的靜態化就完成了。 模板引擎


首頁靜態頁面生成後,咱們接下來要生成的是產品類別的靜態頁面,個人想法是把產品類別頁面保存在跟目錄下,這樣雖然會比較亂, 索引

可是比較適合優化,由於通常搜索引擎抓取的時候只抓取二到三層。把產品類別放在根目錄,體現產品類別的重要性,易於搜索引擎的

抓取,另一方面,咱們能夠把產品放在下個目錄中。

相似代碼:

$filename = build_uri('category', array('cid' => $catinfo['cat_id']));//構造路徑,這個能夠選擇本身喜歡的構造方法
$content = $GLOBALS['smarty']->make_html('category.dwt');//產生靜態頁面內容
$filename = ROOT_PATH . $filename;//生成文件路徑,在根目錄下
file_put_contents($filename, $content);//輸出

產品的靜態頁面代碼:

$goodinfo = get_all_goodsinfo($goods_id);
$cat_name = $goodinfo['cat_name'];
$goodsfile = build_uri('goods', array('gid' => $goods_id));
$content = $GLOBALS['smarty']->make_html('goods.dwt');
$html_tempdir = (ROOT_PATH.$cat_name.'/');
if (!is_dir($html_tempdir))//生成產品目錄
{
mkdir($html_tempdir);
}
$htmlfilename = ROOT_PATH . $goodsfile;
file_put_contents($htmlfilename,$content);

個人是使用類別名稱加下劃線:

function build_uri(........)

................

case 'category':
$cat_name = $GLOBALS['db']->getOne('SELECT cat_name FROM ' . $GLOBALS['ecs']->table('category') . " WHERE cat_id = '$cid'");

$uri = $cat_name . '-' . $cid;
if (!empty($page))
{
$uri .= '-' . $page;
}

........

case 'goods':

$goods_info = $GLOBALS['db']->getRow('SELECT g.goods_name, c.cat_name FROM ' . $GLOBALS['ecs']->table('goods') . " as g left join " . $GLOBALS['ecs']->table('category') . " as c on c.cat_id = g.cat_id WHERE g.goods_id = '$gid'"); $goods_name = $goods_info['goods_name']; $cat_name = $cat_name; $uri = $cat_name . '/' . $goods_name . '-' . $gid

相關文章
相關標籤/搜索