Concrete CMS 9.5.0 リリースノート

Concrete CMS 9.5.0 がリリースされました。
本ページは以下の原文を翻訳・要約しています。
https://github.com/concretecms/concretecms/releases/tag/9.5.0

 

新機能(New Features)

  • ブロックビュー、ページテンプレート、シングルページなどで Twig テンプレート言語をサポートしました。

機能改善(Behavioral Improvements)

ログインに関する改善

  • ログインが必要なページにアクセスした場合、ログイン後に元のページへ戻るよう改善されました。

 


SEO・URLに関する改善

  • 検索ブロックにおいて、ページネーション用パラメーターが canonical URL に含まれないようになりました。
  • ページリストブロックにおいて、ページネーション用パラメーターを canonical URL に含めるかどうかを設定できるようになりました。

 


表示パフォーマンスに関する改善

  • コアブロックのキャッシュ処理が見直され、より多くのケースでキャッシュが利用されるようになりました。

 


管理・運用に関する改善

  • ログをファイルとして保存している場合、管理画面のログページでその旨が表示されるようになりました。
  • ローカルに更新ファイルが存在する場合、管理画面で通知されるようになりました。

 


表示・操作性に関する改善

  • ヒーロー画像ブロックにおいて、スライダー変更時に高さ設定が即時反映されるようになりました。

 


補足

