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然后终于看到了我们久违的分类了~

PHP-Unicode签名(BOM)影响缓存输出实例

今天,二次开发ShopEX的可视化模板模块,可视化模板增加是成功了,可是,模板管理的功能却不正常了,那些模板的预览图都不见了。
真是神奇的事情噢~
我找呀找呀,代码一行行的调试过去,都没问题,那个汗~
什么回事噢,从代码中看到预览图其实是直接调用一个脚本生成一个图片的资源。
从地址栏里面输入开发前跟开发后的地址,发现生成的代码有少许的不一样噢。
是什么造成的呢?
查阅源代码可以知道,这个预览图其实就是调用文件并且缓存输出的。
经过排查发现,我二次开发的文件有Unicode签名,俗称BOM的东西!去掉看看,噢噢噢噢,问题解决。靠~真是神奇。
话说在ShopEX二次开发的过程中经常会出现这种情况的,比如验证码忽然不能使用了?!估计是同一个原因噢。
话说,因为Unicode签名(BOM)造成的ShopEX二次开发的问题还有就是会莫名其妙多出一行的空白行!请参考PHP-噢~&#65279(BOM文件头)你这个坏蛋