下位互換性のない変更点
下位互換性のない変更点があります。Ver. 3.1 以下のバージョンからアップデートする際はお気をつけください。
対応PHPバージョンの変更
対応PHPバージョンが PHP8.1.0 〜 PHP8.4.x に変更されました。a-blog cms Ver. 3.1.x は PHP 7.3 から 8.3 まで対応していたため、PHP 8.0 以下で運用している場合は、アップデート前に PHP を 8.1 以上に上げてください。最新の対応状況は「動作条件」を参照してください。
対応データベースバージョンの変更
対応データベースが MySQL 8.0 以上、または MariaDB 10.5.10 以上に変更されました。a-blog cms Ver. 3.1.x は MySQL 5.0 から対応していたため、MySQL 5.x で運用している場合はアップデート前にデータベースを移行してください。動作確認済みのバージョンは「動作条件」を参照してください。
標準CSSフレームワークの仕様変更
本バージョンでは ユニットのレイアウト方法を float を利用した方法から Flexbox 及び CSS Grid を利用した方法に変更しています。そのため、acms.css にて定義されているユニットのデフォルトスタイルが変更されています。
acms.css を利用してユニットのスタイルを定義している場合、Ver. 3.2.0 未満からアップデートする際には、アップデート前のバージョンの system テーマに同梱されている acms.css を利用中のテーマにコピーしてからアップデートを行ってください。
たとえば、以下のファイルをコピーします
themes/system/css/acms.cssthemes/system/css/acms.min.css
これらを themes/ご利用テーマ/css/ に配置することで、既存のデザイン崩れを防ぐことができます。
なお、ユニットのスタイルを独自でCSSを記述して適用している場合は、この作業は不要です。
引用ユニットを埋め込みユニットに名称変更
これまで「引用ユニット」として提供されていた、OGP 情報を取得して外部コンテンツを表示するユニットを、より正確な表現である「埋め込みユニット」に名称変更しました。
あわせて、従来は blockquote タグで囲んでいた HTML 構造を、リンクとして適切に扱えるように a タグで囲む構造へ変更しています。これにより、外部コンテンツの埋め込み表現がより意味的に正しいマークアップになります。
主な変更: 外側の要素のクラスが column-quote-{align} から column-embed column-embed-{align} に、blockquote が a.acms-embed-link に変わり、タイトルの quoteTitleLink クラスはなくなりました(quoteTitle・quoteImage などは引き続き出力されます)。
HTML 構造の変更により、これまで「引用ユニット」に適用していた CSS スタイルが正しく反映されず、デザインが崩れる可能性があります。必要に応じてスタイルの修正を行ってください。
一部組み込みJSの廃止
本バージョンでは、以下の組み込みJSを廃止しました。これらのスクリプトをご利用中の場合は、アップデート前に代替手段へ切り替えるなどの対応をお願いいたします。
「高さを揃える(js-autoheight)」を廃止
「イメージビューアー(prettyPhoto)」を廃止
「イメージビューアー(Highslide JS)」を廃止
「アダプティブ・イメージ(js-adaptive_image)」を廃止
「スライドショー(bxSlider)」を廃止
「プレースホルダー(js-placeholder)」を廃止
「現在のURLと一致するa要素を表示する(js-viewing-receptor, js-viewing-erase)」を廃止
「クリックエリアを拡大する(js-biggerlink)」を廃止
「SSLへの書き換え」を廃止
「パラメータが指定されたdl要素をflashに置き換える(swfobject)」を廃止
「セレクトボックス内の選択されている option要素のテキストを表示する(select2text)」を廃止
「input要素の value 属性に指定したJavaScriptを実行する」を廃止
「アクセス時に自動スクロール(ready scroll)」を廃止
「リンク先をインラインフレームで表示する(copy right)」を廃止
「送信ボタンからフォーム送信時に新規ウィンドウを開く(blank submit button)」を廃止
「フォームのエンターによる送信禁止 (banEnterSubmitMask)」を廃止
cart@blog テーマを廃止
カート機能が実装されていた「cart@blog」テーマは廃止されました。代わりに、新しい「ECテーマ」をご利用ください。
コンフィグで設定するメタ情報を廃止(%{META_KEYWORDS}, %{META_DESCRIPTION})
使用されなくなっていたため、本バージョンで廃止しました。
トラックバック機能を廃止
本バージョンより、トラックバック機能を廃止しました。
従来は記事間で相互リンクを行う目的でトラックバック機能を提供していましたが、現在ではほとんど利用されておらず、またスパムの温床になるケースも多かったため、セキュリティとメンテナンス性の観点から完全に廃止することとなりました。
Facebookログイン機能を廃止
本バージョンより、Facebookログイン機能を廃止しました。
近年のFacebook側のAPI仕様変更や審査要件の厳格化により、運用コストや利用の安定性に課題があったため、今後の保守性とセキュリティの観点から、Facebookログイン機能の提供を終了することとなりました。
画像ユニットのexif情報設定機能を廃止
画像ユニットで選択された写真の情報を元に、exif 情報(カメラのモデル、焦点距離、絞り値、シャッタースピード、ISO感度、撮影日)を自動でキャプションに設定する機能を廃止いたしました。
既に登録されているデータに関しては今後も引き続き表示することが可能ですが、新規に exif 情報をキャプションに追加することはできなくなります。
Ogpモジュールのメイン画像のエントリーフィールド名を変更
Ogpモジュールの画像のエントリーのカスタムフィールド名のデフォルト値を ogp_image から entry_main_image に変更しました。
Ogpモジュール を一度も保存したことがない場合、設定が変更される可能性があり、エントリー詳細ページで、OGP画像が表示されなくなる可能性があります。
この場合次の修正を行うことで回避できます。private/config.system.yaml に以下コードを追記します。
ogp_image_entry_field_name: ogp_imageVer.2.7 以前のテキストユニット機能を利用する設定を廃止
Ver. 2.8 からテキストユニットで LiteEditor が利用できるようになりましたが、以下の JavaScript を適用することで、LiteEditor を無効にし、Ver.2.7 以前のテキストユニットを利用することができていましたが、今回この機能は廃止されました。
ACMS.Ready(function(){
ACMS.Config.LiteEditorFeature = false;
});各GETモジュールのコード変更
本バージョンでは、各GETモジュール(ACMS_GET系クラス)の内部コードを改善・整理しています。
そのため、標準のGETモジュール(例:ACMS_GET_Entry_Summary など)を継承してカスタマイズしているカスタムモジュールをお使いの場合、仕様の差異により不具合が発生する可能性があります。
バージョンアップ前に、カスタムモジュールの挙動を事前に確認・検証いただくことを推奨します。
削除されたモジュール・テンプレート・関数
次の GET モジュールは削除されました。テンプレートに残っている場合は該当ブロックを削除するか、別の方法に置き換えてください。
Case_Auth / Case_Ua / Case_View
Column_List
Filter / Filter_BuildModule / Filter_SetGlobalVars
Touch_EditDirect / Touch_NotEditDirect(表側のエントリー編集画面の廃止による。下の「表側のエントリー編集画面を廃止」を参照)
Touch_PreApproval / Touch_NotPreApproval / Touch_ApprovalEntrySave / Touch_RevisionAdministrator / Touch_NotsessionWithApprovalAdministrator / Touch_Role_CategoryCreate
Ajax_Unit
system テーマの次のテンプレートは削除されました。テーマからインクルードしている場合は削除してください。
_layouts/unit-amp.html、include/unit-amp.html_layouts/unit_language.html、include/unit_language.html、admin/entry/unit_language.html
独自モジュールやプラグイン(拡張アプリ)から呼んでいた次のグローバル関数は削除されました。
createImages()→Image::createImages()uniqueFilePath()→Storage::uniqueFilePath()(挙動が変わっています。確保したパスのファイルを排他的に作成して返します)spreadTemplate()・resolvePath()・rewritePath()・includeCommentBegin()・includeCommentEnd()・setTemplateComment()・resolveSection()・extendTemplate()はテンプレートエンジンのクラス内部に移りました。外部からの利用は想定されていませんarray_last()は削除されました。代替としてend()等を使ってくださいbuildUnitData()・explodeUnitData()・implodeUnitData()・loadFulltext()・get403HtmlString()は代替の公開関数がありません。処理を独自に実装してください
表側のエントリー編集画面を廃止
エントリーの編集は管理画面側の編集画面に一本化しました(詳細は「改善・修正した変更点」)。Ver. 3.1 以前のテーマを引き続き使う場合は、次を削除してください。
Entry_Body 内の
@include("/admin/entry/edit-%{IS_ADMIN}.html")Touch_EditDirect/Touch_NotEditDirectモジュールのブロックテーマの template.yaml やコンフィグにある
tpl_entry_editの指定(Ver. 3.2 では参照されません)
SQLへルパの仕様変更
本バージョンでは、内部で使用しているSQLヘルパークラス(例:SQL::newSelect()、SQL::newWhere()など)に仕様変更を加えました。これにより、以下のような影響がある可能性があります。
get()の戻り値が SQL 文字列から、SQL 文とバインドするパラメータの配列(['sql' => ..., 'params' => ...])に変わりました。SQL 文字列として扱っていた箇所(文字列結合、ログ出力、他の SQL への埋め込みなど)は、getSQL()とgetParams()を使うよう修正してください。DB::query()は、SQL ヘルパーのget()が返す配列(または SQL 文字列)を受け取ります。$DB->query($SQL->get(dsn()), 'row')のようにget()の結果をそのまま渡している場合は変更不要です。SQL_Insert::setInsert()・SQL_Replace::setReplace()は削除されました。addInsert()・addReplace()を使ってください。
SQLヘルパを直接使用した独自処理やプラグインを実装している場合、カスタム部分の挙動を事前に確認・検証してください。
拡張アプリの互換性
Ver. 3.2.0 のリリース時点では、すべての拡張アプリが Ver. 3.2 に対応しているわけではありません。
現在、利用頻度の高い拡張アプリから順次 Ver. 3.2 に対応を進めております。
一部の拡張アプリは Ver. 3.2 環境下で正常に動作しない可能性があります。
バージョンアップ前に、ご利用中の拡張アプリの対応状況をご確認ください。