ShopNC二次开发研究日记12:导航菜单伪静态及二级目录制作SEO优化

虫曰:

ShopNC二次开发研究日记》系列由ChinaBUG企划,根据研究ShopNC的二次开发过程而写,其中的案例大多来源于QQ群或者爱好者的提问。


话说,很久没有来写ShopNC开发的内容了,正好刚忙完推广部同事的一个需求就拿来分享一下开发的过程及如何解决的吧。
同事的需求是:
ShopNC每个分类都是以ID的形式存在,如/index.php?act=search&cate_id=621这样子的形式,这样子对SEO不友好^_^想要友好一点的方式,比如可以让人访问/sxgr/sg/pg这样的形式来访问分类“生鲜果蔬\水果\苹果”。
简单吧,一看感觉好简单,其实好费时,忙了我好几天才折腾完毕。
闲话不说了,就分享一下我怎么解决这个需求的吧,还是老规矩废话一点,慢慢分析我的解决思路噢。
正文
要想实现这样子的方式,不用说肯定是需要伪静态支持的,然后需要写相关的重写规则来处理了,除了写规则之外就是需要修改程序,让程序输出我们需要的格式了。
……

ShopNC二次开发研究日记9:2.4版本内的商品地区怎么修改与开发

今天乘清明假期回来,腰有点疼就来说说怎么修改ShopNC2.4版本的商品地区数据,让它按照你自己的需求来变换噢。
注意:请安装火狐的firebug插件,然后开启。
1、商品列表右边“所在地”修改
2、所在地区列表的常用地区及省份的增加删除
3、改完布局,我们还能修改什么呢?对~前台,商品发布有所在地选项怎么修改噢?
4、前台所在地区只有二级(省市),怎样扩展为三级(省市区)?

ShopNC二次开发研究日记8:增加主页团购推荐模块的推荐数量

虫曰:
《ShopNC二次开发研究日记》系列由ChinaBUG企划,根据研究ShopNC的二次开发过程而写,其中的案例大多来源于QQ群或者爱好者的提问。

首页团购推荐模块里面只有一个推荐商品,不够用怎么办呢?DIY呗~下面就是打招多推荐模块的方法。
首先请打开control/index.php文件,你会很明显的看到下面的代码:
//团购专区
Language::read(‘member_groupbuy’);
$param = array();
$param[‘recommended’] = 1;
$param[‘state’] = 3;
$param[‘in_progress’] = time();
$param[‘limit’] = 1;
$model_group = Model(‘goods_group’);
$group_list = $model_group->getList($param);
Tpl::output(‘group_list’,$group_list[0]);
Tpl::output(‘count_down’,$group_list[0][‘end_time’] – time());
ShopNC系统个人觉得很开发也好,浏览体验也好,都比较糟糕的,但是唯一觉得欣赏的是这个,他们家的程序员很可爱,经常性的写注释,然后还很明确,这个习惯非常棒!
虽然这段代码写的感觉有点神经质了一点,为什么?请看进阶版的即可知道啦。
唠叨说完,继续来做DIY吧~

ShopNC二次开发研究日记7:懒加载-按需下载图片资源加快网站打开载入速度

虫曰:
《ShopNC二次开发研究日记》系列由ChinaBUG企划,根据研究ShopNC的二次开发过程而写,其中的案例大多来源于QQ群或者爱好者的提问。

现在的懒加载技术真的是应用的很泛滥,但是ShopNC的首页竟然没有,但是,我们进入商品列表页会发现ShopNC其实是有懒加载的,那么我们能不能在首页上使用呢?
答案是肯定的,要不就不会写这个日记啦~
DIY开始了~修改一个文件实现懒加载噢
请找到templates/default/home/index.php文件,然后搜索这行字符串,然后修改为下面的代码即可,轻松加愉快呀~~

ShopNC二次开发研究日记6:修改推荐店铺收藏店铺最近加盟店铺的显示数量

虫曰:

ShopNC二次开发研究日记》系列由ChinaBUG企划,根据研究ShopNC的二次开发过程而写,其中的案例大多来源于QQ群或者爱好者的提问。

虫曰:
《ShopNC二次开发研究日记》系列由ChinaBUG企划,根据研究ShopNC的二次开发过程而写,其中的案例大多来源于QQ群或者爱好者的提问。

要修改推荐店铺、收藏店铺、最近加盟店铺的显示数量这个其实是最好修改的,唯一麻烦的就是需要自己调整样式,因为样式是写死的,不调整难看。
进入control\index.php文件然后找到下面的代码:

ShopNC二次开发研究日记5:系统默认8个楼层怎么新增加一个并定义新的样式?

虫曰:
《ShopNC二次开发研究日记》系列由ChinaBUG企划,根据研究ShopNC的二次开发过程而写,其中的案例大多来源于QQ群或者爱好者的提问。

看着默认的8个楼层,你是不是很纠结噢,看看淘宝,看看京东,看看壹号店,为什么大家都要盖那么高的楼呢~
来吧,怨叹是解决不了问题的。动手DIY吧~~
找了一下后台发现没有针对这个功能的操作界面,也就是说新建这个功能需要我们自己开发出来,要不就只能直接操作数据库了~~
我们今天是直接操作数据库来新建楼层,有基础的朋友可以二次开发一下~
我们先进入后台,使用phpmyadmin这个工具,当然你也可以使用其他的,只要你懂得操作就行。
找到shopnc_web表,可能你的前缀跟我的不一样,请将shopnc_改为你的前缀即可,你会发现这个表内已经存在8个记录,而且都好眼熟噢,是不是就是板块楼层哈?执行下面的SQL语句,请自行按照实际修改一番:

ShopNC二次开发研究日记4:怎么修改各楼层里面的商品推荐板块显示的商品个数

