Ver. 3.0.11、Ver. 2.11.50 リリースのお知らせ


この記事では、2022年6月8日にリリースしたVer. 3.0.11、Ver. 2.11.50 の修正内容について紹介いたします。

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

Ver. 3.0.11 リリースノート

  • CMS-5998 プレビューの共有機能をスタンダードライセンスから使えるように変更
  • CMS-5958 User-Agent Client Hints によるUA判定に対応 & ルールからiPad判定を削除
  • CMS-5984 「余分な空白の削除」オプションが正しく動作しない問題を修正
  • CMS-5986 コンフィグ > API設定で設定の保存が成功した場合に表示されるメッセージを「出力設定を保存しました」→「API設定を保存しました」に変更
  • CMS-5989 PHP8.0 環境で関連エントリーを複数追加して保存すると、エラーが出る問題の修正
  • CMS-5991 メディアユニットのファイルのキャプションが、静的書き出しした際に中央寄せになってしまう問題を修正
  • CMS-5993 Category_Listで下階層のみに設定するとPHPエラーが出てしまう問題を修正
  • CMS-6000 ページネーションのページが飛ぶ箇所(例 ...)がページが連続していても出てしまう問題を修正
  • CMS-6001 フォームのメールアドレス重複禁止オプションがうまく動作していない問題を修正
  • CMS-6003 表示時に出来るだけ、画像ファイルへのアクセスをしないように修正(パフォーマンス改善)
  • CMS-6005 システム系のメールで、デバッグモードがONだと、グローバル変数が解決されない問題を修正

Ver. 2.11.50 リリースノート

  • CMS-5959 User-Agent Client Hints によるUA判定に対応 & ルールからiPad判定を削除
  • CMS-5985 「余分な空白の削除」オプションが正しく動作しない問題を修正
  • CMS-5990 関連エントリー保存時の重複チェックが機能しない問題の修正
  • CMS-5992 メディアユニットのファイルのキャプションが、静的書き出しした際に中央寄せになってしまう問題を修正
  • CMS-5995 Category_Listで下階層のみに設定するとPHPエラーが出てしまう問題を修正
  • CMS-6002 フォームのメールアドレス重複禁止オプションがうまく動作していない問題を修正

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

CMS-5993 Category_Listで下階層のみに設定するとPHPエラーが出てしまう問題を修正

モジュールIDの設定で、階層を「下階層のカテゴリーのみを対象とする(descendant)」と設定していた場合に、以下のPHPエラーが表示されページが正常に表示されない問題を修正しました。

エラーメッセージの内容

Undefined array key "category_indexing" in /var/www/html/git/ablogcms/php/ACMS/GET/Category/List.php line: 108

以上のエラーメッセージが発生してしまいページが正常に表示されていない場合は、アップデートをお願いいたします。

CMS-6000 ページネーションのページが飛ぶ箇所(例 ...)がページが連続していても出てしまう問題を修正

たとえば以下の画像のように、本来であればページネーションの表示としては5ページ目を現在している場合は「1,2,3,4,5」と連続して数字が続くべきところが「1 ... 2,3,4,5」という風に「...」が入ってしまうという問題を修正しました。


「1 ... 2,3,4,5」と表示されてしまっているページネーション

該当の問題が発生しているページネーション


同じ問題が発生している場合は、アップデート後、omitBeforePageとomitAfterPageブロックを記述してください。

新しく追加したomitBeforePageとomitAfterPageブロックについて

この問題に対応をするために、新しくomitBeforePageとomitAfterPageブロックが以下のビルトインモジュールに追加されました。

  • Entry_Body
  • Entry_GeoList
  • Entry_Headline
  • Entry_Summary
  • Unit_List
  • User_GeoList
  • User_Search

omitBeforePageとomitAfterPageブロックを追加したページャーのスニペット一部は以下のようになります。

<!-- BEGIN backLink --><li><a href="{url}" aria-label="前へ" class="pager-link"><span aria-hidden="true">&laquo;</span></a></li><!-- END backLink -->
<!-- BEGIN firstPage:veil --><li {pageCurAttr}[raw]><span><a href="{firstPageUrl}" class="pager-link">{firstPage}</a></span></li><!-- END firstPage:veil -->
<!-- BEGIN omitBeforePage --><li>...</li><!-- END omitBeforePage -->
<!-- BEGIN page:loop --><li{pageCurAttr}[raw]><span><!-- BEGIN link#front --><a href="{url}" class="pager-link"><!-- END link#front -->{page}<!-- BEGIN link#rear --></a><!-- END link#rear --><!-- BEGIN glue --><!-- END glue --></span></li><!-- END page:loop -->
<!-- BEGIN omitAfterPage --><li>...</li><!-- END omitAfterPage -->
<!-- BEGIN lastPage:veil --><li{pageCurAttr}[raw]><span><a href="{lastPageUrl}" class="pager-link">{lastPage}</a></span></li><!-- END lastPage:veil -->
<!-- BEGIN forwardLink --><li><a href="{url}" aria-label="次へ" class="pager-link"><span aria-hidden="true">&raquo;</span></a></li><!-- END forwardLink -->

CMS-6001 フォームのメールアドレス重複禁止オプションがうまく動作していない問題を修正

フォームIDから「メールアドレスの重複禁止(duplication)」のバリデーターを設定した場合、すでに登録されているメールアドレスからフォームを送信してもバリデーターが動作せず、そのままフォームを送信できてしまう問題が発生しておりました。

この問題を修正し、フォームIDに「メールアドレスの重複禁止(duplication)」を設定していた場合、すでに登録されているメールアドレスでフォームを送信するとバリデーターが動作するようになりました。

