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

相关文章
相关标签/搜索