银杏114在线服务群
修复增强版报名模块前台时间逻辑判断错误,希望官方在此基础上进一步优化后更新
326
5

下图是一个朋友反馈的帖子中图片

经查,官方的代码的时间判断逻辑有点不对头造成的,判断代码在/template/index_style/default/party/content/pc_show.htm中


<div class="butters">
			{if $info['begin_time']&&strtotime($info['begin_time'])>time()}
				<span><button style="background:#ccc;">活动还没开始</button></span>
			{elseif $info['end_time']&&strtotime($info['end_time'])<time()}
				<span><button style="background:#ccc;">活动已经结束了</button></span>
			{else /}
				<span><button onclick="BuyThisShop(2)">报名参加</button></span>
			{/if}
				<!--<em><button onclick="BuyThisShop(1)">加入购物车</button></em>-->
			</div>

按照正常逻辑,只要活动未结束 且在允许报名时间内,活动一经发出,即应允许报名,除非是活动限制报名开始时间和结束时间。官方原代码中未对报名时间join_time进行判断是不对的,所以造成了上述无法点击报名的情况。

改写代码如下:原则,使用了嵌套判断语句,第一个if 判断活动是否结束,如果未结束,则再判断是否在允许的报名时间内,否则不允许报名,仅此而已,如果活动结束了,更不用谈报名了。官方原来的判断逻辑有些不对。

<div class="butters">
{if strtotime($info['begin_time'])>time()}
<span><button style="background:#ccc;">活动还没开始</button></span>
    {if strtotime($info['join_endtime'])>time()}
<span><button onclick="BuyThisShop(2)">报名参加</button></span>
    {else /}
     <span><button style="background:#ccc;">报名已截止</button></span>
     {/if}
{else /}
<span><button style="background:#ccc;">活动已经结束了</button></span>    
  {/if}
</div>


使用后的效果如下:


试发一个马上报名时间快结束的,看看情况

时间一到,就无法报名了,显示报名已截止


这些都是小问题,希望官方更正。

6
赏礼
赏钱
收藏
点击回复
      全部留言
  • 5
  • 啡巅 普通粉丝 消费:1381.19元 2020-04-03 00:00 00:006楼
    按照你说的 第一个判断(外部判断)应该是end_time吧
    银杏114在线 消费:3609.79元 2020-04-04 14:10
    如果使用end_time 这是结束时间,靠这个判断,代码上就不能写成活动未开始。因为存在处于活动已开始,但还未结束的时间段。在这个外围判断中其实也是不严谨的,正如我说的,如果时间断正好处于活动已开始,但未结束的时间段时,也就是你说的end_time没放在判断上,而是直接给出了活动已结束,是不符合事实情况的,但之所以未做这个判断,主要是考虑这个报名模块,最重要的就是报名功能,掌握好报名判断不出错,就是大原则,因此就给出了这么个判断语句,谨供参考而已。
0 赏钱 赏礼回复
  • 齐博神州 普通粉丝 消费:2958.36元 2020-04-02 23:21 23:216楼
    谢谢你!
    银杏114在线 消费:3609.79元 2020-04-02 23:24
    不客气,谢谢打赏
0 赏钱 赏礼回复
  • 利中 实战运营者 消费:916.02元 2020-04-02 19:39 19:39
    其他手机
    6楼
0 赏钱 赏礼回复
更多回复
      你可能感兴趣的主题
恢复多功能编辑器
  • 3 1
  • 银杏114在线服务群
        圈内贴子34
    • 圈子成员12
    本圈子内的新贴

    推荐内容
    扫一扫访问手机版
    请选择要切换的马甲:

     
    网页即时交流
    QQ咨询
    咨询热线
    020-28998648