本バージョンでは、ログイン動線やURLの扱い、表示パフォーマンスなど、日常的な利用に関わる細かな改善が中心となっています。

  • 更新ファイルがローカルに存在する場合、ユーザーに通知するようになりました。Composer で Concrete CMS のアップグレードを管理している場合などが想定されています。また、この設定が有効な場合、管理者はアップデーターを使用できなくなりました。(Thanks mlocati)
  • Hero Image ブロックで、スライダー変更時に高さ設定が即時反映されるようになりました。(Thanks mehl)
  • ログをデータベースではなくファイルに保存する設定の場合、管理画面のログページで管理者に通知するようになりました。(Thanks ounziw)
  • 検索ブロックが出力する canonical URL に、ccm_paging_p ページパラメーターが含まれないようになりました。(Thanks ccmEnlil)
  • ページリストブロックのページネーション用パラメーターを canonical URL に追加するかどうかを、ブロック設定で制御できるようになりました。(Thanks ccmEnlil)
  • より多くのコアブロックが、より多くの状況でキャッシュされるようになりました。(Thanks hissy)
  • JSON 形式のレスポンスが期待される場面で、より多くの場合にエラーも JSON 形式で返すようになりました。(Thanks mlocati)
  • エクスプレスでカスタム EntryManager を使用している場合に、未定義の logger に関するエラーが発生する問題を修正しました。
  • /account/* の保護されたページにアクセスしてログイン画面へ遷移した場合、ログイン完了後に適切なページへ戻るようになりました。

バグ修正(Bug Fixes)

ファイル操作に関する修正

  • 削除済みファイルが選択された状態で、新しいファイルを選択できない問題が修正されました。
  • ファイル検索結果に同じファイルが複数表示されることがある問題が修正されました。

 


フォーム・入力に関する修正

  • エクスプレスフォームにおいて、アップロード先フォルダーが削除されている場合にエラーが発生する問題が修正されました。

 


管理画面表示に関する修正

  • マルチサイトセレクターが正しく表示されない問題が修正されました。
  • ドキュメントライブラリの検索結果で属性情報が正しく表示されない問題が修正されました。
  • ページテーマ設定画面でテンプレートの有効化が表示されない問題が修正されました。

 


権限・設定に関する修正

  • 特定の権限設定において、スーパーユーザー以外がページタイプのデフォルトを編集できない問題が修正されました。

 


その他の修正

  • グローバルエリア表示時にエラーが発生する問題が修正されました。
  • カレンダーイベントで終了日が正しく設定されない問題が修正されました。
  • 8系から9系へのアップグレード時に、一部のスタイルが失われることがある問題が修正されました。

 


補足

本バージョンでは、ファイル操作や管理画面表示など、日常的に利用される機能に関する不具合が複数修正されています。

  • 「Access Page Type Defaults」権限に他のグループを追加していても、ページタイプのデフォルトをスーパーユーザー以外が編集できない問題を修正しました。
  • Concrete File Input コンポーネントで、削除済みファイルを使用していた場合に新しい画像やファイルを選択できない問題を修正しました。Thanks mlocati, danklassen
  • エクスプレスフォームブロックで、ファイルアップロード先として設定していたフォルダーが削除されている場合にエラーが発生する問題を修正しました。(Thanks dimger)
  • ファイル名にアンパサンドなどの特殊文字が含まれる場合、管理画面の検索結果に同じファイルが複数回表示されることがある問題を修正しました。(Thanks straatrakker)
  • polls 機能を使用するコアブロックの表示時に、polls 機能が利用できないという notice ログが出力される問題を修正しました。(Thanks biplobice)
  • マルチサイト環境で、サイト名に特殊文字が含まれている場合に、管理画面のマルチサイトセレクターが正しく表示されない問題を修正しました。(Thanks patej)
  • Concrete のインターフェース内の誤字や、翻訳できない文字列を修正しました。(Thanks wtflm)
  • ドキュメントライブラリの検索結果テーブルで、タグなどの属性が正しく表示されない問題を修正しました。(Thanks JohnTheFish)
  • 新しい Configure ページへの移行後、管理画面のページテーマでテーマ内のページテンプレートを有効化する機能が表示されなくなっていた問題を修正しました。
  • タグブロックの説明文の誤りを修正しました。(Thanks JohnTheFish)
  • グローバルエリアに承認済みバージョンがない状態でサイト上に表示された場合、エラーが発生することがある問題を修正しました。(Thanks biplobice)
  • 一部の状況で、ユーザーグループによる検索時にエラーが発生する問題を修正しました。(Thanks TMDesigns)
  • フォルダーへファイルを追加するエンドポイントに、追加の権限チェックを追加しました。(Thanks JohnTheFish)
  • CalendarEventVersion エンティティに getJSONObject メソッドがない問題を修正しました。
  • カレンダーイベント作成時に「終日」をチェックし、日付を変更せずに送信すると、終了日が 1970 年になる問題を修正しました。
  • スタイルカスタマイザーを使用していた 8.x サイトを 9.x にアップグレードした際、一部のスタイルが失われることがある問題を修正しました。(Thanks kaktuspalme)
  • ワークフローリクエストのメッセージに空のページ名が含まれることがある問題を修正しました。

後方互換性に関する注意
(Backward Compatibility Notes) 

これまで、スタックやクリップボードにあるブロックをページに配置した場合、実体をコピーするのではなく、元のブロックを参照する仕組みになっていました。

そのため、

  • 元のブロックを変更すると、別のページに配置したブロックも一緒に変わる
  • どこかで編集した内容が、意図せず他のページにも影響する

といったことが起こることがありました。

今回のバージョンからは、スタックやクリップボードにあるブロックを配置する際に常にコピーが作られるように変更されました。
この変更により、スタックやクリップボードにあるブロックを配置した場合は、ページごとに独立した内容として扱われます。
その結果、他のページの変更に影響されなくなり、意図しない変更が起きにくくなりました

つまり、9.5.0 からは 9.4.8 までの仕様であった「元のブロックを編集すれば、配置先のブロックにも変更が反映される」という仕組みが利用できません
複数のページで同じ内容を共有したい場合は、スタック機能をご利用ください。

スタックやクリップボードパネルからブロックをページへドラッグした場合、これまでは容量削減や更新可能性のため、元のブロックへのポインターが作成されていました。

しかし、この挙動により、まったく関係のないページの削除済みバージョンが、元ブロックからコピーされたコンテンツを持つページの内容を変更してしまうような、予期しない問題が発生する場合がありました。

そのため、今回のバージョンからは、クリップボードまたはスタックからコピーする際に、常にブロックのコピーを作成するように変更されました。

元コンテンツへのポインターを維持し、ページとは別のタイミングでブロック内容を更新したい場合は、ブロック単体ではなくスタック全体をページへドラッグし、スタック側を個別に更新してください。

開発者向けアップデート(Developer Updates)

  • Concrete CMS が PHP 8.5 をサポートしました。
  • Concrete のメール機能が Laminas/Email ではなく Symfony/Mailer に依存するようになりました。一般的な利用においては、後方互換性に関する問題はないとされています。
  • メールインポート機能が Concrete CMS から削除されました。この機能はコアでは使用されておらず、多くのサードパーティーパッケージでも使用されていないと考えられています。影響がある場合は開発元へ連絡するよう案内されています。
  • 可能な範囲で、すべての PHP 依存関係が更新されました。
  • anahkiasen/html-object が、より新しくサポートされている kylekatarnls/html-object に置き換えられました。新しいメソッドが追加されていますが、完全な後方互換性があります。
  • ブロックコントローラーで、キャッシュ挙動をより細かく制御できるようになりました。btCacheBlockOutputOnEditMode などが追加されています。(Thanks hissy)
  • JavaScript の ConcreteFileManager.getFileDetails は、ファイルが見つからない場合に null を返すようになりました。独自の JavaScript を使用している一部のブロックでは、この変更に対応する必要がある場合があります。(Thanks mlocati)
  • 環境情報に MySQL の max_connections が表示されるようになりました。(Thanks mlocati)
  • Concrete に組み込まれている php cs fixer 用のコンソールコマンドは、より細かな制御を可能にするため、外部ライブラリ版へ処理をルーティングするようになりました。(Thanks mlocati)
  • /login/redirect に新しい rcURL クエリ文字列パラメーターを渡せるようになりました。これにより、ログイン後に特定の URL へリダイレクトできます。セキュリティのため、許可リストが使用されます。