搜索
开启辅助访问 切换到宽版

QQ登录

只需一步,快速开始

扫一扫,访问微社区

注册 找回密码
查看: 9149|回复: 5
打印 上一主题 下一主题

opncart 的伪静态功能

[复制链接]
跳转到指定楼层
楼主
发表于 2010-10-14 08:26:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天分析了一下opencart的URL链接,总结一些小经验.
opencart是构建了一个轻量级的MVC框架,总体来说思路都是比较清析的.
URL重构这一块,就是分类(category)为例吧.
opencart默认就有URL重写这个功能,你只需要在后台开启这个功能则可,可系统自带的这有一些不足之处,总结有以下几个问题.
1.不能自动生成SEO keyword
2.SEO keyword的值不是惟一的.

针对第一个问题,我是这么解决的:
采用其它系统常用的一种方式,就是用产品名自动生成SEO keyword,一般生成比较友好的URL,通常只包括字母和数字.
这里可以用正则替换就可以了.
可是呢,也不是替换就行了,还一种比较特殊的情况,就是如果产品名全是特殊字符,比如,我加一个中文产品,产品为"脑白金"
而SEO keyword又为空,这个又怎么实现伪静态呢,这种情况下,自动替换就不行了.
这种情况我是这么处理的,就是假设如果全为特殊字符的话,我就直接生成category-{$category_id}的形式.

第二个问题
怎么理解urlkey的值不是惟一的呢。
比如,我新加一个分类1,然后在Data里面的SEO keyword里面加入:mycategory
然后,我再建一个分类2,而且同样也在Data里面的SEO keyword里面加入:mycategory
这样一来,就会出现一个问题,那就是两个URL都一个,你将无法访问分类2.

好了,理论说了一大堆,我们来实际操作.
首先,保存SEO keyword的数据表是url_alias这个表,我们需要找到程序是在哪一个位置插入数据这个表的.
找到/admin/model/catalog/category.php文件

大概在20-30(添加分类),50-60(修改分类)左右,也就是
if ($data['keyword']) {
$this->db->query("INSERT INTO " . DB_PREFIX . "url_alias SET query = 'category_id=" . (int)$category_id . "', keyword = '" . $this->db->escape($data['keyword']) . "'");
}

我们需要在这个判断前对$data['keyword']进行验证,验证它是否为空,因为只有不为空的情况下,
我们重构这个分类的URL才有意义.
这if ($data['keyword']) {前面添加以下代码

...Oter code...
if(!$data['keyword']){
//生成友好的只带数字和字母的URL
$keywordUrl = preg_replace("/[^-0-9a-zA-Z]+/","",str_replace(' ','-',$this->db->escape($value['name'])));
//如果产品名为特殊字符,则改成category-{$category_id}的形式.同时给自动生成的SEO keywork加上标识ID
$data['keyword'] = strlen($keywordUrl)>0?$keywordUrl.'-'.$category_id:'category'.'-'.$category_id;
}
if ($data['keyword']) {
...Oter code...

根据同样的方法可以修改产品的SEO keyword
修改文件/admin/model/catalog/product.php文件
则可,方法一样,在此不重叙。
原文地址:https://www.b2cpress.com/archives/4
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏2 分享分享 支持支持 反对反对
沙发
发表于 2010-10-23 22:08:41 | 只看该作者
恩,不错
板凳
发表于 2010-11-2 09:42:34 | 只看该作者
也看过了
地板
发表于 2010-12-4 21:29:50 | 只看该作者
谢谢分享
B2C电子商务
5#
发表于 2011-6-9 14:18:50 | 只看该作者
SUNBOY V5!!
6#
发表于 2011-8-11 16:50:35 | 只看该作者
mark LZ辛苦了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

QQ|手机版|OpenCart - 中文官方网站 ( 蜀ICP备09033774号|人工智能

GMT+8, 2024-12-23 01:40 , Processed in 0.057586 second(s), 23 queries , Gzip On.

快速回复 返回顶部 返回列表