CMS-5998 プレビューの共有機能を全てのライセンスから使えるように変更


モーダルが表示されて、確認用リンクを取得するボタンが大きく表示されているスクリーンショット

プレビューの共有機能


以前からプロフェッショナル・エンタープライズライセンスで提供していた「プレビューの共有機能」がすべてのライセンスで使用できるようになりました。プレビューの共有機能は、確認用リンクを発行してプレビュー状態を他の人に共有する機能です。

プレビューの共有機能の詳細の使い方については、マニュアルの記事をご覧ください。

CMS-5958 User-Agent Client Hints によるUA判定に対応 & ルールからiPad判定を削除

Google Chrome を中心に、User Agent を削除する動きがございます。これに対応するため、新しい仕様である「User-Agent Client Hints」に対応いたしました。 特に ルールやグローバル変数 の使い方に変更はございませんので、特に意識することはございません。

参考サイト: https://tech.drecom.co.jp/ac2021-client-hints-update/

ただし iOS 13以上のSafari の場合、UserAgentが変更になり、iPadと判定できなくなりました。
Safariは「User-Agent Client Hints」に未対応のため、今回の対応でも判定することは出来ませんのでご注意ください。
これにより、ルールのUser Agent選択肢から、iPadを削除させていただきました。

最後に

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

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

フォームでエントリーなどのカスタムフィールドやグローバル変数を渡すカスタマイズ


フォームの自由度の高さは a-blog cms の特長のひとつです。このエントリーでは、そのカスタマイズの一例として、ユーザーがフォームに入力したフィールド以外の変数の渡し方を解説します。エントリーフィールド、カテゴリーフィールド、ブログフィールドなどのカスタムフィールド、クエリ変数やグローバル変数をフォームの変数として扱えるようにします。

変数を追加するテンプレートの場所

フォームを入力するテンプレートに追加します。公式テーマの site や beginner では /contact/form/input.html になります。初期の入力画面と step#reapply に共通でインクルードされ、追加した変数を途中のステップで表示することもできるようになります。

エントリーフィールドをフォームの変数として追加する

エントリーにフォームがあり、そのエントリーのカスタムフィールドを渡したい場合には、下記のようにコードを追加します。

<!-- BEGIN_MODULE Entry_Field -->

<input type="hidden" name="area" value="{area}">
<input type="hidden" name="field[]" value="area">

<input type="hidden" name="price" value="{price}">
<input type="hidden" name="field[]" value="price">

<!-- END_MODULE Entry_Field -->

area 及び price というエントリーカスタムフィールドがフォームに渡されます。

カテゴリー、ブログ、ユーザーのカスタムフィールドをフォームの変数として追加する

カテゴリー、ブログのカスタムフィールドの場合も、エントリーの場合と同様、フォームに渡すことができます。また、ログインしているユーザーに関しては、ユーザーのカスタムフィールドを渡すこともできます。その場合 ctx="uid/%{SESSION_USER_ID}" を User_Field モジュールに追加します。

<!-- BEGIN_MODULE User_Field ctx="uid/%{SESSION_USER_ID}" -->

<input type="hidden" name="gender" value="{gender}">
<input type="hidden" name="field[]" value="gender">

<!-- END_MODULE User_Field -->

gender というユーザーカスタムフィールドがフォームに渡されます。もちろん {name} や {mail} などのフィールドも渡せるので、ログインしたユーザーであればフォームの項目にいちいち入力させないといったカスタマイズも可能です。

グローバル変数をフォームの変数として追加する

グローバル変数はそのままでメールの返信テンプレートに使用できます。公式テーマでも %{BLOG_NAME} などのグローバル変数が使われています。拡張したグローバル変数の場合も同様です。しかし、グローバル変数もフォームの変数として追加する必要があるケースがあります。

フォームへのリンクにクエリストリングを持たせておけば、どの媒体、どのページからの遷移であるかを確認するなどの使い方ができます。また、Google スプレッドシートとの連携はフォームの件数や項目が多い場合の管理に便利です。

グローバル変数をフォームの変数として追加する書き方は次のとおりです。

<input type="hidden" name="global_var" value="%{GLOBAL_VAR}">
<input type="hidden" name="field[]" value="global_var">

以上、今回は type="hidden" で変数を渡すケースを解説しましたが、もちろん type="text" 等でフォームの項目の初期値として様々な変数を扱い、ユーザー側で変更可能にするカスタマイズも可能です。ぜひ、取り入れてみてください。

クイックサーチ(どこでも検索)

検索画面

検索画面


Ver. 2.8 よりログインしていると以下のようなポップアップが現れ、キーワード検索で色々な情報にアクセス出来るようになりました。

アクセス出来る情報

  • ブログ
  • エントリー
  • カテゴリー
  • モジュールID
  • 管理画面メニュー
  • ショットーカット(登録されているもの)
  • モジュール変数表
  • モジュールスニペット
  • グローバル変数(拡張したグローバル変数を含む)

ショートカットキー

  • Windows: Ctrl + k
  • MacOS: ⌘K

モード

フリーキーワードで検索はそのまま、キーワードを入力すればいいですが、そのほかに3つのモードが用意されています。

スニペット検索モードキーワードの最初に ;(セミコロン) を入力することにより、スニペットを検索できるようになります。
変数表検索モードキーワードの最初に :(コロン) を入力することにより、変数表を検索できるようになります。
グローバル変数検索モードキーワードの最初に %(パーセント) を入力することにより、グローバル変数を検索できるようになります。