改善・修正した変更点
Ver. 3.2 ではPHP 8.4 対応をはじめとするプラットフォーム対応の更新、管理画面やパフォーマンスの改善、アクセシビリティ対応の強化など、多くの機能追加・修正が行われました。
対応PHPバージョンの変更
対応PHPバージョンが、PHP8.1.0 〜 PHP8.4.x に変更されました。 a-blog cms Ver. 3.1.x は PHP7.3まで対応していましたので、アップデート時はお気をつけください。
エントリ編集画面を改善
ToDo: 改善内容を追加
メイン画像にカスタムフィールドを設定できるように改善
Ver. 3.2 では、エントリーのメイン画像に メディアカスタムフィールドを利用できるようになりました。
これにより、従来のように「画像ユニット」や「メディアユニット」のみでしかメイン画像を指定できなかった制約が解消され、より柔軟なメイン画像管理が可能になります。
メイン画像を出力できるモジュール
以下のモジュールで、メイン画像の出力元(ユニット or カスタムフィールド)を選択できる設定が追加されています。
Entry_Summary
Entry_Body
Entry_GeoList
Entry_TagRelational
Category_EntrySummary
V2_Entry_Summary
V2_Entry_Body
V2_Entry_GeoList
V2_Entry_TagRelational
V2_Category_Entry_Summary
モジュールの設定方法
各モジュールの設定画面に「メイン画像の出力元」を選択する項目が追加されています。
メイン画像の出力元を選択
選択肢 | 説明 |
---|---|
ユニット | 従来通り、画像・メディアユニットからメイン画像を取得します |
カスタムフィールド | 指定したメディアカスタムフィールドからメイン画像を取得します。(対象フィールドは、カスタムフィールド選択肢横のテキスト入力欄でフィールド名を設定) |
※ フィールド名を空にした場合は、デフォルトのカスタムフィールド(例:entry_main_image
など)が自動的に使用されます。(後述)
カスタムフィールドが選択されている場合でも、該当するメディア画像が存在しない場合は、従来通りのユニットからのメイン画像出力に自動的にフォールバックします。
デフォルトのメイン画像カスタムフィールド設定
メイン画像用のカスタムフィールド名を明示的に設定しなくても動作する「デフォルトのフィールド名」が用意されています。
各モジュールの設定でフィールド名を空欄にしても、あらかじめ決められたデフォルトのカスタムフィールド名を使用することで、自動的にメイン画像として認識・出力されます。
デフォルトのメイン画面カスタムフィールド名の変更
private/config.system.yaml
で変更が可能です。
main_image_field_name: entry_main_image # エントリーのメイン画像のフィールド名を設定します。
デフォルトのカスタムフィールド名を使用するメリット
各モジュールでフィールド名の設定が不要
エントリー管理画面(エントリー一覧)で、メイン画像として出力できる
関連エントリーの設定画面でサムネイル画像として出力できる
メイン画像用のメディアカスタムフィールドを使用する場合は、フィールド名に entry_main_image
を使用することを推奨します。これにより、CMS全体で一貫した動作と表示が可能になります。
WebP画像をそのままアップロードできるように改善
従来バージョンはWebP画像をそのままアップロードできませんでしたが、Ver. 3.2 では、WebP画像のままアップロードできるようになりました。
* 画像エンジン(ImageMagic / GD)がWebPに対応している必要があります。
メディア機能でHEIC画像のJPEG変更に対応
iPhoneなどで撮影された写真に多く採用されている HEIC形式(High Efficiency Image File Format) の画像のJPEG画像変換に対応しました。HEIC画像をアップロードした際に自動でJPEG形式に変換してアップロードするようになります。
メディア機能の代替テキストに改行が使えるように
これまで代替テキスト(alt属性)には1行のみの入力が想定されていましたが、改行を含む複数行のテキストが登録・表示できるようになりました。
メディア一覧の検索条件に「自分のメディアのみ表示」を追加、またファイル名検索をキーワード検索に変更
メディア管理で「自分のメディアのみ表示」する検索オプションを追加しました。これにより、ログインしているユーザーがアップロードしたメディアのみに絞り込みができますた。
また従来ファイル名でしか検索できなかったのを、ファイル名・キャプション・代替テキスト・メモ内容からキーワードで検索できるようになりました。
カスタムユニットのデータがテキスト置換の対象外になる問題を修正(シリアライズせずに保存するよう改善)
従来は、カスタムユニットのデータをシリアライズして保存していたため、テキスト置換に対応できず、不便な状態となっていました。
本バージョンでは、シリアライズによる保存を廃止し、カスタムフィールドと同様の形式で保存するように改善されたことで、テキスト置換に対応可能となりました。
またカスタムフィールド同様、キーワード検索のワードに含めるかどうかの設定も可能となりました。
<input type="text" name="product_amount{id}" value="{product_amount}" />
<input type="hidden" name="product_amount{id}:search" value="0" /> <!-- キーワード検索でヒットしないように設定 -->
<input type="hidden" name="unit{id}[]" value="product_amount{id}" />
従来データについて
アップデート前に作成されたカスタムユニットのデータは、シリアライズされた形式で保存されていますが、CMSのバージョンアップ時に、自動的に新しい保存方式(配列形式)へと移行されます。
ログインユーザーの最終アクセス時間を、ダッシュボードおよびユーザー・会員一覧で確認可能に
従来は、ダッシュボードでログイン日時を確認することはできましたが、あくまで「ログインした瞬間」の情報であり、その後の最終アクセス日時までは把握できない状態でした。
今回の改善により、最終アクセス日時に加え、接続元のIPアドレスや User-Agent も確認できるようになりました。
管理画面 > ダッシュボード
のログイン履歴から確認できます。
会員ログインに有効・無効のオプションを追加
従来は、会員機能を利用していない場合でも、サインイン画面やパスワードリセット画面が表示され、会員登録はできないが、ページが表示される状態となっていました。
(※会員登録自体は無効のため、実際には使うことのない不要な機能です)
このような状態はセキュリティ上も望ましくないため、本バージョンでは、ログインやパスワードリセット機能を会員機能を利用しない場合は、無効化できるオプションを追加しました。
設定は管理画面 > コンフィグ > ログイン設定
で行えます。
表側のエントリー編集画面を廃止し、同様の編集機能を管理画面内に移設
従来は、エントリー編集を行う際、
管理画面側の編集画面
表側の実装テーマ内で提供される編集画面
のいずれかを使用できるようになっていました。
しかし、表側の編集画面はテンプレートの Entry_Body
内に編集テンプレートをインクルードする必要があり、テーマごとにテンプレートの対応が必要でした。
このため、本バージョンより、表側の編集画面は廃止され、管理画面側のシステムテンプレートで管理するようになりました。編集画面の見た目は変わりますが挙動は従来通りになります。
カスタムフィールドメーカを改善
カスタムフィールドの設定をより柔軟に行えるよう、カスタムフィールドメーカーに以下の改善を行いました。
テキスト入力欄のタイプ属性を拡充
従来の「text」に加え、以下のHTML5入力タイプを選択できるようになりました:
tel
(電話番号)number
(数値)email
(メールアドレス) など
これにより、スマートフォンなどでの入力支援(数字キーボード表示など)が期待できます。
プレースホルダーの設定に対応
各入力欄に任意のプレースホルダー(例:入力例や説明)を設定できるようになりました。
HTMLレイアウトタイプの選択オプションを追加
フィールド出力時のHTMLレイアウト方式として、以下から選択できるようになりました:
従来タイプ(tableレイアウト)
モダンタイプ(div+グリッドCSSレイアウト)
「モダン」タイプを選択すると、生成されるHTMLが <div>
ベースの構造となり、CSSグリッドにより柔軟なレイアウト調整が可能になります。レスポンシブ対応やデザイン調整がしやすくなるのが特徴です。
シンタックスハイライト用のライブラリを Google Code Prettify から highlight.js に変更
組み込みJSのシンタックスハイライター「Google Code Prettify」を廃止し「highlight.js」を導入しました。
初期設定が js/config.js
で設定されています。
// Syntax Highlighter
highlightMark: 'pre',
highlightConfig: {
theme: 'atom-one-light', // テーマを指定(https://highlightjs.org/examples を参照)
languages: ['bash', 'css', 'javascript', 'json', 'php', 'sql', 'typescript', 'xml', 'yaml', 'twig'], // ハイライトする言語を指定(https://highlightjs.org/download を参照)
},
設定例
<script>
ACMS.Ready(() => {
ACMS.Config.highlightConfig.theme = 'atom-one-dark';
});
</script>
組み込みJSのバリデーターをアクセシビリティ対応
ToDo: 改善内容を追加
ACMS.addListener 使用時に、event.detail でカスタムイベントのデータを取得できるように
従来、ACMS.addListener
に登録したコールバック関数では、イベントオブジェクトの event.obj
プロパティを使ってカスタムデータを受け取る仕様となっていました。
ACMS.addListener('custom-event', function (event) {
const data = event.obj; // カスタムデータ
});
本バージョンから、標準的な Web API の仕様に則り、event.detail
でも同様のデータが取得可能になりました。
ACMS.addListener('custom-event', function (event) {
const data = event.detail; // より標準的な取得方法
});
API機能で新しいV2モジュールに対応
API機能が新しいV2モジュールに対応しました。V2モジュールによるAPI出力は、従来のAPIに比べて格段にわかりやすいレスポンスとなっており、より扱いやすくなっています。
設定は、管理画面 > コンフィグ設定 > API設定
から行えます。
エンドポイント
https://example.com/api/v2/モジュールID名/