文档章节

ECSHOP系统纯静态网页的生成

M
 MR梁
发布于 2013/06/10 12:00
字数 715
阅读 306
收藏 7

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

© 著作权归作者所有

M
粉丝 5
博文 78
码字总数 55985
作品 0
广州
私信 提问
盘点国内 4 款好用的开源商城系统

TPshop商城 -- ( Thinkphp shop的简称 )B2C 和 B2B2C商城免费开源 TPshop 是用thinkphp开发的shop 一款免费开源网店系统,适合企业及个人,包含 (微信商城 + wap + android + ios + pc) 二次开...

ThinkPHPshop
2016/05/28
67
0
您好 想咨询一下ECShop以后的发展情况

@高春辉 你好,想跟你请教个问题: 我现在正打算用ECShop来搭建一个电子商城之类的网站,不知道您是否还负责ECShop的开发或者管理,根据我最近一个月在网上查的资料和观察,发现ECShop自从卖...

李恒哲
2012/12/11
1K
4
整合 ECShop2.7.2 与 Discuz!6.0

1. 安装ECShop2.7.2 a) 推荐配置:LAMP(Linux+Apache+Mysql+PHP) 操作系统:Linux (支持Unix/FreeBSD/Solaris/Windows NT(2000/2003)等操作系统) WEB服务器:Apache (支持httpd, Zeus, II......

鉴客
2011/09/21
734
0
ECShop 2.7.2 最新任意用户登陆漏洞

由于最近项目需要, 查看了下商派最新发布的ECShop 2.7.2正式版的源代码, 没想到在看到第二个文件时就发现了一处比较明显, 且低级漏洞。这个漏洞可以让任何人以任何用户身份登录到ECShop前台!...

沱长
2010/05/05
5.8K
5
Ecshop_(PHP5.4)问题cls_image::gd_version()和不支持JPEG

在安装Ecshop的时候,遇到两个问题:   1.Strict Standards: Non-static method clsimage::gdversion() should not be called statically in D:Xwwwecshopinstallincludeslib_installer.p......

喵王不瞌睡
2014/07/07
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Android -------- kotlin插件神器Json直接生成javaBean

这是一个data class从JSON字符串生成Kotlin 的插件,换句话说,是一个将JSON字符串转换为Kotlin data class(Json到Kotlin)的插件 在使用Kotlin进行开发的时候,我们需要经常对Json数据做解析...

切切歆语
27分钟前
30
0
1、Spring注解开发,第一天

第一天:Spring annotation开发 目录:1、@Configuration与@Bean给容器注册组件 2、@ConponentScan自动扫描注解 一、@Configuration与@Bean给容器注册组件 1、旧版本中创建配置文件和Bean //...

有一个小阿飞
34分钟前
22
0
斯坦福博弈论笔记整理活动的任务已重新划分,望周知

参与方式:https://github.com/apachecn/stanford-game-theory-notes-zh/blob/master/CONTRIBUTING.md 整体进度:https://github.com/apachecn/stanford-game-theory-notes-zh/issues/1 项目......

ApacheCN_飞龙
35分钟前
19
0
使用HTML5 canvas完成的一个网页白板

该代码能够使用canvas对象完成的一个基本功能。仅供大家参考。 <html> <head> <meta http-equiv="Content-Type" contentType="text/html; charset=UTF-8" %> <title>Title</title> <script t......

前端老手
38分钟前
16
0
web漏洞之xss(学习记录)

xss又名跨站脚本攻击,是一种注入攻击,当web应用对用户输入过滤不严格,攻击者写入恶意的脚本代码(HTML、JavaScript)到网页中时,如果用户访问了含有恶意代码的页面,恶意脚本就会被浏览器...

半缘修道半缘君丶
40分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部