バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

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

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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
居住地:
投稿: 68
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
居住地:
投稿: 131
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ペイメント

統計情報

総メンバー数は35,018名です
総投稿数は88,157件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1833
4
yuh
1521
5
468
1287
6
red
1186
7
umebius
1007
8
fukap
907
9
shutta
827
10
tsuji
815
11 ramrun 789
12
tao_s
667
13 karin 656
14 sumida 641
15
homan
633
16
h_tanaka
587
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.