【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つ目以降の入力欄に入力したデータが検索できるようになります。

最後に

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

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

スケジュールの編集権限を変更する

config.system.yaml に1行追記し、スケジュールの編集権限を変更できます。この機能はVer.2.11から利用可能です。

スケジュールの編集権限は管理者または編集者を選択できます。初期値は編集者以上になっています。


項目 選択肢 初期値
schedule_admin_authority administrator | editor editor

Entry_BodyモジュールでRSSファイルを作成する

a-blog cms では、/themes/system/rss2.xml が用意されており、特に意識しなくてもルート直下にRSSファイルが生成されます。他のテンプレートファイルと同様、お使いのテーマに複製してカスタマイズすることも可能です。このファイルには Feed_Rss2モジュールが使用されています。しかし、Feed_Rss2モジュールでは変数等が限られています。このエントリーでは、Entry_Bodyモジュールを使用したよりきめ細かいRSSファイルの実装について説明します。

Entry_Bodyモジュールを使うとできるようになること

  • カスタムフィールドの値を出す
  • RSS にメイン画像のURLを出す
  • タグの値を出す
  • エントリー日時だけでなく、更新日時を出す
  • Entry_TagRelationalモジュールなどで関連エントリーを出す

例えば多言語サイトで言語ごとのタイトルをカスタムフィールドで作成している場合、各ニュースサイトに最適化したソースを出したい場合などに便利です。

