Ver. 3.0.12(PHP8.1対応)、その他フィックスバージョンリリースのお知らせ


この記事では、2022年6月17日にリリースしたVer. 3.0.12、Ver. 2.11.51、 Ver. 2.10.45、Ver. 2.9.41、Ver. 2.8.76の改善・修正内容について紹介いたします。

現在お困りの問題に該当する項目がありましたら、お早めにバージョンアップのご検討をお願いいたします。

Ver. 3.0.12 リリースノート

  • CMS-5808 PHP8.1 対応 & メールのバックグランド送信機能の廃止
  • CMS-6006 クエリ付きのURLでページネーションやグローバル変数でURLで指定されたクエリが入ったリンクになってしまう問題を修正
  • CMS-6008 セキュリティ対応

Ver. 2.11.51 リリースノート

  • CMS-6007 クエリ付きのURLでページネーションやグローバル変数でURLで指定されたクエリが入ったリンクになってしまう問題を修正
  • CMS-6009 セキュリティ対応

Ver. 2.10.45 リリースノート

  • CMS-6012 セキュリティ対応

Ver. 2.9.41 リリースノート

  • CMS-6011 セキュリティ対応

Ver. 2.8.76 リリースノート

  • CMS-6010 セキュリティ対応

最後に

該当する問題がありましたら、お早めにバージョンアップのご検討をお願いいたします。
また、迅速にご報告いただいたユーザーの皆さま、誠にありがとうございました。

今後もご報告いただいた内容に対して真摯に受け止め修正と改善を行ってまいります。
今後ともどうぞよろしくお願いいたします。

モジュールに外部コンテキスト(ctx)を挿入する

モジュールで表示する情報を制御するには、モジュールIDを作成して管理画面から設定することが可能ですが、テンプレート側から指定することも可能です。

<!-- BEGIN_MODULE Entry_List ctx="bid/1/cid/2" -->
...省略
<!-- END_MODULE Entry_List -->

上記のようにBEGIN_MODULEを記述時にctx="bid/1/cid/2"と記述することで、モジュールのURLコンテキストを指定できます。この場合、bid1内のcid2のエントリーデータを表示します。

指定の仕方はURLコンテキストと同じで、bid/1/cid/2/eid/3のように指定できます。

有効なコンテキスト

  • bid
  • cid
  • eid
  • uid
  • page
  • keyword
  • tag
  • field
  • order
  • start
  • end

startとendの使い方

記述の仕方としては、下記のようにします。

<!-- BEGIN_MODULE Entry_List ctx="/(開始日時)/-/(終了日時)/" -->
...
<!-- END_MODULE Entry_List -->

静的に日付を指定する場合の記述

たとえば、2020年6月23日10時から開始し、終了を際限なく指定する場合は下記のように記述します。

<!-- BEGIN_MODULE Entry_List ctx="/2020-06-2310:00:00/-/9999-12-3123:59:59/" -->
...
<!-- END_MODULE Entry_List -->

動的に日付を指定する場合の記述

たとえば、過去を際限なく遡り、終了をEntry_Bodyの投稿日付に調整する場合は下記のように記述することが可能です。(※以下の例ではEntry_Bodyの変数を使用することを想定しており、Entry_Body内に記述しているため、Entry_Listのモジュールを「\(バックスラッシュ)」を使ってエスケープしています)

<!-- BEGIN_MODULE\ Entry_List ctx="/1000-01-01/-/{date#Y}-{date#m}-{date#d}{date#H}:{date#i}:{date#s}/" -->
...
<!-- END_MODULE\ Entry_List -->

外部コンテキスト(ctx)とモジュールIDの優先順位について

モジュールIDと外部コンテキスト(ctx)は併用して使用することが可能です。ただし、その際はモジュールIDの設定でもURLコンテキストが指定できるので、設定が重複してしまう可能性があります。
設定が重複して問題が起きないように、コンテキストの適用には優先順位が存在しますので、併用する際はご注意ください。

コンテキストの優先順位

  1. モジュールIDの設定に、URLコンテキストのチェックが入っていて、現在表示しているページでURLコンテキストが指定されている状態
  2. モジュールIDの設定に、引数が固定値で指定されている状態
  3. テンプレートで外部コンテキスト(ctx)を設定した状態

Ver. 3.0.11, Ver. 3.0.12 で、ページがnoindexになってしまう問題がみつかりました


現象

以下のバージョンで、ページキャッシュなしのレスポンスで、noindexとしてページを出力してしまう問題が確認されました。 ページキャッシュ有りでのレスポンスは問題なく出力されております。

  • Ver. 3.0.11(7/2 15:00 以前にダウンロードしたパッケージ)
  • Ver. 3.0.12(7/2 15:00 以前にダウンロードしたパッケージ)

これによりページキャッシュ無しの設定(デバッグモードONやキャッシュOFF)になっている場合や、 検索ロボット(クローラ)が来るタイミングによって、ページが「noindex」として検索されなくなってしまう危険性があります。

対応方法

Ver. 3.0.11, Ver. 3.0.12 をご利用の場合は、以下の方法どちらかの対応をお願いいたします。

方法1

Ver. 3.0.13 以上にアップデートしていただくことで解決します。

方法2

各バージョンにあったパッチを設置ください。 設置ファイルは「php/main.php」となります。


Ver. 3.0.12 用パッチファイルをダウンロードする

Ver. 3.0.12 用パッチファイル


Ver. 3.0.11 用パッチファイルをダウンロードする

Ver. 3.0.11 用パッチファイル


原因

Ver. 3.0.11での修正「CMS-5958 User-Agent Client HintsによるUA判定に対応 & ルールからiPad判定を削除」で、間違ったプログラム修正をおこなっており今回の問題が発生しておりました。修正はプルリクエストによるコードレビューを通しているのですが、コードレビューでも見落とされてしまっておりました。今後このような事はないよう、リリース前の自動チェックなど対策を検討してまいります。

この度は、多大なるご迷惑をおかけしてしまい大変申し訳ございませんでした。
大変お手数ですが、ご対応のほどよろしくお願いいたします。

画像をロスレス圧縮する

画像のロスレス圧縮に対応できるようになりました。画像サイズが小さくなり、Google の PageSpeed Insights などの点数も上がりパフォーマンスがよくなります。

必要なソフト

サーバーに下記の画像圧縮ライブラリが必要になります。入っているソフトによって対応できるフォーマットが増減します。

  • pngquant
  • optipng
  • pngcrush
  • pngout
  • advpng,
  • pegtran
  • jpegoptim
  • gifsicle

確認方法

CMSでロスレス圧縮が可能かどうかは、管理画面 > チェックリスト の 「ロスレス圧縮対応フォーマット 」で確認することができます。チェックリストで有効になっていれば自動的に、画像をロスレス圧縮して保存するようになります。

設定をオフにする

private/config.system.yaml に

img_optimizer: off 

を追加することで、ロスレス圧縮しない様になります。