バージョン選択

フォーラム

メニュー

オンライン状況

91 人のユーザが現在オンラインです。 (77 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 90
sahararide もっと...

サイト内検索

プラグイン > バグ報告・利用に関する質問 > 定休日カレンダープラグインの表示がおかしい

バグ報告・利用に関する質問

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yosakamoto
投稿日時: 2018/11/1 11:11
対応状況: 確認中
新米
登録日: 2017/12/13
居住地:
投稿: 9
定休日カレンダープラグインの表示がおかしい
現在EC-CUBE3系で定休日カレンダープラグインを利用しております。

2018/11/1から表示バグが起こっています。
具体的には2018/12のカレンダーの下に空の行が追加されるというものです。2018/12以外は問題ありません。

同じ不具合が起きて対処方法がある方がいれば教えていただけないでしょうか?
k-yamamura
投稿日時: 2018/11/1 12:54
対応状況: −−−
一人前
登録日: 2015/7/8
居住地:
投稿: 72
Re: 定休日カレンダープラグインの表示がおかしい
yosakamoto 様


暫定対応でよければ、下記のコードはpg_calendar.twigのデフォルトから修正したコードになりますが、
{# CSSの初期設定読込 #}
<link rel="stylesheet" href="{{ app.config.front_urlpath }}/css/pg_calendar.css">
<div id="calendar" class="calendar hidden-xs">
	<div class="calendar_title">カレンダー</div>
{% for roop in 0..(HolidayConfig['0']['config_data']-1) %}
{% set day = date('first day of this month') %}
{% set month = day|date_modify("+" ~ roop ~ " month")|date('n') %}
{% set year = day|date_modify("+" ~ roop ~ " month")|date('Y') %}

{% if (month != "1") %}
{% set roop_week = day|date_modify("+" ~ (roop+1) ~ " month")|date_modify('-1 day')|date('W') - day|date_modify(year ~ "-" ~ month ~ "-" ~ "01")|date('W') %}
{% else %}
{% set roop_week = day|date_modify("+" ~ (roop+1) ~ " month")|date_modify('-1 day')|date('W') - 1 %}
{% endif %}

{% if ((day|date_modify('+' ~ (roop + 1) ~ ' month')|date_modify('-1 day')|date('w')) == '01') %}
{% set roop_week = 5 %}
{% endif %}

{% if ((day|date_modify("+" ~ (roop+1) ~ " month")|date_modify('-1 day')|date('w')) == "0") %}
{% set roop_week = (roop_week+1) %}
{% endif %}
{% set day = day|date_modify("+" ~ roop ~ " month")|date_modify('-' ~ day|date_modify("+" ~ roop ~ " month")|date('w') ~ 'days') %}

	<table>
		<caption>{{ year }}年{{ month }}月の定休日</caption>
		<thead><tr><th id="sunday">日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th id="saturday">土</th></tr></thead>
		<tbody>
{% for i in (0..roop_week) %}
			<tr>
{% for j in (0..6) %}
{% if day|date('n') == month %}
{% if HolidayWeek[j] %}
				<td class="holiday">{{ day|date('j') }}</td>
{% else %}
{% if Holidays[month][day|date('j')] is defined and Holidays[month][day|date('j')] is not empty %}
				<td class="holiday">{{ day|date('j') }}</td>
{% else %}
				<td>{{ day|date('j') }}</td>
{% endif %}
{% endif %}
{% else %}
				<td>&nbsp;</td>
{% endif %}
{% set day = day|date_modify('+1day') %}
{% endfor %}
			</tr>
{% endfor %}
		</tbody>
	</table>
{% endfor %}
</div>

とすれば回避可能です。


途中で
{% if ((day|date_modify('+' ~ (roop + 1) ~ ' month')|date_modify('-1 day')|date('w')) == '01') %}
{% set roop_week = 5 %}
{% endif %}

を追加しています。



----------------
----------------
株式会社キュール
support@cule.jp

EC-CUBE3、EC-CUBE4で困ったことがありましたらお気軽にご相談ください。

yosakamoto
投稿日時: 2018/11/1 17:21
対応状況: −−−
新米
登録日: 2017/12/13
居住地:
投稿: 9
Re: 定休日カレンダープラグインの表示がおかしい
ご教授の通りにコードを修正した所、改善しました。
迅速なご回答ありがとうございました!
hiroo
投稿日時: 2018/11/15 16:27
対応状況: −−−
長老
登録日: 2016/6/9
居住地:
投稿: 160
Re: 定休日カレンダープラグインの表示がおかしい
k-yamamuraさんの投稿で解決したかと思いますが、
暫定対応のままだと来年12月に同様の問題が発生すると思いますので、
完全対応のコードを共有致します。
(私もハマりましたので・・・)


{# CSSの初期設定読込 #}
<link rel="stylesheet" href="{{ app.config.front_urlpath }}/css/pg_calendar.css">
<div id="calendar" class="calendar hidden-xs">
	<div class="calendar_title">カレンダー</div>
{% for roop in 0..(HolidayConfig['0']['config_data']-1) %}
{% set day = date('first day of this month') %}
{% set month = day|date_modify("+" ~ roop ~ " month")|date('n') %}
{% set year = day|date_modify("+" ~ roop ~ " month")|date('Y') %}

{% if (month != "1") %}
	{% if month == "12" %}
        {% set week = day|date_modify("+" ~ (roop+1) ~ " month")|date_modify('-1 day')|date('w') %}
        {# ISO規格に基づいて #}
        {% if week == 1 %}
            {% set roop_week = 5 %}
        {% elseif week == 2 or week == 3 %}
            {% set roop_week = 4 %}
        {% else %}
            {% set roop_week = day|date_modify("+" ~ (roop+1) ~ " month")|date_modify('-1 day')|date('W') - day|date_modify(year ~ "-" ~ month ~ "-" ~ "01")|date('W') %}
        {% endif %}
	{% else %}
		{% set roop_week = day|date_modify("+" ~ (roop+1) ~ " month")|date_modify('-1 day')|date('W') - day|date_modify(year ~ "-" ~ month ~ "-" ~ "01")|date('W') %}
	{% endif %}
{% else %}
{% set roop_week = day|date_modify("+" ~ (roop+1) ~ " month")|date_modify('-1 day')|date('W') - 1 %}
{% endif %}

{% if ((day|date_modify("+" ~ (roop+1) ~ " month")|date_modify('-1 day')|date('w')) == "0") %}
{% set roop_week = (roop_week+1) %}
{% endif %}
{% set day = day|date_modify("+" ~ roop ~ " month")|date_modify('-' ~ day|date_modify("+" ~ roop ~ " month")|date('w') ~ 'days') %}

	<table>
		<caption>{{ year }}年{{ month }}月の定休日</caption>
		<thead><tr><th id="sunday">日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th id="saturday">土</th></tr></thead>
		<tbody>
{% for i in (0..roop_week) %}
			<tr>
{% for j in (0..6) %}
{% if day|date('n') == month %}
{% if HolidayWeek[j] %}
				<td class="holiday">{{ day|date('j') }}</td>
{% else %}
{% if Holidays[month][day|date('j')] is defined and Holidays[month][day|date('j')] is not empty %}
				<td class="holiday">{{ day|date('j') }}</td>
{% else %}
				<td>{{ day|date('j') }}</td>
{% endif %}
{% endif %}
{% else %}
				<td>&nbsp;</td>
{% endif %}
{% set day = day|date_modify('+1day') %}
{% endfor %}
			</tr>
{% endfor %}
		</tbody>
	</table>
{% endfor %}
</div>


ISO規格に沿った実装になっていなかったのが原因ですので、
それに対応できる形にしました。
以下の部分が修正箇所です。


{% if (month != "1") %}
	{% if month == "12" %}
        {% set week = day|date_modify("+" ~ (roop+1) ~ " month")|date_modify('-1 day')|date('w') %}
        {# ISO規格に基づいて #}
        {% if week == 1 %}
            {% set roop_week = 5 %}
        {% elseif week == 2 or week == 3 %}
            {% set roop_week = 4 %}
        {% else %}
            {% set roop_week = day|date_modify("+" ~ (roop+1) ~ " month")|date_modify('-1 day')|date('W') - day|date_modify(year ~ "-" ~ month ~ "-" ~ "01")|date('W') %}
        {% endif %}
	{% else %}
		{% set roop_week = day|date_modify("+" ~ (roop+1) ~ " month")|date_modify('-1 day')|date('W') - day|date_modify(year ~ "-" ~ month ~ "-" ~ "01")|date('W') %}
	{% endif %}
{% else %}
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,295名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.