リッチエディターユニット

リッチエディターユニットとはVer.2.11から追加された、ブロックでHTMLを記述できるエディター(SmartBlock)を搭載したユニットです。


ブロックにカーソルを合わせると以下のような見た目になります。


リッチエディター(SmartBlock)の特徴

余分なタグが入らない

あらかじめ設定したタグ以外の情報が一切入りません。そのため、一般的なエディターでよくあるような、意図しないタグが知らない間に挿入されているといったことが起こりません。また他のページの内容をコピー、ペーストした際もあらかじめ設定したタグ以上の情報は入りません。

ブロックベースの考え方

また、ブロックベースの考え方でできているため、見出しと本文を入れ替えたり画像と本文を入れ替えたり、順番の制御が容易に行えます。

カスタマイズ性

SmartBlockはカスタマイズ性にもすぐれ、JavaScriptにそれほど精通していない人でも独自のブロックを作成することができます。

導入方法

デフォルトでは追加ユニットのボタン群にリッチエディターボタンが追加されていないので、追加しましょう。 管理画面 > コンフィグ > 編集設定 の順にページを移動し、 ユニット追加ボタンより以下のようにリッチエディターを追加してください。


その後、エントリー編集画面に行くと以下のようにボタンが追加されているのが確認できます。


ボタンをクリック後、下図のような見た目でユニットが表示されます。


リッチエディターで利用できるデフォルトのブロック

デフォルトでは、本文ブロック、見出し2ブロック、見出し3ブロック、リストブロック、番号付きリストブロック、引用ブロック、メディアブロックが利用できます。


本文ブロック


見出し2ブロック


見出し3ブロック


リストブロック


番号付きリストブロック


引用ブロック


メディアブロック


リッチエディターにブロックを追加する

また、デフォルトで使えるブロック以外にも、テーブルブロック、ハイライトブロック、カスタムブロックが利用できます。

追加するにはJavaScriptを記述する必要があり、acms.jsの読み込み以降に ACMS.Ready関数を記述してください。以下はhead要素内の記述例です。

<script src="%{JS_LIB_JQUERY_DIR}jquery-%{JS_LIB_JQUERY_DIR_VERSION}.min.js"></script>
<!-- BEGIN_MODULE Js -->
<script src="%{ROOT_DIR}acms.js{arguments}" id="acms-js"></script><!-- END_MODULE Js -->
<!-- BEGIN_MODULE Touch_Unlogin --><!-- BEGIN_MODULE Blog_Field -->{google_analytics}[raw]<!-- END_MODULE Blog_Field --><!-- END_MODULE Touch_Unlogin -->
<script>
ACMS.Ready(function() {
  // ここに処理を書いていく
});
</script>

テーブルブロックを追加する

以下のJavaScriptを記述することでテーブルブロックを追加できます。

ACMS.Config.SmartBlockAdds = function(Extensions) {
    return [new Extensions.Table()];
};

以下のような見た目のブロックが出現し、行の追加・削除、列の追加・削除などテーブルを編集できるようになります。


テーブルブロック


セルを複数選択することで、セルの結合解除なども可能です。


テーブルブロック


コードブロックを追加する

またエンジニアには嬉しいコードブロックもあります。こちらは入力するたびに書いたソースコードがハイライトされるブロックです。 以下のJavaScriptを記述することでコードブロックを追加できます。

ACMS.Config.SmartBlockAdds = function(Extensions) {
    return [new Extensions.Code()];
};

コードブロック


カスタムブロックを追加する

また独自にブロックを定義して追加することも可能です。

ACMS.Config.SmartBlockAdds = function(Extensions) {
  return [
  new Extensions.CustomBlock({
     tagName: 'div',
     className: 'acms-alert',
     customName: 'alert',
     icon: '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 1792 1792"><title>アラート</title><path d="M1777.67,1567.49,960.05,49.07c-35.23-65.43-92.87-65.43-128.1,0L14.33,1567.49c-35.22,65.43-3.25,119,71.06,119H1706.61C1780.92,1686.45,1812.89,1632.92,1777.67,1567.49ZM1024,1536H768V1280h256Zm0-384H768L704,576h384Z"/></svg>'
  })
  ]
};

