ShopEX二次开发DIY日记6之可视化模板编辑出错没办法保存简单解决

虫曰:
《二次开发DIY日记》系列由ChinaBUG企划,根据开发过程中客户需求做的修改而延伸出来的开发要点,将有很多的需求点可能在实际应用中并不会需要到,在本系列之中我们将会有所考虑的给予分析解答,主要目的只为了更好的说明如何根据不同的需求点来DIY我们的程序。

今天帮客户处理一个商品详情页的挂件位,需要增加一个图片广告位(ad_pic),方便客户自己添加更换活动图片。结果发现:添加了挂件点击保存,却一点反应也没有,难道是哪里冲突了,试试看编辑,点击一个已经存在的挂件,点击编辑,保存,居然可以保存!
怎么办?
一个小需求而已却遇上这种莫名其妙的问题肯定会疯了,难不成要全面检查是不是哪里冲突啦?
不用!这边提供一个小小的办法,可以临时,快速的帮你解决这个问题,当然,这个办法可能有点稍微高一点难度,有点风险啦。

ShopEX二次开发DIY日记5之前台商品列表页筛选保留选中分类,品牌分类,规格及扩展属性值

虫曰:
《二次开发DIY日记》系列由ChinaBUG企划,根据开发过程中客户需求做的修改而延伸出来的开发要点,将有很多的需求点可能在实际应用中并不会需要到,在本系列之中我们将会有所考虑的给予分析解答,主要目的只为了更好的说明如何根据不同的需求点来DIY我们的程序。

引言
老早在ShopEX官方论坛看到一则广告噢,说的就是商品列表页筛选保留选中分类,品牌,规格及扩展属性值的问题,原帖地址 [485/易开店]【showker出品】shopex列表页筛选可保留选中分类,品牌,规格及扩展属性值 可打叉去掉选中 请各位小伙伴们自己去看说明哈。
我们这次DIY日记的目标就是打造这样的一个功能~当然,简单版的哈。
怎么保留选中的商品分类?商品品牌?商品规格?还有扩展值?
要实现这个功能我们需要了解的是这些数据是怎么来的,通过分析ctl.gallery.php文件我们可以发现这些数据经过一次次的弯子处理之后汇聚成如下变量:$selector、$SpecFlatList、$searchSelect。
我们在文件core\shop\view\gallery\selector\default.html之中就可以很明显的看出这些变量的调用情况。
我们先来查看一下变量$selector的代码噢,你会发现:(下面是原代码,请根据实际代码作分析)

ShopEX二次开发DIY日记4之如何定义我们的前台动态小对话框窗口(MessageBox)?

虫曰:
《二次开发DIY日记》系列由ChinaBUG企划,根据开发过程中客户需求做的修改而延伸出来的开发要点,将有很多的需求点可能在实际应用中并不会需要到,在本系列之中我们将会有所考虑的给予分析解答,主要目的只为了更好的说明如何根据不同的需求点来DIY我们的程序。

在《二次开发DIY日记1之商品添加到收藏夹的提示改为动态提醒》中我们修改了提示收藏夹的提示方式,要求不高的同学可能不会有什么意见,对于部分有追求的小伙伴们来说,那个动态对话框好丑呀,怎么美化一下?
勤劳的小伙伴们可能已经动手做了,将之前的代码修改了一下,具体的代码不懂得可以去看上文噢。
原先的代码为:MessageBox.show(‘已加入收藏’);
修改之后为:MessageBox.show(‘<img src=”http://www.ipodmp.com/sp/1.jpg”/>’);
保存,运行一下,你会发现,原先的文字变了~变成一张图片噢~~当然,可能有的人会发现意外:图很大张的朋友会看到图跳出那个动态框了噢!好难看噢。
怎么办呢?看了一下MessageBox与MessageBox.show的定义你会发现(位于statics\script_src\jstools.js),只有一个样式控制项,就是你做模板时可以指定这个框的大小,样式名为success与error两个,你直接定义之后想要的效果就出现了。
效果还是不错的吧,当然,像我们这么有追求的人,这点小成就是不会满足的,很快,你会发现,整站到处都是一样的大小,图片小的时候没办法自动变小,图片更加大的时候,也不懂得自动放大?!
对吧,这样子设计真是糟糕,为什么就不弄好点呢?

ShopEX二次开发DIY日记3之如何跟踪模板的缓存代码(front_tmpl与admin_tmpl的作用)

虫曰:
《二次开发DIY日记》系列由ChinaBUG企划,根据开发过程中客户需求做的修改而延伸出来的开发要点,将有很多的需求点可能在实际应用中并不会需要到,在本系列之中我们将会有所考虑的给予分析解答,主要目的只为了更好的说明如何根据不同的需求点来DIY我们的程序。

在上一篇ShopEX二次开发DIY日记2之前台模板金额的格式如何格式化金额不显示货币符号?中,我们对ShopEX系统的底层的修饰器做了一个增加,请看最后的修改的代码:
_head_stack[‘function cur2($string){return number_format(trim($string),2, \’.\’, \’\’);}’]=1;
return ‘cur2(‘.$attrs.’)’;
}
?>
在上面代码之后,很多朋友可能会问为什么我知道需要return ‘cur2(‘.$attrs.’)’;这个值,这个返回值需要这样写?
其实我也想知道,我在分析缓存代码之前我对这个也不懂,顶多是根据原有的方法做修改哈,但是,对缓存代码作分析之后我就懂了,今天,你学了你也会了~^_^
现在,请跟我来,先打开ShopEX目录的home\cache目录,你会看到三个文件,两个文件夹,分别是:cachedata.stat.php、cachedata.php、cache.status、front_tmpl、admin_tmpl。