ソースの例

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><!-- BEGIN_MODULE Entry_Body id="rss" -->
    <channel>
        <title>%{ROOT_BLOG_NAME}</title>
        <link>%{HOME_URL}</link>
        <description>%{META_DESCRIPTION}</description>
        <language>ja</language>
        <copyright>(C) %{ROOT_BLOG_NAME}</copyright>
        <lastBuildDate>%{r}</lastBuildDate><!-- BEGIN entry:loop -->
        <item>
            <title>{title}[raw|striptags]</title>
            <link>{permalink}</link>
            <guid isPermaLink="true">{permalink}</guid>
            <description>{summary}[raw|striptags]</description>
            <!-- BEGIN mainImage --><!-- BEGIN_IF [{path}/nem/] --><media:content url="<!-- BEGIN_IF [{image@type}/eq/media] -->%{HTTP_MEDIA_ARCHIVES_DIR}{path}<!-- ELSE -->%{HTTP_ARCHIVES_DIR}{path}<!-- END_IF -->" media="image" /><!-- END_IF --><!-- END mainImage -->
            <content:encoded>
            <![CDATA[
            @include("/include/unit.html")
            ]]>
            </content:encoded>
            <pubDate>{date#r}</pubDate>
            <lastPubDate>{udate#r}</lastPubDate>
            <!-- BEGIN tag:veil --><!-- BEGIN tag:loop --><tags>{name}[raw]></tags><!-- END tag:loop -->
            <!-- END tag:veil --><!-- BEGIN category:veil --><!-- BEGIN category:loop --><category>{name}[raw]></category><!-- END category:loop --><!-- END category:veil -->
        </item><!-- END entry:loop -->
    </channel><!-- END_MODULE Entry_Body -->
</rss>

ポイントは下記の通りです。

  • channelタグの外側を Entry_Bodyモジュールで囲い、モジュールIDを rss としています。
  • lastBuildDate にはグローバル変数 %{r} を使って RFC 5322 形式でフォーマットされた現在の日付を出しています。a-blog cms ではこのように、phpのdate関数フォーマットに指定出来る日付の書式がそのままグローバル変数として使えます。
  • itemタグの外側を entry:loop で囲っています。
  • description には summary を出しています。
  • content:encoded には unit.html をインクルードしています。調整が必要な場合は unit-rss.html 等のファイルを作成してインクルードしてください。
  • media:content にメイン画像のパスを出力しています。
  • content:encoded, media:content を扱う場合には rssタグにそれぞれ 名前空間の指定が必要になります。詳しくはフィードに関する技術的な要件を参考にしてください。

Entry_TagRelationalモジュールなどで関連エントリーを出す場合についてはここでは説明を省きますが、エスケープが必要になることに注意してください。

モジュールIDの設定例


表示設定

条件設定

モジュールIDの設定のポイントは、下記の通りです。

  • 表示設定ではカテゴリー表示順を「現在のカテゴリーのみ」としてカテゴリを1つだけ出すようにしています。ページャー等不要なもののチェックを外しています。
  • 条件設定ではお知らせカテゴリーに絞り込み、引数のフィールドに entry_meta_rss/em を設定して、「RSSに表示しない」にチェックの入っているエントリーを出力しないようにしています。

最後に

もちろん、これらのソースや設定は一例にすぎません。a-blog cms ではこのように、RSSファイルを生成するからといって、必ずFeed_Rss2モジュールを使用しなければならないということはありません。目的に沿ったソースを生成できるモジュールであれば、何を使ってもかまわないのです。実装の際に参考にしていただければ幸いです。

フォームの編集権限を変更する

config.system.yaml に1行追記し、フォームの編集権限を変更できます。この機能はVer.2.11から利用可能です。

フォームの編集権限は管理者または編集者を選択できます。初期値は編集者以上になっています。


項目 選択肢 初期値
form_admin_authority administrator | editor editor

Shoping Cart拡張アプリ アップデートのお知らせ 2024年4月


この記事では、ShoppingCart 拡張アプリ について、2024年4月30日にリリースした  Ver. 2.2.2, Ver. 2.2.3 の内容について紹介いたします。

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

Ver. 2.2.3 のリリースノート

Fixed

  • fix: Ver. 2.2.2 より管理画面でPHPエラーが発生する問題の修正

Ver. 2.2.2 のリリースノート

Features

  • 監査ログ対応
  • feat: Square 連携のクレジットカード決済機能でメモをカスタマイズできる機能を追加(square-note)
  • feat: PHP8.3対応

Fixed

  • Square SDKをVer. 34.0.1.20240118 へアップデート(pnp.iniがを読み込む権限がない場合でもPHPエラーがでないように修正)
  • fix: カート内商品情報を更新すると、表示順が更新順(降順)になってしまう問題の修正
  • fix: 購入時に在庫数が足りないことが原因でエラーが発生した場合の表示を改善
  • a-blog cms Ver. 3.1.7で実装されたallow_dangerous_tagの対応
  • support PSR12
  • POSTによる注文フォームへのアクセスからだと、購入ができない問題を修正
  • fix: サブディレクトリへのインストール時にSquareのWebhook APIが動作しない問題の修正
  • fix: 購入フォームで、決済方法を送信しない場合PHPエラーが出る問題の修正
  • ECテーマの軽微な不具合修正
  • インストーラーのテンプレートを a-blog cms Ver. 3.1.14 のUI変更に対応

主なリリースノート内容

ShoppingCart 拡張アプリ Ver. 2.2.2 の内容について一部紹介いたします。

feat: PHP8.3対応

Ver. 2.2.2より、PHPバージョン 8.3 の環境で動作することを確認しています。

より新しいバージョンの PHP を利用することで、パフォーマンスやセキュリティ的にも改善が期待できます。

是非 PHP 8.2 や、PHP 8.3 の環境で ShoppingCart 拡張アプリをご利用ください。

Square SDKをVer. 34.0.1.20240118 へアップデート(pnp.iniがを読み込む権限がない場合でもPHPエラーがでないように修正)

Square SDK を Ver. 34.0.1.20240118 へアップデートいたしました。

以前のバージョンでは、Square SDK の問題で、pnp.iniがを読み込む権限がない場合、PHPエラーが発生してしまっていました。

これにより、Xserver で Xアクセラレータ Ver. 2 を利用していた場合、Square 連携で不具合が発生しておりました。

Square SDK をアップデートすることで、pnp.iniがを読み込む権限がない場合でも、PHPエラーが発生することなく、正常に動作するようになり、Xserver で Xアクセラレータ Ver. 2 を利用している場合でも Square 連携できるようになっております。

最後に

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

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