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、前台所在地区只有二级(省市),怎样扩展为三级(省市区)?

Theme Photolux : A TimThumb error has occured

漂亮吧,不过最近安装在phpcloud的免费空间上却是让我很烦恼,这个主题安装上去却显示不正确表现为前台显示图片都是一个叉叉,图片显示不正常,老是显示下面的错误?!
A TimThumb error has occured
The following error(s) occured:
Could not find the internal image you specified.
Query String : src=http://cmsdemo2014.my.phpcloud.com/wp-content/uploads/2014/03/dd6463e4958eaaa84b44f199333d0f8d.jpg&h=&w=290&zc=1&q=100&a=c
TimThumb version : 2.8.11
好神奇!
😛 知识点延伸:
可能你会觉得奇怪为什么你只看到图片显示不正常,没有看到这个错误哈 😛 ,这个其实是正常的,因为这个错误是我直接访问图片文件链接而产生的错误。
具体操作如下:
我们知道图片显示是根据标签的src属性来显示图片的,那么图片显示不出来就是src这个图片源出现问题(图片源可以是一个图片文件的路径也可以是图片的代码噢),既然这个src是图片源。那么自然就能直接打开,所以我的打叉的图片的src是:
http://cmsdemo2014.my.phpcloud.com/wp-content/themes/photolux/lib/utils/timthumb.php?src=http://cmsdemo2014.my.phpcloud.com/wp-content/uploads/2014/03/安卓壁纸_动漫66c143d81e.jpg&h=&w=290&zc=1&q=100&a=c
我直接从浏览器中打开,就会出现上面的提示了。另外,有很多朋友经常性的会遇上系统的验证码显示不正常的问题,然后不知道怎么解决,其实跟这个原理是一样的,先直接打开链接看看是否正常,然后再进入相关的文件内去找有问题的地方,然后不断的重试,直到图片正常显示出来,那么再调用的地方一定就是正常的了。
如果是ShopEX/ShopNC商城系统出现验证码的问题那么请查阅本博客的另外相关的文章:
ShopEX-登陆时验证码显示错误造成不能登陆
PHP-Unicode签名(BOM)影响缓存输出实例
PHP-噢~&#65279(BOM文件头)你这个坏蛋
言归正传,既然知道是这个文件显示错误的话,那么当然就是直接找到这个文件来查看为什么出现这种错误了。
找到wp-content\theme\photolux\lib\utils\timthumb.php文件,然后一步步的跟踪下去,我发现,程序不工作是因为找不到正确的文件路径造成的,知道原因了那就直接修改一下即可(轻描淡写的说出这个原因,实际背后是我一个个代码隐藏,一个个试过去才知道造成问题的所在噢):

什么是程序的二次开发?为什么要做二次开发?

引言
二次开发,摘抄百度百科的说明如下:原文请点击查阅
二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能,一般来说都不会改变原有系统的内核。一般的来说,一些大公司如IBM开发了一个大型的软件系统平台,根据不同的客户的需要,一些其它的中小公司为客户根据需求在该平台上进行第二次有针对性的开发。是否提供相应的接口,有的软件公司只提供软件,但也有小公司连代码一起出售,如是后者,就更方便进行二次开发。比如售票系统,车站里面弄好了,提供几个储存过程给银行,银行就可以代理售票了,这也是一种,还有一种如我们利用delphi,C#等操作word等。
正文
我们在使用ECShop、ShopEX、ZenCart、ShopNC、DEDE(织梦)、destoon、ASPcms、Discuz等系统的时候经常会接触除了模板、插件、皮肤、样式之外的一个新名词:二次开发。那么什么叫做二次开发呢?请看引言部分对这个名词的解释。
摘抄一向不是我的风格,所以,这边要唠叨一下我自己对二次开发的见解。
话说自从有了软件工程之后,我们人为的将程序开发分了好几个阶段什么调研阶段,分析阶段,什么编码阶段,虾米维护阶段,这些的概念请看相关的文章,我这边就解释了。
软件从开发的时候到发布这个过程,如果非要弄一个名词来说明的话只能叫做“一次开发”,当然,这个其实也不是很准确,不过也不要紧,你明白就好。不明白的话,就全当作是程序是谁开发的,那么他做的开发就是一次开发。
如果对程序有点了解的人,肯定会问,那么我开发完一个程序,然后在这个基础上再增加一个功能叫做什么呢?
哈,这个增加一个功能的行为就是“二次开发”了!
所以,我觉得“二次开发”其实就是根据我们的需求在已经存在的程序基础之上做开发这一过程成为二次开发。所以不管你是用什么程序,只要你是根据自己的需求对已经存在的程序做了开发都算二次开发。
所以,
模仿设计网站算不算?算!
为ShopEX,ECShop,ShopNC,ZenCart等程序做模板算不算?算!开发插件算不算?算!
……
你可以自己找很多的例子,万变不离其宗呀,这些都是二次开发。只要你是对已经存在的程序做修改都叫做二次开发。

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语句,请自行按照实际修改一番:

