2019独角兽企业重金招聘Python工程师标准>>>

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);//生成文件

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

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

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

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

类似代码:

$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

转载于:https://my.oschina.net/u/779687/blog/136951

ECSHOP系统纯静态网页的生成相关推荐

  1. 前端html纯静态网页汽车保养服务类资讯网站可用于商业开发及毕业设计素材含源码(div+css+jquery)

    基于html+div+css+jquery开发,可用于毕业设计,商业开发,属于纯静态html网页, 源码下载地址:>>>请点击!

  2. 纯静态网页限制vip普通会员浏览观看视频文章内容次数苹果cms为例

    有的网站.只有vip会员才可无限制浏览内容,普通会员或游客则只允许浏览3个内容或几个. 对会员的限制,动态或伪静态的页面,通过php容易实现.只需要查询数据库,得到会员的级别即可判断.但对于生成的纯静 ...

  3. 纯静态网页设计鞋服包包 鞋子 童装 服装网店商城html模板.rar(含源码+论文)

    1.1研究现状 2 1.2研究目的 3 1.3研究思路和内容 3 2.1网上购物 4 2.2网购的作用 4 2.3网购的安全性 5 3.1B/S的六大对象 6 (1) Application对象 6 ...

  4. python 静态网站生成_使用Django模板系统或静态站点生成器生成HTML文件?

    我正在尝试为一个个人网站建立一个适当的工作流程.在 我使用的是仙人掌静态网站生成器,它利用了Django模板系统.在 我知道我想做什么,但我不知道怎么做,因为仙人掌的教程是有限的.在 我的目录结构如下 ...

  5. wordpress真正静态化插件really-static(纯静态html网页生成插件)

    初期被推荐了两款插件:cos-html-catch,,super static cache,really static,本人一直使用的是super static cache还是不错的.但通过个人试用筛 ...

  6. 域名生成html,wordpress纯静态html网页生成插件simply-static

    有时不得不承认wordpress比较占用服务器资源以及运行较慢的事实,先前使用万网虚拟主机搭建的wordpress站点,就经常因为消耗过大而被停止站点.提高wordpress运行速度的方法有多种,比如 ...

  7. Java Web学习(2):静态网页与动态网页

    一静态网页 (1)静态网页概述 在网站设计中,纯粹HTML(标准通用标记语言下的一个应用)格式的网页通常被称为"静态网页",静态网页是 标准的HTML文件,它的文件扩展名是.htm ...

  8. 静态网页与动态网页的区别

    原创图片 插曲 在开始主题之前,先来统一几个概念. 实际上,关于互联网(internet,国际标准首字母是小写).因特网(Internet,国际标准首字母是大写)和计算机网络三者的概念并没有完整统一的 ...

  9. 老y文章管理系统php,老y文章管理系统纯静态版

    老Y文章系统纯静态版v1.0(依照老Y官方v3.0sp1修改). 关于升级:如果没有改动下列文件,则其它文件按照老Y官方升级替换. Index.asp 修改显示首页幻灯片纯静态网页连接 Js.asp ...

最新文章

  1. LeetCode Remove Duplicates from Sorted List II
  2. 注意!!Redis使用不当真的可能会导致应用卡死
  3. php程序员写bug,程序员的修炼-我们为什么会编写BUG
  4. 金蝶携手工商银行完成首单数字人民币费用报销业务
  5. eclipse package explorer视图中怎么让default package不显示?
  6. makefile指定头文件路径_玩转Makefile | 企业项目Makefile实例
  7. bzoj 1133: [POI2009]Kon(DP)
  8. storm中的RotatingCache技术
  9. PLSQL Developer详细安装步骤
  10. 筹备酒吧之路——音响篇
  11. windows自带的使用键盘代替鼠标操作问题._百度知道
  12. Vue.js 菜鸟教程 思维导图
  13. 火车采集器采集多页内容的抓取方法
  14. 如何设计一个电商平台积分兑换系统?
  15. 微信公众帐号开发-自定义菜单的创建及菜单事件响应的实例
  16. ff14 掉线 服务器维护,《FF14》29日更新维护 暂不推出手工补丁
  17. 【渝粤教育】国家开放大学2018年秋季 2408T中国当代文学 参考试题
  18. HTML5中利用JavaScript实现拖放(来回)的案例
  19. 某博物馆最多可容纳500人同时参观,有一个出入口,该出入口一次仅允许一个人通过。
  20. 牛顿插值c语言分析作业,牛顿插值函数C语言程序实现

热门文章

  1. Maven打包web项目报错:webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update)
  2. java 对象数据 搜索,java – 使用反射检索对象的数据类型
  3. class view里面的目录项_Eclipse里面出现一排open a terminal,怎么把消除它???
  4. php 请求转发 重定向,PHP怎么实现页面重定向?(图文+视频)
  5. 2020-12-14 Matlab 模糊控制 车辆泊车 案例分享
  6. linux中awd的详细使用方法,求教awdflash的使用方法,详细些,我是初學者。
  7. 鸿蒙系统突破,华为解锁新成就!新系统用户突破1亿,鸿蒙系统也传来了新消息...
  8. 最大矩形面积_JAVA
  9. 【C++】21.函数传参 传指针和传引用的区别
  10. IntelliJ IDEA 常用设置