2020-07-29

お店の営業時間ぽい表示ができる Store Hours プラグイン #craftcms

20200729 0855

たまたまプラグインストアをみてたらお店の営業時間っぽい表示ができる Store Hours というプラグインがあったので試してみた。

Store Hours
https://plugins.craftcms.com/s...

これを Craft CMS の開発元が作っているというのには何かしら理由があるんだろうな。

プラグインをインストール

まずプラグインのインストールをする。

composer require craftcms/store-hours

./craft plugin/install store-hours

これでプラグインの追加とインストールが完了する。

フィールドの確認

プラグインがインストールされたのでフィールドの確認をしてみる。

20200729 0859

このような感じでフィールドの設定ができる。
テーブルフィールドの設定みたいな感じで、必要な時間帯とかを追加できる感じ。

20200729 0900

時間帯にあわせてデータをいれてみる。

20200729 0900 01

サンプル表示

サンプルテンプレートでいれたデータを表示する。

<dl>
    {% for day in testentry.testhours %}
        <dt>{{ day.name }}</dt>
        <dd>
            {% if day.isBlank %}
                Closed
            {% else %}
                {{ day.open|time('short') }} - {{ day.close|time('short') }}
            {% endif %}
        </dd>
    {% endfor %}
</dl>
20200729 0902

時間の入力がないところは Closed になっている。

2つの時間帯がある場合の表示の調整して出してみる。

<dl>
    {% for day in testentry.testhours %}
        <dt>{{ day.name }}</dt>
        <dd>
            {% if day.isBlank %}
                Closed
            {% else %}
                {{ day.open|time('short') }} - {{ day.close|time('short') }}
                {% if day.open2 %}<br />
                {{ day.open2|time('short') }} - {{ day.close2|time('short') }}
                {% endif %}
            {% endif %}
        </dd>
    {% endfor %}
</dl>
20200729 0903

24h 表示をしてみる。
取りあえず開始時間と終了時間が同じ場合を 24h 表示としてみる。

<dl>
    {% for day in testentry.testhours %}
        <dt>{{ day.name }}</dt>
        <dd>
            {% if day.isBlank %}
                Closed
            {% else %}
                {% if day.open == day.close %} 24hour {% else %}{{ day.open|time('short') }} - {{ day.close|time('short') }}{% endif %}
                {% if day.open2 %}<br />
                {{ day.open2|time('short') }} - {{ day.close2|time('short') }}
                {% endif %}
            {% endif %}
        </dd>
    {% endfor %}
</dl>
20200729 0905

テーブルフィールドで近しいものは作れるけれども、あらかじめ固定行数として曜日ごとの行を決めておけるのは便利かもしれない。