オリジナルブロック


カスタムブロックには以下のようなオプションが指定できます。



プロパティ名 説明 記述例
tagName HTML要素を指定 例)p
className クラス名を指定 例)acms-text-error
customName ユニークな名前を記述 例)error-text
icon アイコンを挿入するときはHTMLタグを記述 例)'<i class="fa fa-user"></i>'

リッチエディターで利用できるデフォルトの装飾

また、リッチエディターでは以下の画像のように、インライン装飾をするための仕組みがあります。デフォルトでは、強調、アンダーライン、打ち消し線、リンクの装飾を施すことができます。


装飾を追加する

また存在しない装飾はブロックと同じように独自に定義して追加することができます。以下のソースコードは、redというclass属性が適用されたspan要素を追加するサンプルコードになります。

ACMS.Config.SmartBlockAdds = function(Extensions) {
  return [
   new Extensions.CustomMark({
	tagName: 'span',
	className: 'red', // 任意の項目です。class属性を指定する際はこの項目を記述してください
	customName: 'red-text',
	icon: '<svg>...</svg>' // SVGまたはimg要素が指定可能です
   })
  ]
};

複数の設定を追加する

複数の設定を追加するときは、「,(カンマ)」区切りで記述します。

ACMS.Config.SmartBlockAdds = function(Extensions) {
  return [
   new Extensions.CustomMark({
	tagName: 'span',
	className: 'red',
	customName: 'red-text',
	icon: '<svg>...</svg>' // SVGまたはimg要素が指定可能です
   }),
   new Extensions.CustomMark({
	tagName: 'span',
	className: 'blue',
	customName: 'blue-text',
	icon: '<svg>...</svg>' // SVGまたはimg要素が指定可能です
   })
  ]
};

リッチエディターを使用する

Ver.2.11.0 から使えるようになったリッチエディターユニットですが、下の図のように、このインターフェースはカスタマイズ次第でブログやカテゴリー、エントリーのカスタムフィールドとしても利用可能です。ここではその方法について、登録側(管理画面)と表示側に分けてご紹介します。


登録側(管理画面)の記述

以下が、リッチエディターが実装された、カスタムフィールドのサンプルHTMLになります。js-expandやjs-expand-btnと記述された部分は要素を全画面表示するための記述で本来リッチエディターとは関係ありませんが、編集領域が狭い場合などに有効です。

<table class="acms-admin-table-admin-edit">
  <tr>
    <th>リッチエディター</th>
    <td>
      <div class="js-expand js-acms-expand">
        <div class="js-acms-expand-inner">
          <button class="js-expand-btn js-acms-expand-btn" type="button">
            <i class="acms-admin-icon acms-admin-icon-expand-arrow js-expand-icon"></i>
          </button>
          <div class="js-smartblock" data-heading-start="2" data-heading-end="3">
            <div class="js-smartblock-edit"></div>
            <input type="hidden" class="js-smartblock-body" name="rich" value="{rich@html}" />
            <input type="hidden" name="field[]" value="rich" />
            <input type="hidden" name="rich:extension" value="rich-editor" />
          </div>
        </div>
      </div>
    </td>
  </tr>
</table>

表側の記述

表示したいテーブルが、{rich} という変数の場合は以下のように記述します。エントリーのカスタムフィールドで作成した場合はEntry系モジュールのentry:loop内に記述してください。変数名そのままではなく、{rich@html}と記述して表示しないといけない点にご注意ください。

{rich@html}

なおこれら一連のソースコードは、カスタムフィールドメーカーからも生成できるようになっています。


カスタムフィールドメーカー

JVNで報告された脆弱性への対応について

サムネイル

a-blog cms で複数の脆弱性が見つかりました。 該当の状況に当てはまる場合は大変お手数ですが以下のご対応をお願いいたします。

JVN識別番号

  • JVN#70977403

今回は見つかった脆弱性は以下になります。

  • エントリー編集ページのクロスサイトスクリプティング(XSS)
  • Webhook機能のサーバーサイドリクエストフォージェリ(SSRF)
  • Webhook機能のコードインジェクション
  • スケジュールのラベル設定画面のクロスサイトスクリプティング(XSS)
  • フォーム機能(テンプレート指定)のディレクトリ・トラバーサル

