也谈opencart的伪静态功能

来源:互联网 发布:淘宝我的账户怎么修改 编辑:程序博客网 时间:2024/05/17 08:18

今天分析了一下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(修改分类)左右,也就是

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

前面添加以下代码

根据同样的方法可以修改产品的SEO keyword
修改文件/admin/model/catalog/product.php文件
则可,方法一样,在此不重叙。
若有疑问,请入群讨论:92730437

新博客地址:

http://www.b2cpress.com/archives/4

原创粉丝点击