莘祺网活动聚焦访问地址(目前为测试数据 20170206开始正式更新)
经过两个星期的努力,活动聚焦终于调试成功!真的太不容易啦!
起初的前后台页面修改,虽然也付出了很多时间,但难度相对来说还不是太大,最大的问题是活动存档,存在着根本上的逻辑问题。
发布活动时存储一个大意是活动月值的数据(start_month),
$start_month = PwStrtoTime(get_date(PwStrtoTime($start_time),"Y-m"));
从代码上看,这个活动月值由活动开始时间(start_time)转换而来,但事实上却不完全是这样!经过几天的研究,计算,发现这个所谓的月值其实就是发布的活动开始时间对应月的“今天”(发布日期)零点的时间戳!!!举例说,今天发布活动,不管是5月5号开始的,还是5月15号开始的,总之不管5月的哪一天,这个所谓的月值其实都一样,就是今天5月1日零点的时间戳;不管是6月哪一天的活动,对应月值都是6月1日零点的时间戳。
而活动存档的查询同样是这样的,查询条件其实是存档对应月(本月5月,6月,7月,4月,3月,等)的"今天"零点的时间戳!!!查询条件其实每天都是变化的,所以昨天发布的活动昨天可以查询出来,但到了今天就查不出来了,除非是将来某月的“昨天”。
综合来看,月值和查询条件都可能分别有31种(1到31号,当然了也有28,29,30),唯一能对得上的存档查询结果其实是:当天对应的某月那天发布的活动!(例外是查询当天编辑了某个或某几个活动)。
这是不是逻辑有问题?开始测试不久就发现了存档存在问题,但知道逻辑有问题是差不多在努力了十天之后。然而,知道了问题所在,却并不代表我能解决,因为对这些,我基本上也是没有任何基础。
现在这个活动聚焦是以频道的方式展示的(应该也有插件版本的),之前有个早期版本是以插件形式展示的,简单测试过,因为是早期版本,所以前后台的页面显示不是特别丰富,但似乎活动存档是正常的。于是,最近几天把主要精力用在了研究早期版本的活动存档上,希望能从中挖掘出来解决问题的方法。
4月29日晚研究到凌晨一点多,而30号早上是四点半多起来的,也就是说前天晚上睡了还不到四个小时。事实上这个活动存档也确实花了我最近相当一部分精力,试了各种各样我所能想到的方法,包括网上搜索查询到的方法,无奈咱技术不过关,一直没有突破。活动月值、开始和结束时间都是以时间戳的形式保存的,早期版本只有开始和结束时间,它们是以2016/05/03 12:34的形式直接保存的,所以关键的第一步就是要把月值数据也改成这种形式的,只有有了这个基础,才能继续构建类似的存档查询语句。
格式化开始时间,试了N种方法,也改了N遍代码(其实我自己都不确定对不对),却一直不成功,最后忽然想到数据类型:早期版本是字符类型,而现在却是整数型(我理解是这样),于是修改数据类型为字符型,再把
$begtime = Char_cv($begtime);
复制过来,稍加修改:
$start_month = Char_cv($start_time);
终于成功了!测试活动记录内容为:
“不容易啊,终于把月值改成日期格式了
时间:2016/06/10 05:53 — 2016/06/11 05:53
地点:
简介:”(引用内容)
活动编辑部分,修改方法也与这个相类似,然后就是修改存档查询条件,同样是参考仿照,最后终于在昨天(30号)6点半之前解决了存档问题!真的是太不容易了!!!
写了这么多,忘了写活动聚焦的访问地址,放在最前面吧。
前期的记录在这里:活动聚焦插件修改
注:帖子内容于5月1日更新。