エントリー編集ページのクロスサイトスクリプティング

内容

攻撃者が投稿者以上でログインし、エントリーに不正なコードを入力して保存して公開することにより、クロスサイトスクリプティングが発生します。

攻撃条件

  • 攻撃者が 投稿者以上の権限でログイン可能なこと(* 不正ログインされる脆弱性はありません)
  • 攻撃者が記事を公開できること

影響を受けるバージョン

  • a-blog cms Ver. 3.1.11 以下のバージョン (Ver.3.1.x系)
  • a-blog cms Ver. 3.0.31 以下のバージョン (Ver.3.0.x系)
  • a-blog cms Ver. 2.11.60 以下のバージョン (Ver.2.11.x系)
  • a-blog cms Ver. 2.10.52 以下のバージョン (Ver.2.10.x系)
  • a-blog cms Ver. 2.9.x 以下のバージョン(フィックスバージョンはありません

ワークアラウンド(応急処置)

応急処置として、信頼されないユーザーにログインされるリスクを下げるため、 コンフィグ > アクセス設定かIPアドレスによるログイン制限をかけたり、ユーザーのパスワードを複雑なものに変更ください。

CMSバージョンアップによる対応

各マイナーバージョン毎にフィックスバージョンがリリースしております。 「影響を受けるバージョン」 よりも新しいフィックスバージョンにアップデートを行なってください。

対応バージョンの仕様変更

今回の対応で意図的に危険なタグを許可する校正オプション「」の仕様が変更されました。

今までの仕様

  • 変数は「allow_dangerous_tag」校正オプションを付与しないと、全ての変数で危険なタグの削除を行う
  • 上記より管理画面の変数も「allow_dangerous_tag」校正オプションを付与する必要がありました

新しい仕様

  • 「allow_dangerous_tag」校正オプションを付与しなくても「raw」校正オプションが付与されていなければ、特にエスケープ処理のみで、危険なタグを削除したいしないように変更
  • 基本管理画面は「raw」校正オプションはついていないので、管理画面の変数に「allow_dangerous_tag」校正オプションを付与する必要がなくなりました。

まとめると、新しい仕様では「raw」校正オプションが付与されている場合のみ、 危険なタグを削除するかを「allow_dangerous_tag」校正オプションのあり・なしで設定するということになります。

詳しくはこちらをご覧くささい。 【重要なお知らせ】変数の仕様変更について

Webhook機能のサーバーサイドリクエストフォージェリ

内容

攻撃者が管理者権限でログインして、Webhookの設定を不正に変更することで、サーバーサイドリクエストファージュリが発生します。

攻撃条件

  • 攻撃者が 管理者権限でログイン可能なこと(* 不正ログインされる脆弱性はありません)
  • Hook機能が有効なこと(config.server.php「HOOK_ENABLE」デフォルトは無効です)

影響を受けるバージョン

  • a-blog cms Ver. 3.1.11 以下のバージョン (Ver.3.1.x系)
  • a-blog cms Ver. 3.0.31 以下のバージョン (Ver.3.0.x系)

ワークアラウンド(応急処置)

config.server.php を修正することで、Webhook機能を無効(デフォルト無効)にできます。 もしWebhook機能を使用したい場合は、CMSのアップデートをご検討ください。

define('HOOK_ENABLE', 0); // 0 で無効

CMSバージョンアップによる対応

各マイナーバージョン毎にフィックスバージョンがリリースしております。 「影響を受けるバージョン」 よりも新しいフィックスバージョンにアップデートを行なってください。

対応バージョンの仕様変更

セキュリティを高めるため、今回の脆弱性に対応したバージョンでは、Webhookの仕様変更がされています。

変更点1

WebhookのリクエストURLは、「.env」で許可したホストのみ保存・実装できるようになっております。 Webhookを利用する場合は「.env」で以下のように許可ホストを設定ください。


WEBHOOK_WHITE_LIST=hooks.slack.com,xxxxx.com # Webhookでリクエスト可能なホストをカンマ区切りで指定ください。

変更点2

ログのレスポンス表示は、デフォルトで表示できないようになっております。


レスポンスのログを表示するには、「.env」で「WEBHOOK_RESPONSE_VIEW」を「enable」に変更ください。

WEBHOOK_RESPONSE_VIEW=enable # (disabled|enable) WebhookのログにHTTPレスポンス情報を表示するかどうか設定します。セキュリティのため、確認する時のみ「enable」に設定ください。

Webhook機能のコードインジェクション

内容

攻撃者が管理者権限でログインして、Webhookのペイロード設定を不正に変更することで、コードインジェクションが発生します。

攻撃条件

  • 攻撃者が 管理者権限でログイン可能なこと(* 不正ログインされる脆弱性はありません)
  • Hook機能が有効なこと(config.server.php「HOOK_ENABLE」デフォルトは無効です)

影響を受けるバージョン

  • a-blog cms Ver. 3.1.11 以下のバージョン (Ver.3.1.x系)
  • a-blog cms Ver. 3.0.31 以下のバージョン (Ver.3.0.x系)

ワークアラウンド(応急処置)

config.server.php を修正することで、Webhook機能を無効(デフォルト無効)にできます。 もしWebhook機能を使用したい場合は、CMSのアップデートをご検討ください。

define('HOOK_ENABLE', 0); // 0 で無効

CMSバージョンアップによる対応

各マイナーバージョン毎にフィックスバージョンがリリースしております。 「影響を受けるバージョン」 よりも新しいフィックスバージョンにアップデートを行なってください。

対応バージョンの仕様変更

今回の問題に対応するため、ペイロードのカスタマイズで利用するテンプレートエンジンをTwigに変更しました。 新しいテンプレートは Twig を使ったテンプレート表記に変更ください。


スケジュールのラベル設定画面のクロスサイトスクリプティング

内容

攻撃者が編集者でログインし、スケジュール機能の「ラベル設定」画面で、不正な値を設定することにより、クロスサイトスクリプティングが発生します。

攻撃条件

  • 攻撃者が 編集者以上の権限でログイン可能なこと(* 不正ログインされる脆弱性はありません)
  • スケジュールを編集できること
  • 別の編集者・管理者がスケジュールのラベル設定画面を閲覧すること

影響を受けるバージョン

  • a-blog cms Ver. 3.1.11 以下のバージョン (Ver.3.1.x系)
  • a-blog cms Ver. 3.0.31 以下のバージョン (Ver.3.0.x系)
  • a-blog cms Ver. 2.11.60 以下のバージョン (Ver.2.11.x系)
  • a-blog cms Ver. 2.10.52 以下のバージョン (Ver.2.10.x系)
  • a-blog cms Ver. 2.9.x 以下のバージョン(フィックスバージョンはありません

ワークアラウンド(応急処置)

以下ファイルの修正をしてください。

php/ACMS/GET/Admin/Schedule/Labels.php: 36行目付近

修正前

$Tpl->add('label:loop', array(
    'sort'  => $sort,
    'name'  => isset($_label[0]) ? $_label[0] : '',
    'key'   => isset($_label[1]) ? $_label[1] : '',
    'class' => isset($_label[2]) ? $_label[2] : '',
    )
);

修正後

$Tpl->add('label:loop', array(
    'sort'  => $sort,
    'name'  => isset($_label[0]) ? $_label[0] : '',
    'key'   => isset($_label[1]) ? $_label[1] : '',
    'classStr' => isset($_label[2]) ? $_label[2] : '', // この行を修正 class => classStr
    )
);

ablogcms/themes/system/admin/schedule/edit-label.html: 74行目付近

修正前

<input type="text" name="schedule_label_class[]" value="{class}" class="acms-admin-form-width-full" />

修正後

<input type="text" name="schedule_label_class[]" value="{classStr}" class="acms-admin-form-width-full" /> <!-- class => classStr に変更 -->

CMSバージョンアップによる対応

各マイナーバージョン毎にフィックスバージョンがリリースしております。 「影響を受けるバージョン」 よりも新しいフィックスバージョンにアップデートを行なってください。

フォーム機能(テンプレート指定)のディレクトリ・トラバーサル

内容

攻撃者が編集者以上でログインし、フォーム設定を不正な値に設定し、実際にフォームで送信することで、 フォームのログ表示に任意のファイルの情報が表示されるディレクトリ・トラバーサルの脆弱性が発生します。

攻撃条件

  • 攻撃者が 編集者以上の権限でログイン可能なこと(* 不正ログインされる脆弱性はありません)
  • テンプレートにフォーム機能が設置されていること . 攻撃者がフォームのログを確認できること

影響を受けるバージョン

  • a-blog cms Ver. 3.1.11 以下のバージョン (Ver.3.1.x系)
  • a-blog cms Ver. 3.0.31 以下のバージョン (Ver.3.0.x系)
  • a-blog cms Ver. 2.11.60 以下のバージョン (Ver.2.11.x系)
  • a-blog cms Ver. 2.10.52 以下のバージョン (Ver.2.10.x系)
  • a-blog cms Ver. 2.9.x 以下のバージョン(フィックスバージョンはありません

ワークアラウンド(応急処置)

フォームの設定を変更されないように以下3つのファイル変更を行います。

  • php/ACMS/POST/Form/Update.php
  • php/ACMS/POST/Form/Insert.php
  • php/ACMS/POST/Form/Duplicate.php

各3つのファイルの「postメソッド」の先頭に「die();」を挿入してフォームを作成・更新・複製できないようにします。

public function post()
{
    die();
    ...

CMSバージョンアップによる対応

各マイナーバージョン毎にフィックスバージョンがリリースしております。 「影響を受けるバージョン」 よりも新しいフィックスバージョンにアップデートを行なってください。

最後に

この度はご迷惑をおかけしてしまい大変申し訳ございません。
該当する問題がありましたら、お早めにバージョンアップのご検討をお願いいたします。 また、迅速にご報告いただいたユーザーの皆さま、誠にありがとうございました。

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

本件に関するお問い合わせ先

本件についてご不明点などありましたら以下のお問い合わせよりご連絡ください。

有限会社アップルップル
メールアドレス:info@a-blogcms.jp
お問い合わせフォーム:https://www.a-blogcms.jp/contact/

Open Graph Protocol(OGP)モジュール

Open Graph Protocol(OGP)モジュールとは、meta要素やOGPの情報を表示する機能のことです。カスタムフィールドのSEO設定に登録された情報を表示します。

この機能は、管理画面>コンフィグ >OGPまたは管理画面>モジュールID のページで新規モジュールを作成することで利用できます。

タイトル設定

<title>要素やOGPのタイトル表示で使用されるタイトルに関する設定です。



項目 概要 初期値
優先順序 タイトルで使われるパーツの優先順序を設定します。
利用可能パーツ (entry, page, tag, keyword, date, admin, 404, category, blog, rootBlog) 
entry, page, tag, keyword, date, admin, 404, category, blog, rootBlog
パーツの区切り文字 タイトルの区切り文字を設定します。  | 
エントリーのカスタムフィールド名 タイトルで使われるカスタムフィールド名を設定します。このフィールドがない場合は、エントリーのタイトルが使われます。 entry_meta_title
カテゴリーのカスタムフィールド名 タイトルで使われるカスタムフィールド名を設定します。このフィールドがない場合は、カテゴリー名が使われます。 category_meta_title
ブログのカスタムフィールド名 タイトルで使われるカスタムフィールド名を設定します。このフィールドがない場合は、ブログ名が使われます。 blog_meta_title
階層表示 ブログとカテゴリーの階層構造をタイトルに含めるか指定します。
空のエントリーコード 空のエントリーコードの場合はそのタイトルを含めないようにします。
ページのフォーマット ページ番号を出力するテキストのフォーマットを設定します。ページ番号は{page}で表示されます。 {page}ページ目
タグの区切り文字 タグの区切り文字を設定します。
日付の書式 日付の書式を設定します。PHPのdateに準拠しています。 Y/m/d
管理ページのタイトル 管理ページのタイトルを設定します。 管理ページ
404のタイトル 404エラー時のタイトルを設定します。 お探しのページは見つかりませんでした

画像設定

OGPのサムネイル画像に関する設定です。

表示する優先度は下記になります。

  1. エントリーのカスタムフィールド画像
  2. エントリーのユニット画像(「ユニットのメイン画像は含めない」項目でオフを選択した場合)
  3. カテゴリーのカスタムフィールド画像
  4. ブログのカスタムフィールド画像
  5. ルートブログのカスタムフィールド画像


項目 概要 初期値
ユニットのメイン画像は含めない(Ver.2.11から利用可能) チェックをすると、ユニットのメイン画像はOGP画像に含まれなくなります。 オフ
エントリーのカスタムフィールド名 エントリーのカスタムフィールド名を設定します。 ogp_image
カテゴリーのカスタムフィールド名 カテゴリーのカスタムフィールド名を設定します。 ogp_image
ブログのカスタムフィールド名 ブログのカスタムフィールド名を設定します。 ogp_image

ディスクリプション設定

OGPのディスクリプションに関する設定です。

ディスクリプションを表示する優先度は下記になります。

  1. エントリーのカスタムフィールド
  2. エントリーのサマリー(フルテキスト)
  3. カテゴリーのカスタムフィールド
  4. ブログのカスタムフィールド
  5. ルートブログのカスタムフィールド


項目 概要 初期値
エントリーのディスクリプションの表示設定 チェックすると、エントリーのカスタムフィールドに値が設定されていない場合はエントリーのディスクリプションを表示しません。 オフ
エントリーのカスタムフィールド名 エントリーのカスタムフィールド名を設定します。 entry_meta_description
カテゴリーのカスタムフィールド名 カテゴリーのカスタムフィールド名を設定します。 category_meta_description
ブログのカスタムフィールド名 ブログのカスタムフィールド名を設定します。 blog_meta_description

キーワード設定

meta要素で指定できるkeywordに関する設定です。

キーワードを表示する優先度は下記になります。

  1. エントリーのカスタムフィールド
  2. カテゴリーのカスタムフィールド
  3. ブログのカスタムフィールド
  4. ルートブログのカスタムフィールド


項目 概要 初期値
エントリーのカスタムフィールド名 エントリーのカスタムフィールド名を設定します。 entry_meta_keywords
カテゴリーのカスタムフィールド名 カテゴリーのカスタムフィールド名を設定します。 category_meta_keywords
ブログのカスタムフィールド名 ブログのカスタムフィールド名を設定します。 blog_meta_keywords

【PHP8.3対応】Ver. 3.1.14 リリースのお知らせ


この記事では、2024年4月23日にリリースした Ver. 3.1.14 及び、Ver. 3.0.34、Ver. 2.11.63、Ver. 2.10.55 の修正内容について紹介いたします。

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

Ver. 3.1.14 リリースノート

変更点・新機能

  • CMS-6694 PHP8.2, 8.3対応
  • CMS-6618 プレビュー画面で直前で利用したデバイスの履歴を残せるように修正
  • CMS-6787 setup 機能を改善

修正点

  • CMS-6773 フォームの新規作成時にログの設定をしても反映されない問題の修正
  • CMS-6772 フォームの「ログを残さないようにする」機能が環境によっては動作しない問題の修正
  • CMS-6774 メディアダウンロードパスの解決が不十分で、シークレットブログや非公開ブログでメディアがダウンロードできない場合がある問題を修正
  • CMS-6777 Ver. 3.1.12 のセキュリティフィックスが原因でコンフィグのインポートが動作していない問題を修正
  • CMS-6784 /admin/module/setting.html のリンクの文言を「編集する」に統一
  • CMS-6769 エントリ編集画面でCategory_EntryListが動作すると、phpエラーが発生する不具合を修正
  • CMS-6785 resizeImg 校正オプションをスニペットのコード内で利用するように変更
  • CMS-6656 モジュールが空文字や真偽値を返す場合、API機能利用時に不正なJSONがレスポンスされてしまう問題の修正
  • CMS-6756 管理画面のメディア検索で、「年」「月」の両方を指定すると動作しない問題の修正
  • CMS-6753 データベースのバックアップ機能でキャッシュデータが保存されるテーブルもバックアップしてしまう問題の修正
  • CMS-6760 メールマガジン機能のテンプレートでメディアユニットが表示できない問題の修正
  • CMS-6696 カスタムユニットの中のグループのテキスト2つ目以降のテキストが全文検索でヒットしない問題の修正

Ver. 3.0.34 リリースノート

修正点

  • CMS-6776 Ver. 3.0.32 のセキュリティフィックスが原因でコンフィグのインポートが動作していない問題を修正

Ver. 2.11.63 リリースノート

修正点

  • CMS-6778 Ver. 2.11.61 のセキュリティフィックスが原因でコンフィグのインポートが動作していない問題を修正

Ver. 2.10.55 リリースノート

修正点

  • CMS-6779 Ver. 2.10.53 のセキュリティフィックスが原因でコンフィグのインポートが動作していない問題を修正

主なリリースノートの詳細な内容

CMS-6694 PHP8.2, 8.3対応

Ver. 3.1.14 より PHPバージョン 8.2 及び、8.3 に対応いたしました。

より新しいバージョンの PHP を利用することで、パフォーマンスやセキュリティ的にも改善が期待できます。是非 PHP 8.2 や、PHP 8.3 の環境で a-blog cms をご利用ください。

CMS-6618 プレビュー画面で直前で利用したデバイスの履歴を残せるように修正

プレビュー機能で、直前に利用したデバイスをブラウザ(ローカルストレージ)に保存するオプションを追加しました。


以前のバージョンでは、管理画面 > コンフィグ > 機能設定から設定している初期デバイスがプレビューボタン押下時のデバイスとして適用されていたため、初期デバイス以外のデバイスで閲覧したいユーザーは毎回デバイスを選択し直す必要がありました。


Ver. 3.1.14 より、管理画面 > コンフィグ > 機能設定から「直前に利用したデバイスをブラウザに保存する」オプションを有効にすることで、プレビュー機能利用中にデバイスを変更したことがブラウザ(ローカルストレージ)に保存され、次回プレビュー時に保存したデバイスが適用された状態でプレビュー機能を利用することができるようになります。


「直前に利用したデバイスをブラウザに保存する」オプションの設定画面

「直前に利用したデバイスをブラウザに保存する」オプションの設定画面


これにより、ユーザーは毎回デバイスを選択し直す必要がなくなり、記事の確認をスムーズに行うことができるようになります。

CMS-6787 setup 機能を改善


インストーラーのUIがキレイになりました。この画像はインストーラーの初期画面です。

インストーラーの初期画面


下記の点で setup (メンテナンスツール・インストーラー)の機能を改善しました。

  • DB の文字コード euc & sjis を廃止
  • DB の文字コード utf8mb4 を追加
  • media , storage のパーミッションチェック
  • .env ファイルの設定チェック
  • インストーラー&メンテナンスツールのレイアウトを調整
  • メンテナンスツール「カスタムフィールド検索フラグの修正」を非表示(対象が v1.4.0b2〜v1.4.0正式版が対象であったため)
  • ログアウトボタンを追加
  • 子ブログ同時インストール可能に修正(site[lp@site] のように指定)
  • エクスポート機能で media, media_tag, geo, entry_sub_category テーブルもエクスポートできるように修正

特に UI が変更されておりますので、今までの UI に慣れている方はお気をつけください。

CMS-6696 カスタムユニットの中のグループのテキスト2つ目以降のテキストが全文検索でヒットしない問題の修正

カスタムユニット内でフィールドグループを利用した場合、2つ目以降の入力欄に入力したデータが全文検索用データとして保存されていなかった問題を修正いたしました。

上記の問題により、以前のバージョンでは、カスタムユニット内でフィールドグループを利用した場合2つ目以降の入力欄に入力したデータでは全文検索機能で検索できておりませんでした。

Ver. 3.1.14 以降で保存したデータは問題ありませんが、以前のバージョンで保存されている全文検索用データは修正されておりません。そのため、管理画面 > データ修正 > フルテキスト修正 よりエントリーのフルテキストデータの再生成を行ってください。

フルテキスト修正を行うことで、以前のバージョンでカスタムユニット内でフィールドグループを利用して保存されている場合でも、全文検索で2つ目以降の入力欄に入力したデータが検索できるようになります。

最後に

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

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