复选框提交以显示文本?

Checkbox submission to display text?

感谢您的提前帮助。

我在 Concrete5 中创建了一个办公时间块。有些部门在某些日子不开放,所以我试图制作一个复选框,如果选中则显示 "Closed" 而不是办公时间。这是周日的示例:

    <div class="form-group">
    <?php  echo $form->label("Sundayclosed", t("Sunday (close)")); ?>
        <?php  echo (isset($btFieldsRequired) && in_array('Sundayclosed', $btFieldsRequired) ? '<small class="required">' . t('Required') . '</small>' : null); ?>
            <?php  echo $form->text("Sundayclosed", $Sundayclosed > 0 ? date("g:i A", $Sundayclosed) : null, array ('autocomplete' => 'off', )); ?>
</div>

我的代码可以运行并显示块中设置的打开和关闭时间。但是,我不确定如何添加一个复选框来显示 "Closed" 而不是块中设置的时间。

有人愿意帮我吗?非常感谢!

如果我能很好地理解你提供的那段代码,那是一个文本框,你可以在其中输入周日的关闭时间,你想要的是一个复选框,在文本框的顶部,用 no 代替它,以发出信号该商店在星期日休息,如果关闭,您的网站上将显示 "closed"。

所以首先,在您的阻止设置中,您需要添加复选框:

<?php  echo $form->label("SundayTotallyClosed", t("Sunday (totally close)"));

echo $form->checkbox("SundayTotallyClosed", 1, $SundayTotallyClosed); ?>

然后在您的块视图中,您希望 "closed" 显示的位置:

<?php if ($SundayTotallyClosed) {
    echo "Closed";
} else {
    // put here the code that normally shows the closing time
}

保存设置时要小心,复选框只有在选中时才会发送要保存的值,否则不会发送任何内容。问题是如果您检查并保存它,则会保存值 1。如果稍后您取消选中它并保存,则不会发送任何内容,因此不会保存任何内容,因此该值保持为 1。

保存时处理该问题的方法是确保您拥有:

$SundayTotallyClosed = SundayTotallyClosed ? 1 : 0;

然后正常保存