EcShop/ShopEX/ShopNC二次开发制作设计手机站与WAP站与微商城微网站的一点点思路与想法

虫神:
在ShopNC交流群里面与群友分享了一下手机站与APP手机客户端开发的一些思路,群里的交流不是很好,可能讲的不是很透彻,所以,专门理清思绪重新写一下,与大家分享交流,对此有什么想法的朋友可以留言。
~..~ ~..~ ~..~ ~..~ ~..~ ~..~ 想法篇 ~..~ ~..~ ~..~ ~..~ ~..~ ~..~
最近一段时间手机站,手机APP客户端很火呀~~~也许还要算上WAP站~~以至于群里有人在讨论,要这个,要哪个的商城对应的商城手机站程序或者是APP客户端~
我只能说一句话,其实一个商城网站做的好不好,不是因为你使用了什么牌子的商城程序,也不是因为你的商城有了手机商城,更不会因为你有了APP客户端而更加的热门,而运营的更出色!
1、程序
对于一个客户,一个浏览者来说,网站的程序就是一个屁!因为他不懂!他就懂我看到什么内容,看到什么效果,他只知道在你的网站上的购物体验,是不是很快就能找到自己需要的商品,你的商品是不是够吸引他,至于你用什么程序,程序多门高级,先进,一概不关他的事。
当然,可能关注的会更多,但是一定不是关心你的程序稳定不,高级不。~~~一句话这些都是边角料,人家来消费的不是来考察的
2、手机站(WAP站)
对于这个手机站还有WAP站,其实,我也不知道这是怎么区分的!我就知道早期的WAP站出来的时候还专门开发了一个WML的标签集,可惜,出来没多久就不了了之,一句话市场不认可呀,因为印象中,这个出来没多久,智能手机就开始普及了,然后你们也猜到了,压根就是走过场的,然后就变成了手机站用的语言其实也就是HTML语言了~PS:具体历史是不是这样子的,我不清楚噢,因为当年真的不关注这类的消息。
WAP站:其实就是使用WML语言写的网站,用于移动设备访问的网站,而PC用的是HTML语言。
手机站:就是能用移动设备访问的网站。
然后,你会发现很多WAP手机网站,都是统统使用HTML来开发的,那么是WAP站还是手机站呢?再加上现在的移动设备的越来越高级,相当于移动电脑,那么还存在什么区别呢?也许,区别就是一个名字,一点点无所谓的特效区别吧。所以,手机站跟WAP其实说的都是一个东西,这个是我的结论,目前来说的话。~~~~其实还是有少许区别的,比如JS的支持情况什么的PC上的能操作的在手机上的却不能操作,还需要针对性的做修改。
3、APP手机客户端
随着iPhone与Android手机的流行,APP手机客户端随之盛行,那么这个对我们有什么好处呢?我们到底需要不需要呢?
其实这个需要看各自的商城的情况来说,比如天猫商城、淘宝商城,这个人流大了,每天都要上的,不做成APP客户端,你觉得方便吗?合适吗?~~有这个需求了,你不求着客户,客户也会自动的给你下载安装。
再来说我们的小商城吧,一个在角落蹲着的商城,即使你的APP客户端做的再出色,技术再先进,体验再棒,有人主动给你安装吗?
有,可能是同类的开发者吧,消费者绝大部分是不会安装的!为什么?需求不大呀,我又不需要经常性的去商城看,又不经常去商城购物,我安装干嘛?

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个商品了噢,不过样式需要调整一下,要不难看。