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)

相关推荐

  • 编程语言s.m.art exhibition smarty静态实验表明,网络上是错的~呵呵

    复制代码 代码如下: <? require_once("Smarty/libs/Smarty.class.php"); $smarty = new smarty(); $sm ...

  • ECSHOP首页生成纯静态页插件

    ecshop首页生成静态首页插件 如果网站访问量比较大,我们可以把ecshop的网站的首页生成html,减小服务器的压力,让ecshop首页打开得更快一点 实现这个可以按以下两步完成: 一.打开adm ...

  • ECSHOP批量修改图片路径地址sql方法

    相信大家应该碰见过这样的问题,ECSHOP模板网 站首先是搭建在本地上传商品的,并且发布在二级目录下,这个时候商品详情里面上传的图片带的路径有这个二级目录,当网站数据完善好,发布到正式空间后,商 品详 ...

  • ECSHOP订单号生成规则修改教程

    负责订单编号生成规则的函数是 /includes/lib_order.php 文件中的 get_order_sn() 函数. 原来的程序代码为: return date('Ymd') . str_pa ...

  • 怎么设置ecshop伪静态设置方法

    ecshop伪静态设置方法,伪静态其实是ecshop非常好用的一个功能,他可以提高百度收录的速度很利于seo优化 那么如何设置伪静态呢? 商店设置-基本设置-url重写里 勾选"简单重写&q ...

  • ecshop 404页面设置方法

    404页面是HTTP状态码中的一种,简单的说就是当用户输入了错误的链接时返回的提示页面.别小看404,它会影响到流量,影响到网页排名,影响到用户体验,影响到xxoo- 什么是404错误 HTTP 40 ...

  • 广州户口本名字修改和其他资料变更方法

    办事事项:户口本资料修改 办事部门:公安局分局 >>广州市公安局派出所地址电话一览表 户口本资料修改条件 (一)公民要求变更姓名的. (二)公民要求将原随父或母确定的民族成份,变更为随母或 ...

  • 手机怎么修改路由器wifi密码?方法很简单,几分钟就能搞定

    手机怎么修改路由器wifi密码?方法很简单,几分钟就能搞定

  • 国医泰斗张锡纯:这个方法可以清掉体内的6种垃圾!

    有这么一样东西,听着怪,吃着怪,效果也很"怪"! 有个积食非常严重的朋友,山楂丸一天三四颗的吃,但是吃东西依然腹胀,便秘,然后我给她推荐了个吃的,连续吃了个把星期后,有一天她很开心 ...

  • 一种快速止痛和骨痂快速生成的药剂制作方法.pdf

    本发明涉及一种跌打损伤.冻结肩病人的快速止痛和骨折病人骨痂快速生成的药剂制作方法.     目前用于跌打损伤病人止痛.骨折病人促进骨痂生成的药物主要是西药,为止痛片或钙片.这些药物虽有一定疗效,但效果 ...