11

我正在建立一个企业目录,不仅要发布营业时间列表,还要发布企业当前是否营业。

在一个矩阵中,我有 7 行,其中 row_1 代表周六的周日 row_7。所以我有两个问题。

  1. 这和代码一样简洁还是有更好的方法?
  2. 判断企业当前是否营业的条件是否存在缺陷?它现在似乎可以工作,但没有经过很好的测试。

    {!-- Hours of Operation --}  
    {exp:stash:set name="hours-of-operation"}
    The Current time is: {current_time format="%g:%i%a"}<br/>
       {hours_of_operation}
       {if row_count=="1"}Sunday{/if}
       {if row_count=="2"}Monday{/if}
       {if row_count=="3"}Tuesday{/if}
       {if row_count=="4"}Wednesday{/if}
       {if row_count=="5"}Thursday{/if}
       {if row_count=="6"}Friday{/if}
       {if row_count=="7"}Saturday{/if}
       {open_time format="%g:%i%a"} - {close_time format="%g:%i%a"}<br/>
       {/hours_of_operation}
    {/exp:stash:set} 
    {!-- Hours of Operation --}
    
    {!-- Are we open? --}
    {exp:stash:set name="are-we-open"}
    {exp:mx_calc expression='{current_time format="%w"}+1'}
        {!-- matrix --}
        {hours_of_operation}                
            {if row_count=="{calc_result}"}
                Today is: {current_time format="%l"}<br/>
        <strong>
                {if '{open_time format="%H%i"}' <= '{current_time format="%H%i"}' && '{close_time format="%H%i"}' <= '{current_time format="%H%i"}'}    
                We are currently open!{if:else}We are currently closed.
            {/if}
            </strong><br/>
                Today's Hours are:<br/> <strong>{open_time format="%g:%i%a"} - {close_time format="%g:%i%a"}</strong><br/>              
            {/if}   
        {/hours_of_operation} 
        {!-- matrix --}
    {/exp:mx_calc}
    {/exp:stash:set}
    {!-- Are we open? --}
    

在此处输入图像描述

4

2 回答 2

8

这对我来说看起来不错,我唯一要更改的是在矩阵左侧添加另一列并将其称为星期几,并通过下拉菜单允许客户选择日期。然后在您的代码中,您可以摆脱所有这些条件并将其替换为 {day_of_week}

于 2012-10-31T00:30:47.737 回答
1

这个逻辑不应该起作用:

{if '{open_time format="%H%i"}' <= '{current_time format="%H%i"}' && '{close_time format="%H%i"}' <= '{current_time format="%H%i"}'} 

您正在检查关闭时间和打开时间是否都小于current_time,而不是检查这current_time两个值之间。如果业务是开放的,那么close_time应该超过,而不是current_time更少。逻辑应该是:

{if 
    '{open_time format="%H%i"}' <= '{current_time format="%H%i"}' && 
    '{close_time format="%H%i"}' > '{current_time format="%H%i"}'
} 

另外,如果我们很挑剔,如果人们必须为一周中完全关闭的一天或多天的企业输入数据,他们会怎么做?如果是我,我会在“全天关闭”列中添加一个PT Switch字段,默认为否。它只需要对您现有的逻辑进行一些小的调整:

{if
    '{open_time format="%H%i"}' <= '{current_time format="%H%i"}' && 
    '{close_time format="%H%i"}' > '{current_time format="%H%i"}' && 
    '{closed_all_day}' != 'y'
}    
    We're currently open!
{if:else}

然后在{hours_of_operation}循环中:

{if closed_all_day != 'y'}
    {open_time format="%g:%i%a"} - {close_time format="%g:%i%a"}<br/>
{else}
    Closed<br/>
{/if}
于 2012-10-31T19:08:52.653 回答