ShopEX二次开发DIY日记2之前台模板金额的格式如何格式化金额不显示货币符号?

虫曰:
《二次开发DIY日记》系列由ChinaBUG企划,根据开发过程中客户需求做的修改而延伸出来的开发要点,将有很多的需求点可能在实际应用中并不会需要到,在本系列之中我们将会有所考虑的给予分析解答,主要目的只为了更好的说明如何根据不同的需求点来DIY我们的程序。

ShopEX在使用的时候,我们在设计模板时可以限定输出的金额格式(变量后面带上“|cur”),主要就是小数点几位啦,顺便带上货币符号哈,那么有时候就会出现只需要格式化金额,但是不带上货币符号这个效果,怎么办?
DIY日记就是要动手做的啦~
我们找到core\include_v5\smartyplugins\compile_modifier.cur.php这个文件,当然如果你的PHP版本低于5.0的话,那么请找到core\include\smartyplugins\compile_modifier.cur.php这个文件。
打开之后你会发现……..这是个乱码,好吧,我忘记你没有破解噢。没事,下面就是破解的代码噢。

ShopEX二次开发DIY日记1之前台商品添加到收藏夹的提示改为动态对话框(MessageBox)提醒

虫曰:
《二次开发DIY日记》系列由ChinaBUG企划,根据开发过程中客户需求做的修改而延伸出来的开发要点,将有很多的需求点可能在实际应用中并不会需要到,在本系列之中我们将会有所考虑的给予分析解答,主要目的只为了更好的说明如何根据不同的需求点来DIY我们的程序。

我们在查看商品详情时,在右边加入购物车边上有一个收藏此商品,点击之后就会告诉你添加收藏成功。那么,如果希望点击收藏此商品之后用对话框提醒会员呢?
DIY一下吧,具体修改步骤如下:
首先,我们需要找到控制这个功能的代码,经过研究位于statics\script\goodscupcake.js文件内,我们打开goodscupcake.js文件会发现这个文件已经加密哈,其实就是简单的去掉行什么的哈,我们可以使用工具解开,我一般使用站长之家的工具JavaScript/HTML格式化来解码,这边需要提醒的是最好使用比较好的解压工具噢,要不解出来的代码会有点问题,在代码简写的情况下会出现错误噢。

悦读推荐

2015.08
Effective JavaScript Item 12 理解Variable Hoisting
2015.07
PHP中unserialize返回false的解决方法
2015.06
JavaScript客户端检测技术详细解析
2015.04
SQL注入,你想知道的那些事
实战:上亿数据如何秒查
某中介无线组网及VPN接入应用案
2015.03
ThinkPHP框架安全实现分析
2015.02
微信公众平台的八大法则
来自实例的经典分析–HTTP协议
2015.01
常见HTTPS攻击方法解析
2014.12
解读大型网站系统架构的演化
2014.09
有用的PHP代码段(useful php snippets)
11个实用的Apache .htaccess配置
程序员需要知道的字符知识总结
2014.08
不用jQuery写JS的10条技巧:10 Tips for Writing JavaScript without jQuery
手游设计如何给玩家带来愉悦的交互体验 原文链接:http://colachan.com/post/3380
分析了一下作为一个吸引人的游戏应该有哪些东西哈~阅读一下
2014.06
走进科学:揭秘如何入侵电视机
265行代码实现第一人称游戏引擎
2014.05
零售行业的数据挖掘七步走
2014.04
ASP.NET的HTTP模块和处理程序之处理程序的执行
关于Android配色 自适应颜色的实现
2014.03
下载youtube上视频的姿势大全
Android设计中的.9.png
最锋利的Visual Studio Web开发工具扩展:Web Essentials详解
PHP CodeBase: 判断用户是否手机访问
亚文化是产品经理必修课
再谈javascript图片预加载技术-比onload更快获取图片尺寸
大型网站负载均衡架构
成为一个PHP专家:缺失的环节
程序员接触不到大项目,该如何提高自己?
没读过设计院校,如何成为设计师
张小龙神话已破灭 马化腾该接管微信了
颤抖了吗?九步逆向破解银行安全令牌
Android开发者必备的42个链接
2014.02
怎么一步步编写简单的PHP的Framework
只有20行Javascript代码!手把手教你写一个页面模板引擎 原文Javascript template engine in just 20 lines
我是如何反编译D-Link路由器固件程序并发现它的后门的
中国的黑客究竟有多张狂?
实战演示黑客如何利用SQL注入漏洞攻破一个WordPress网站

