ブログカレンダーで、31日の<tr>タグ

お世話になっております。
ブログカレンダーですが、31日の欄のタグが閉じていないように思います。わたしとは異なるテーマを使っていらっしゃる方も同じような状態ですので、もしや生成前の大元のファイルで閉じ忘れがあるのではと、投稿させていただきました。

よろしくお願いします。

ウィジェットエリアのカレンダーですかね?
私の環境では、タグは閉じています。
何タグが、どのような条件の時にどのテーマで閉じていないのか、詳しく共有いただけますでしょうか?

1 Likes

mikimaruさま、morishiさま

横から失礼します。
気になったので調べてみました。

月の最終日が土曜日でないときに、</tr>タグが作成されていないようです。
出力例)
2020/10(1は木曜日、31は土曜日)

<table>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
(中略)
<tr>
<td>25</td>
<td>26</td>
<td>27</td>
<td>28</td>
<td>29</td>
<td>30</td>
<td>31</td>
</tr>
</table>

2020/11(1は日曜日、30は月曜日)

<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
</tr>
(中略)
<tr>
<td>29</td>
<td>30</td>
</table>

2020/12(1は火曜日、31は木曜日)

<table>
<tr>
<td> </td>
<td> </td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
</tr>
(中略)
<tr>
<td>27</td>
<td>28</td>
<td>29</td>
<td>30</td>
<td>31</td>
</table>

lib\Baser\Plugin\Blog\View\Elements\widgets\blog_calendar.php
の133行目あたりにある、「//カレンダーの日付を作る」の処理が怪しいです。
(土曜日のときしか</tr>を出力してないように見えます)

テーマによっては
theme/[使用テーマ]/Elements/widgets/blog_calendar.phpを参照しているものもあるので、
その内容によっては問題なく表示されるのかも?

当方の使用テーマは上記ファイルは置いてないため、
libの下にあるblog_calendar.phpを参照していると思います。

1 Likes

コメントありがとうございます。

すでにmayiaさんからコメントをいただいておりますが(詳しくありがとうございます)、こちらの欄に、1月分のHTMLソースのキャプチャを貼らせていただきます。

閉じていないのは31日のタグで、わたしの場合はテーマがsimple-blogですが、他サイトで違うテーマの方を探してソースを何件か見てまわり、同様の人がいらっしゃると思いましたので、投稿いたしました。

テーマに限定されない話題であると考えたため、自分のテーマ名は書きませんでしたが、その点は失礼いたしました。

2 Likes

コメントありがとうございます!みてみます

2 Likes

@mikimaru
blog_calendar.phpの165行目辺り(print "</table>";の直前)の「//カレンダーの日付を作る」処理の後に以下を挿入でいかがでしょうか?
月の最終週の末日の後に<td>&nbsp;</td>を必要な数だけ埋めた後、tr閉じタグを入れるようにしました。

	// 最後の週の土曜日まで空白挿入
	$wx = date("w", mktime(0, 0, 0, $month + 1, 0, $year));
	for ($i = 1; $i < 7 - $wx; $i++) {
    print "<td>&nbsp;</td>";
    }
    if ($wx != 6) {
    	print "</tr>";
    	}
2 Likes

コメントありがとうございます!!

ねんのため確認ですが、blog_calendar.phpは、
lib/Baser/Plugin/Blog/View/Elements/widgets/blog_calendar.php
で、合っていますよね?

のちほど、ここでやってみます。

ありがとうございます。
確認後、コアにプルリクさせていただきます。

2 Likes

@GUSSAN さん、ありがとうございます。できました!!
ほんとうに、たすかりました。

コメントくださったみなさまも、お世話になりました。
のちほど、解決済みのタグを付けます。

実は何ヶ月も前から悩んでいて、これがなければHTMLチェッカーで満点なのに、どうしようかと、考えていたのです。
書いてみてよかったです。

2 Likes

@mikimaru
お使いのテーマがtheme/***/Elements/widgetsフォルダ内にコピーを持っているものであれば、基本はそちらを修正する必要があると思います。
今後、コアファイルがアップデートされれば、lib/Baser内のファイルの修正は不要と思いますが、それまでの間に別のテーマに変更される事情があるのであれば、lib/Baser内のファイルも暫定的に修正された方がいいかもしれません。よろしくお願いします。

1 Likes

@GUSSAN さん
ありがとうございます。

現在使用しているテーマは、上記のblog_calendar.phpを呼び出しているようで、テーマの階層に独自のファイルは見当たりませんでした。

コアのアップデートがあるまでのあいだは、この方法で、やっていこうと思います。

2 Likes