虫曰:
《ShopNC二次开发研究日记》系列由ChinaBUG企划,根据研究ShopNC的二次开发过程而写,其中的案例大多来源于QQ群或者爱好者的提问。

首页的各楼层里面的商品推荐,系统设置只能是6个商品,感觉少?来改一下吧~~
我们知道后台添加这个推荐板块的商品时,如果超过6个的话则不再添加,所以很自然的就想起这个应该是JS在控制的,所以查找一下就会发现在resource\web_config\web_index.js文件内明明白白的写着
var recommend_max = 3;//推荐数
var goods_max = 6;//商品数
var goods_list_max = 7;//商品排行数
var brand_max = 8;//品牌限制
var recommend_show = 1;//当前选择的商品推荐
哎,都不知道怎么说了,好简单对不~

ShopNC二次开发研究日记3:怎么修改团购列表页内的商品的图片大小

虫曰:
《ShopNC二次开发研究日记》系列由ChinaBUG企划,根据研究ShopNC的二次开发过程而写,其中的案例大多来源于QQ群或者爱好者的提问。

我们访问团购页面的时候会看到那个图片,有的人会觉得很小,需要修改,可是修改了样式修改了代码就是不见得有效果,为什么呢?
我们查看一下那边的代码会发现一些情况噢:
<img width=”216″ height=”216″ onload=”javascript:DrawImage(this,296,216);” alt=”” src=”http://127.0.0.4/upload/groupbuy/f183d2d2b87757da7abc5ca0326160fb.jpg_mid.jpg”>
上面红色的代码表示一载入就执行,正好说明了为什么我们怎么改都不行的原因!
因为我们修改的是先天的,但是载入修改是后天的,后天的行为会覆盖先天的呗。
所以我们需要查看一下DrawImage()方法的作用,我们根据感觉都能猜到这个是重置图片的方法,那么我们只要把他的参数修改为我们需要的不就可以了吗?

ShopNC二次开发研究日记2:怎么修改特别推荐的个数(解除特别推荐6个的限制)

虫曰:
《ShopNC二次开发研究日记》系列由ChinaBUG企划,根据研究ShopNC的二次开发过程而写,其中的案例大多来源于QQ群或者爱好者的提问。

主页的“特别推荐”区域只有4个商品,不管后台怎么增加还是4个,想要增加为8个怎么办?只能自己修改呗~
根据控制器的流程我们找到了control\index.php文件,然后发现调用这个地方的是_product()方法,然后查阅代码之后会发现,他只允许输出4个商品哈~
$recommend_limit = 4;//显示个数
哈~写的很清楚嘛~改了
然后,你会发现,怎么没反应?
好吧,其实是因为它使用了缓存,所以我们需要删除缓存文件,缓存文件位于
cache\index\product.php
将这个文件删除,然后你刷新就会发现—-还是没反应!
为什么呢?
因为我们后台测试的数据本身就只有4个商品呀,笨死了对吧~哈哈,增加一下吧
提示:怎么添加推荐商品
如果你进入“网站》推荐类型》特别推荐”你会发现编辑里面是没有增加商品的入口的,那么怎么增加商品噢?其实,增加的入口在“商品》商品管理”里面选择需要推荐的商品,然后点击最下方的“推荐”,然后选择推荐类型即可。
添加完毕你会发现,果然出现8个商品了噢,不过样式需要调整一下,要不难看。

ShopNC二次开发研究日记1:怎么修改商品分类的个数(解除商品分类8个的限制)

虫曰:
《ShopNC二次开发研究日记》系列由ChinaBUG企划,根据研究ShopNC的二次开发过程而写,其中的案例大多来源于QQ群或者爱好者的提问。

前段日子在ShopNC交流群里面有朋友提出《怎么修改商品分类的个数》,现在刚研究到这个地方,就拿来当实例操作一番吧,其实很简单,但是过程是很曲折的,如果不想知道我的研究过程的话,那么请直接移到文章下方的解决方案处直接查看解决方案。
研究过程啐啐念
ShopNC的二次开发研究一直没有进展,主要是自己很忙,参加群好久了,一直没动工,早就看到这个朋友的这个问题,但是不懂得怎么回答,因为不懂呗,正好有人共享一份的代码,好吧,研究从此开始~
一看这个需求,第一个想法就是既然显示的数量受到限制,那么原因如下:1.系统后台存在的商品分类就只有8个;2.系统输出的变量处理过了,只能输出8个;3.其他莫名其妙的问题。
根据上面推测的原因,我去找一下,结果发现系统后台的商品分类有11个多,也就是1.的原因可以排除了,那么就剩下2.的原因了,根据开发经验,找到控制的地方,也就是代码
$output[‘show_goods_class’]
所在的地方,也没详细看代码的逻辑,直接一头砸入$output[‘show_goods_class’]变量获取的来源之中,我找呀找呀,然后发现这个值其实是来源于cache\goods_class.php文件,这下好了,只要数据在这边就能分析出一些东西啦,然后我开始输出这个文件的内容发现,这个不就是后台的分类的数据吗?!还是全部分类项目!
这个就奇怪了,这个变量输出之后根本就没有做截取,那么为什么前台显示只能显示8个大分类呢??
我们的2.的猜测是排除了,就剩下3.的莫名其妙的问题了,既然数据是完整的,那么无非就是前台处理程序输出的时候限制了呗,所以,又绕回来了~我们找到$output[‘show_goods_class’]所在,发现了一个秘密!
于是我就打开网站,打开firbug然后一看,哇咧~~白跑了~~不是全在上面吗?!
原来程序是把分类都输出,只是把没用到的给隐藏了!
我尝试着把display:none改为display:block然后终于看到了我们久违的分类了~