CSS-position:fixed固定你的层

最近在设计一个网站需要用到固定左边栏,不随着滚动条滚动而滚动。用JQ来实现吧,麻烦呀~有什么好办法没有噢?
查找了一下还真有,下面就是代码噢,原来就这么简单
应用场景:固定一个层;固定一个背景;两边的春联特效;固定一个导航等;右下脚的回到顶部效果等等

PHP-花括号({})的应用说明

⑴、正常的教程上告诉我们,花括号是方法的分隔符,如 function name(){}, for(){}, ….
⑵、像前言的代码之中的$OOO000000{4}这样在字符串的变量的后面跟上{}的形式,则代表是把这个字符串变量当成数组处理。
⑶、我们知道双引号内的变量会自动替换,但是,一旦这个变量是一个数组变量时(如$abc[‘name’]),就可能会出现错误,怎么解决呢?其实就是加上花括号即可!这时候大括号起的作用就是,告诉PHP,括起来的要当成变量处理。

PHP-给定一个字符串和排列组合长度生成所有可能的排列组合

今天在整理ShopEX的博饼插件时,因为使用到中奖样例,简单的就是需要获得1,2,3,4,5,6的全部组合数,自己写了一个生成方法结果太耗资源了,只好网上找一个,结果发现真的能用的没多少,下面推荐的就是可以用的,保存以防止未来可能还需要用到。
PHP代码的作用就是指定要生成组合的字符,然后组合长度,程序将会自动生成全部的可能组合噢。
下面代码就是全部的,直接拷贝进PHP文件内,执行即可得到111111~666666之间的全部组合噢。

ShopEX-文件上传错误提示

ShopEX提示:’上传的文件大小超出了服务器的空间大小’
UPLOAD_ERR_INI_SIZE
ShopEX提示:’上传的文件大小超出浏览器限制’
UPLOAD_ERR_FORM_SIZE
ShopEX提示:’文件仅部分被上传’
UPLOAD_ERR_PARTIAL
ShopEX提示:’没有找到要上传的文件’
UPLOAD_ERR_NO_FILE
ShopEX提示:’文件写入到临时文件夹出错’
UPLOAD_ERR_NO_TMP_DIR

Godaddy-主机空间的cookie问题造成会员用户登录不了

最近,朋友的网站由国内的主机转移到GoDaddy上的主机,结果会员用户却登录不了~
赶紧测试一下cookie看看,结果真的没值。
经过检查代码使用cookie来保存登录信息的,检查了一下发现没什么问题,一开始怀疑是数据库的问题吧,排查后发现,不是。
最后发现,如果在网址上增加子目录,就可以访问了哦。
由此猜测可能是没有指定cookie的路径吧,上网去找了一圈,发现这个是Godaddy的正常现象,还真的是cookies的路径没有设置,造成读不到值。
只要在需要设置的地方设置一下就可以:
……
当然,你也可以指定路径的值,比如=”/”或者是=’/abc’了~~
当然,最好这种重要的使用session比较好,要不很容易造成安全方面的隐患。

ShopEX-缺货通知为什么就不能自动填写会员的邮箱呢?

ShopEX如果商品缺货的话,就允许客户提交缺货通告,就是输入邮箱,如果到货了,就会通知这个邮箱的主人。
但是会员登录之后,那个邮箱地址框还是没有出现会员的邮箱,就是说没有自动将会员内填写的邮箱地址。这个从易用性上来说,有点奇怪。
所以我们的目标是增加这个功能。
但是一打开这个方法所在的代码一看,额,这个功能模块有存在呢~~可是为什么不出现呢?
经过偶的研究有如下问题:
1、变量名写错了。
2.即使你修改了变量名,还是不行
2.1在gnotify方法的第一行写上
2.2在$this->pagedata[‘goods’] = $aProduct[0];下面写如下代码
3.你修改完上面的之后你会发现输出有值,但是视图显示还是没有值出现。这个问题很神奇,神奇的不行,是ShopEX固有的,特定的,莫名其妙问题之一。也是写这篇文章的重点问题。
……
偶的测试环境是ShopEX 4.8.5.55324

VBS-用Word.Application自动批量将WORD的doc格式转为txt纯文本格式

最近姐姐要用mp4听课件,可见配套的doc文档mp4打不开,只能打开txt纯文本的文件,只能一个个的手动转换了,好多,累死我了~~
怎么办?
就整个转换的脚本,用vbs写了一个,只要指定一个目录就会自动将这个目录下面的全部的word文档都给自动转换为txt纯文本文件。
脚本存在的问题:
目前如果word文档很大的话,会很影响转换的速度噢,所以在转换之前请将没必要的程序都关闭掉吧,生的影响效率。默认是后台运行,就是你看不到有打开word文档,如果你觉得这样不好,请修改下面代码之中的
objWord.Visible = false
将false改为true即可。