ecshop商品页面改成html,ECSHOP伪静态修改生成纯静态页面设置方法

伪静态已经基本上可以满足大部分人的需求,如果不满足的还可以根据前面的一篇文章对重写规则进行修改,以满足自己的需求。但是本文所要描述的是,根据ECSHOP内在的一些代码,我们生成纯静态的网页,使系统更好的优化。在这里,我们先对首页进行纯静态生成。

1.复制首页index.php为index_html.php,因为ECSHOP是使用SMARTY模板引擎的,所以我们可以使用SMARTY生成文件函数,把模板

的静态网页输出。

在首页中,$smarty->display('index.dwt', $cache_id);有这一句,说明是把网页显示出来,现在我们把它改成如下代码(参看注释)

$file = 'index.html';//静态网页文件名

$content = $GLOBALS['smarty']->make_html('index.dwt');//根据index.dwt模板生成网页内容

$filename = ROOT_PATH . $file;//静态网页路径

file_put_contents($filename, $content);//生成文件

以上几条简单的语句,我们就可以生成首页的静态网页。同理,我们可以生成产品类别和产品的静态网页,整个系统的静态化就完成了。

首页静态页面生成后,我们接下来要生成的是产品类别的静态页面,我的想法是把产品类别页面保存在跟目录下,这样虽然会比较乱,

但是比较适合优化,因为一般搜索引擎抓取的时候只抓取二到三层。把产品类别放在根目录,体现产品类别的重要性,易于搜索引擎的 内容来自LZ工作室

抓取,另外一方面,我们可以把产品放在下个目录中。

类似代码:

$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 ;

有人问 make_html 这个函数在那里: 我现在补充如下:

在 includes 下的 cls_template.php 加上

function make_html($filename, $cache_id = '')

{

ob_start();

$this->display($filename,$cache_id);

$out = ob_get_contents();

ob_end_clean();

return $out;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值