監査ログ機能 - Ver. 3.1.0 リリース情報


この記事では、2023年09月14日にリリースされた「Ver. 3.1.0」の「監査ログ」機能について紹介しています。

CMSで操作された内容や、CMSで発生したエラーがログとして残り管理画面から確認できるようになりました。 操作した人や、URL、HTTPヘッダーや、送信内容などログ毎に細かく情報が取れますので、何か問題が起きた時の調査に役立ちます。

* 操作ログはプロフェッショナルライセンス以上になりますが、何かしらエラーが起きた場合のログは、スタンダード版でも確認できるようになっております。

ログ確認画面

管理者でルートブログの管理ページにアクセスすると、右側メニューに「監査ログ」があります。クリックすると監査ログページにアクセスできます。

監査ログ画面では、ログの一覧が確認でき、ユーザーや期間、ログレベルで絞り込みが行えるようになっています。


監査ログ画面

監査ログ画面


詳細な情報を確認したい場合は、確認したいログの「詳細」ボタンを押すことで確認できます。 この画面では様々な情報が確認でき、右上の「クリップボードにコピー」ボタンを押すことで「JSONデータ」としてコピーすることができます。サポートを受ける際にも非常に有効な手段ですので、ぜひご利用ください。


ログの詳細情報

ログの詳細情報


ログレベル

ログのレベルは全部で以下のものがあります。「INFO(情報)」については、プロフェッショナルライセンス以上でのみ記録されるようになります。ユーザーの操作履歴を残したい場合は、プロフェッショナルライセンス以上をご検討ください。



ログレベル 説明 スタンダード プロ以上
DEBUG(デバッグ) デバッグ情報
INFO(情報) エラーではない正常の操作を記憶します
NOTICE(注意) 特にプログラムを修正する必要はないが、不正操作・不正アクセス(CSRFチェック、アカウントロック時)など
WARNING(警告) 潜在的な問題。不具合や環境に問題がある可能性があるエラーなど
ERROR(エラー) データが壊れているなど、不具合や環境に問題がある可能性があるエラー。処理が継続できない場合など
CRITICAL(重大) 一部機能が使用不能・表示不能になったなどの、ある程度影響範囲が大きいエラーが起きた場合など
ALERT(警報) データベースに接続できないなど、サイトが表示できない状態で緊急で対応が必要な場合など
EMERGENCY(緊急) サイトが表示できない状態。基本的には使用していません。

通知機能とファイルへの保存

エラーが発生した際、問題にすぐに気がつけるように監査ログ機能には通知機能がついており、設定したログレベル以上のログが発生すると、メールで通知してくれます。 また、データベースにログは保存しているのですが、ファイルにも書き出すことが出来るようになっております。

設定方法

a-blog cms設置ディレクトリにある「.envファイル」で設定を行います。

# エラー通知
ALERT_EMAIL_FROM=info@example.com # エラー通知メールの送信元
ALERT_EMAIL_TO= # エラー通知メールの送信先。空の場合「UID」が一番小さい管理者アカウントのメールアドレスに送信します。
ALERT_EMAIL_BCC= # カンマ区切りで指定
ALERT_REPORTING_LEVEL=WARNING # エラー通知をする最低ログレベルを設定します。(DEBUG|INFO|NOTICE|WARNING|ERROR|CRITICAL|ALERT)

# ロガー
LOGGER_ROTATING_MAX_FILES=60 # ログローテーションの日数を設定します。
LOGGER_MODE=development # (development|production) productionに設定すると、ライセンス切れやデバッグモード時なども、ログとして残します


設定項目 説明 デフォルト値
ALERT_EMAIL_FROM エラー通知メールの送信元 info@example.com
ALERT_EMAIL_TO エラー通知メールの送信先。空の場合「UID」が一番小さい管理者アカウントのメールアドレスに送信します
ALERT_EMAIL_BCC エラー通知メールのBCC
ALERT_REPORTING_LEVEL エラー通知をする最低ログレベルを設定します WARNING
LOGGER_ROTATING_MAX_FILES ログローテーションの日数を設定します 60
LOGGER_MODE productionに設定すると、ライセンス切れやデバッグモード時なども、ログとして残します development

LOGGER_MODEはデフォルトだと「development」になっています。この状態だと、ライセンスに問題があった場合などログが残らず通知もしてくれないので、本番環境では必ず「production」に設定しましょう。

開発者向け

専用モジュールやHookなどを使用して、PHPをカスタマイズしている方もいると思います。 そんな方には、以下の方法を使うことで自分のプログラムにログを追加できるようになります。

基本的な使い方

  • 保存したいログレベルのメソッドを呼び出す
  • 第1引数: メッセージ文字列
  • 第2引数: 保存したい情報(連想配列)
AcmsLogger::[ログレベル](string $message, array $info);

// 例
AcmsLogger::info('xxxを作成しました', [
  'hoge' => 'abc',
  'hoge2' => 200,
]);

use して使う場合

use Acms\Services\Facades\Logger;

Logger::info('xxxx');

コード例

メッセージだけ指定

\ AcmsLogger::critical('重大な問題により動作を停止しました');

例外をログとして残す

「Common::exceptionArray()」を第2引数に指定すると、例外の詳細な情報を渡してくれます。

try {
...
} catch ( \Exception $e ) {
    \AcmsLogger::warning($e->getMessage(), \Common::exceptionArray($e));
}

このログは通常のログと同じように表示や通知などに利用できますので、PHPでカスタマイズを行っている方はぜひお試しください。

監査ログ機能の紹介については以上になります。他 Ver. 3.1.0 の新機能・改善も多くありますので、ぜひご覧ください。

日々使いやすいシステムとなるよう改善を勤めておりますので、皆様からの貴重なフィードバック、お待ちしております。
今後とも a-blog cms のことをどうぞよろしくお願いいたします。

memberテーマを追加 - Ver. 3.1.0 リリース情報


この記事では、2023年09月14日にリリースされた「Ver. 3.1.0」で追加された「member」テーマついて紹介しています。

Ver. 3.1 で会員機能が大幅にアップデートされましたので、会員機能を使った新しいテーマ「member」を新たに追加いたしました。

新機能・改善点一覧

  • CMS-6461 会員機能が入った、memberテーマを追加
  • CMS-6477 ログイン中だけエントリーの続きを閲覧できる会員限定記事機能を追加

CMS-6461 会員機能が入った、memberテーマを追加

「member」テーマは、メディアサイトベースの作りになっており、会員機能を持ち、会員限定の記事を用意できるテーマとなっております。 基本的にコンテンツは記事のみになりますので、作りはそこまで難しくなく、会員サイトを作りたい場合のベースとして便利なテーマになっております。


memberテーマ

memberテーマ


また「member」テーマは、継承はしていませんが「UTSUWA」テーマベースで開発されていてパーツなどは「UTSUWA」と同じになっております。

memberテーマの主な機能

  • メディアサイト
  • カテゴリーによる記事の分類
  • 会員登録機能
  • マイページ(シークレットカテゴリー)
  • 会員情報の変更機能(プロフィール、メールアドレス、パスワードなど)
  • 会員限定記事機能
  • SNS認証によるサインイン・会員登録
  • お問い合わせフォーム

サインイン画面

サインイン画面


会員登録画面

会員登録画面


マイページ

マイページ


プロフィール変更画面

プロフィール変更画面


会員限定記事

会員限定記事


CMS-6477 ログイン中だけエントリーの続きを閲覧できる会員限定記事機能を追加

会員限定記事のカスタマイズ方法について紹介いたします。

エントリー編集画面に会員限定設定を表示させる

管理ページ > 編集画面 > 編集設定の「会員限定」の表示にチェックをつけます。これによりエントリーを会員限定記事に設定することができるようになります。


編集設定画面

編集設定画面


エントリーを会員限定にする

次に会員限定にしたい記事を編集します。エントリーの編集画面に移動すると「 会員限定記事にする」チェックボックスがあるので、チェックをつけます。


エントリーの編集画面

エントリーの編集画面


チェックをつけると、普段は「続きを読む」の位置を設定するバーが「以下ユニットが会員限定になります」と表示が変わります。このバー以下が会員限定のコンテンツになるので、好きな位置にバーを動かしましょう。


会員限定内容の設定

会員限定内容の設定


会員限定部分の表示テンプレートを用意

以上の設定ができると、エントリー詳細で会員限定コンテンツ部分が表示されなくなります。 このままだと会員限定コンテンツが表示されないので、会員限定コンテンツ部分のテンプレートを用意する必要があります。

ログインしている場合は、続きのユニットをJSで読み込み、ログアウトしている場合はサインインを促すテンプレートを用意します。

memberテーマの「include/parts/members-only.html」か、systemテーマの「include/members-only.html」を参考にください。

<!-- BEGIN continueLink -->
<div class="js-members-only-entry" data-eid="%{EID}" data-page="%{PAGE}" data-display="block" style="display: none;" >
  <div class="read-more entry-container">
    <div class="acms-alert acms-margin-top-small acms-margin-bottom-large">
      <p class="acms-margin-none acms-margin-top-large acms-margin-bottom-large acms-text-center">以降は会員限定コンテンツです。<br>続きを読むためには会員登録が必要になります。</p>
      <div class="acms-text-center">
        <p class="acms-margin-none acms-margin-bottom-medium">
          <a href="%{HOME_URL}%{SIGNUP_SEGMENT}/" class="acms-btn acms-btn-primary acms-btn-large">今すぐ無料で登録</a>
        </p>
        <form action="" method="post" class="acms-margin-bottom-large">
          <input type="hidden" name="bid" value="%{BID}" />
          <input type="hidden" name="eid" value="%{EID}" />
          <button type="submit" name="ACMS_POST_Member_SigninRedirect" class="acms-btn acms-btn-large">サインインして続きを読む</button>
        </form>
      </div>
    </div>
  </div>
</div>
<!-- END continueLink -->

このテンプレートをエントリー詳細のEntry_Bodyで読み込みます。 読み込む位置は、ユニット表示に下になります。

<!-- ユニット -->
<!-- BEGIN unit:veil -->
@include("/include/unit.html")
<hr class="clearHidden" />
<!-- END unit:veil -->

<!-- 会員限定 -->
@include("/include/members-only.html")

これで、会員限定設定の基本は完了になります。ログインしている時は全てのユニットが見え、ログアウトしている時は、サインインを促す表示がされると思います。


会員限定コンテンツを知らせるテンプレート

会員限定コンテンツを知らせるテンプレート


エントリー一覧や詳細に会員限定ラベルを表示

Entry_Summary系モジュールやEntry_Bodyモジュールに会員限定記事の場合に表示するブロックが新しく追加されました。これを利用して会員限定記事にはラベルをつけると分かりやすくなります。

<!-- BEGEIN entry:loop -->
...
<!-- BEGIN membersOnly --><span class="...">会員限定</span><!-- END membersOnly -->
...
<!-- END entry:loop -->

Entry_Summaryの変数表

Entry_Summaryの変数表


一覧での会員限定ラベル

一覧での会員限定ラベル


詳細での会員限定ラベル

詳細での会員限定ラベル


会員限定記事の一覧作成

必須の設定ではありませんが、サイトに会員限定記事の一覧を出したい場合もあると思います。ここでは会員限定記事のみの一覧の出し方を解説します。

といってもEntry_SummaryEntry_Bodyモジュールの設定を1つ変更するだけです。

Entry_SummaryやEntry_BodyのモジュールIDの「表示設定」で、「会員限定のエントリーのみ表示する」にチェックをつけてください。 あとは、通常のモジュールの使い方で会員限定記事のみ表示することができるようになります。


会員限定の記事のみ表示する

会員限定の記事のみ表示する


以上、会員限定記事機能の紹介でした。

memberテーマの紹介については以上になります。他 Ver. 3.1.0 の新機能・改善も多くありますので、ぜひご覧ください。

日々使いやすいシステムとなるよう改善を勤めておりますので、皆様からの貴重なフィードバック、お待ちしております。
今後とも a-blog cms のことをどうぞよろしくお願いいたします。

UTSUWA Ver. 2.0.9 リリースのお知らせ


a-blog cms の公式テーマである UTSUWA をアップデートいたしました。UTSUWA の最新バージョンは GitHub からダウンロード可能です。GitHub の UTSUWA 最新バージョンは現在の CMS に同梱されている UTSUWA とはバージョンが異なります。近々リリースされる CMS 3.1系には最新の UTSUWA が同梱されます。

Ver. 2.0.9

変更点

  • ビルドツールのアップデート
  • 固定ヘッダー分の高さ確保をCSSのscroll-padding-topに変更
  • モジュールIDのグローバル化と%{BASE_URL} から %{HOME_URL}への変更
  • エントリーカスタムフィールドのOGP画像をSEO設定の中に
  • カルーセルをslickからsplideに変更
  • site-partsフォルダとpartsフォルダを統合

修正点

  • フッターロゴの条件分岐を修正
  • 電話番号ではないtelを含むリンクにスタイルが適用されるのを修正
  • ページタイトル背景画像を中心配置に
  • フォームのemailバリデータを修正
  • サブディレクトリインストール時にアセットのパスが通らなくなる問題の修正
  • webpack実行時に不要なJavaScriptが出力されてしまう問題の修正
  • 不要な横スクロールが表示されるのを修正
  • Android Chrome での閲覧時のトップページの表示崩れを修正

主なリリースノート内容

固定ヘッダー分の高さ確保をCSSのscroll-padding-topに変更

テキストユニットの見出し要素にアンカーリンクを設けた場合に固定ヘッダー分の高さを確保するため、上方向にネガティブマージンとボーダーを適用していましたがこれを削除しました。代わりにCSSのscroll-padding-topを利用してヘッダー分の高さを確保し、scroll-behaviorでスムーススクロールを実装しています。scroll-behavior-polyfillを読み込むことでSafari14以前にも対応しています。

Android Chrome での閲覧時のトップページの表示崩れを修正(カルーセルをslickからsplideに変更)

カルーセルをslickからsplideに変更したことで、Android Chrome での閲覧時のトップページの表示崩れも修正されています。

最後に

UTSUWAをはじめ、各公式テーマをより使いやすいものにするため、今後もアップデートを重ねてまいります。公式テーマに関するご意見ご要望もお待ちしております。

Ver. 3.0.28 フィックスバージョンリリースのお知らせの


2023年07月05日にリリースした Ver. 3.0.28 の修正内容についてご紹介いたします。

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

Ver. 3.0.28 リリースノート

不具合・セキュリティ修正

  • CMS-6390 セットアッププログラムの入力値にHTMLの特殊文字が含まれているとHTMLエンティティに変換されて評価されてしまう問題の修正
  • CMS-6394 .htaccess に隠しファイルへのアクセスを禁止にする記述を追加
  • CMS-6392 インストーラーで設定するデータベース情報にシングルクオートが含まれていると、config.server.php が壊れてしまう問題の修正
  • CMS-6391 utsuwa, developテーマにユニットグループの回り込み解除のJSを追加(ログアウト時にレイアウトが崩れる問題を修正)
  • CMS-6347 メディアが出力するURLのファイル名をURLエンコードするように修正
  • CMS-6395 各テーマのjsパッケージ(package.json)を更新
  • CMS-6340 カテゴリーの選択肢のソート降順に変更(category_select_global_order: sort-asc -> sort-desc)
  • CMS-6316 JSがオフまたはロードされていない状態で、エントリー保存するとメディアユニットと関連エントリーのデータが消えてしまう問題を修正
  • CMS-6393 セットアッププログラムをリファクタリング
  • CMS-6400 デフォルトコンフィグ(config.system.yaml 及び config.system.default.yaml)の取得タイミングを 早めることで、standalone.php や setup でもデフォルトコンフィグが利用できるように改良
  • CMS-6405 Entry_Summaryのスニペットから、関連エントリー表示のコードを削除
  • CMS-6407 画像圧縮できない環境で、画像圧縮オプション(img_optimizer)をオフにしても画像がアップロードできない場合がある問題を修正
  • CMS-6408 SmartPhoto で表示するサムネイル画像のパスに括弧が含まれるとサムネイル画像が表示されない問題の修正(SmartPhoto を Ver. 1.6.5 へバージョンアップ)
  • CMS-6409 Storage ファサードの put メソッドで 0 バイトの書き込みを行うと例外が発生する問題の修正
  • CMS-6410 テーブルユニットで波括弧を2つ以上連続して入力すると、{null}と変換されてしまう問題の修正 (a-table を Ver. 1.5.10 へアップデート)
  • CMS-6416 WYSIWYG(CKEdirtor)の操作メニューが(揃え、フォント)がなくなっている問題を修正
  • CMS-6411 カスタムフィールドメーカーで生成されたリッチエディターのカスタムフィールドグループのHTMLで、リッチエディターのクラス名が間違っている問題 & カスタムフィールドメーカーで生成したチェックボックスのカスタムフィールドの出力用コードで項目名(label)として入力された値が表示されるように修正
  • CMS-6417 プレビュー機能で、ロード時にプレビューの画面幅が0なことにより、JavaScriptライブラリの組み合わせによっては挙動がおかしくなる問題を修正
  • CMS-5996 拡張アプリのインストール時に重複送信を行うと、拡張アプリが同一ブログに対して重複して保存されてしまうがある問題の修正
  • CMS-6356 Entry_Body モジュールに、エントリーのソート順を表示する sort, csort, usort 変数を追加
  • CMS-6418 Ver. 3系で 読者ユーザーの同時ログイン機能がオフになってしまっていた問題を修正
  • CMS-6355 エントリーの CSVインポートで 別ブログを指定してインポートできてしまう問題の修正
  • CMS-6419 ユーザーのCSVインポートでインポート先ブログ及び新規追加時のユーザーIDが指定できてしまう問題の修正
  • CMS-6421 アップデート時、POST時のキャッシュクリアがデフォルトオフなのをデフォルトONに変更
  • CMS-6423 PHP8.1環境で、ブログのインポートを実行すると Passing null to parameter のwarning がでる問題の修正
  • CMS-6360 ユーザーグループで登録されているロールが削除できてしまう問題の修正
  • CMS-6424 User_Search、User_GeoListモジュールで、ステータス有効・無効の設定に、有効期限を考慮するように修正 & ユーザー一覧で有効期限切れがわかるように修正
  • CMS-6361 ワークフローで登録されているユーザーグループが削除できてしまう問題の修正
  • CMS-6420 テキスト置換がどのブログで実行しても全ブログ対象になるのを、ブログこと、もしくは子ブログを含めて置換ができるように修正
  • CMS-6422 メディアを編集するだけで、アップロード日時の表示が更新されてしまう問題を修正
  • CMS-6427 CSRFトークンの発行処理で出来るだけセッションをスタートしないように調整
  • CMS-6414 .htaccessの index.html なしへの正規化のリダイレクトで、index.htmlで終わるURLの場合、意図しないリダイレクトをしてしまう問題を修正
  • CMS-6425 ユーザー削除時に関連テーブルのデータ削除漏れがある問題の修正(位置情報、ユーザーグループ)& ログインユーザー自身のユーザー詳細画面では削除ボタンは表示しないように修正
  • CMS-6386 セキュリティ対応

主なリリースノート内容

CMS-6390 セットアッププログラムの入力値にHTMLの特殊文字が含まれているとHTMLエンティティに変換されて評価されてしまう問題の修正

セットアップ機能で入力値を文字実体参照に変換して処理してしまっていた不具合を修正いたしました。

セットアップ機能は 入力値に対して、HTMLで意味のある文字列(<>&"')が入力された時に、文字実態参照に変換する仕様となっておりました。

これにより、データベースのパスワードやユーザー名などに、HTMLで意味のある文字列(<>&"')が含まれているとうまく接続できない他、メンテンナンスプログラムへのログイン時にユーザーID / メールアドレス 及び パスワードにHTMLで意味のある文字列(&"'<>)が含まれている場合、ログインに失敗してしまっておりました。

今回、入力値に対しては入力をそのまま処理する用に修正し、出力値のみHTMLで意味のある文字列(<>&"')が含まれていた場合、文字実体参照に変換するようになったため、上記のような問題が解決されております。

CMS-6391 utsuwa, developテーマにユニットグループの回り込み解除のJSを追加(ログアウト時にレイアウトが崩れる問題を修正)

問題内容

「utsuwa」「develop」テーマともにパフォーマンス対策として、投稿者以上でログインしていないときは、CMSの組み込みJSを使用しないようにデフォルトで設定されております。 組み込みJSは読み込まれませんが、閲覧する上で最低限必要なJavaScriptはテーマ側のJavaScriptで実装されております。

今回発覚した問題は、ユニットグループの回り込みを解除するための組み込みJSが、「utsuwa」「develop」テーマにあるJavaScriptに含まれておらず、 ログアウト時や読者ユーザーでログインしているときに、ユニットグループが崩れておりました。

修正内容

「utsuwa」「develop」テーマのJavaScriptにユニットグループの回り込みを解除するJSを追加し、ログアウトしていても正常に表示できるよう修正いたしました。

CMS-6340 カテゴリーの選択肢のソート降順に変更(category_select_global_order: sort-asc -> sort-desc)

エントリーの編集画面などで、カテゴリーの選択肢のソート順を「ソート昇順」から「ソート降順」に変更いたしました。
理由といたしましては、カテゴリーが大量にあった場合、最近追加したカテゴリーのほうが利用頻度が高いと判断しての修正になります。

ソート順の変更方法

private/config.system.yaml に以下の記述を追加することで、以前の設定(ソート降順)に戻すことができます。

category_select_global_order: sort-asc


CMS-6316 JSがオフまたはロードされていない状態で、エントリー保存するとメディアユニットと関連エントリーのデータが消えてしまう問題を修正

「メディアユニット」や「関連エントリー」は、JavaScriptでUIを作っているので、JavaScriptが実行されていないと入力欄が出てきません。 この状態で保存したときデータがないものと判断され、データが消えておりました。

この問題を修正し、たとえJavaScriptがオフの状態でも、「メディアユニット」や「関連エントリー」のデータが消えないように修正いたしました。

CMS-6416 WYSIWYG(CKEdirtor)の操作メニューが(揃え、フォント)がなくなっている問題を修正

WYSIWYG(CKEdirtor)の操作メニューの一部メニュー(揃え、フォント)が表示されなくなっていたので、追加されるように修正いたしました。


修正前

修正前


修正後

修正後


CMS-6417 プレビュー機能で、ロード時にプレビューの画面幅が0なことにより、JavaScriptライブラリの組み合わせによっては挙動がおかしくなる問題を修正

プレビュー機能で、場合によって表示が崩れてしまう問題を修正しました。

原因

プレビュー機能での表示時に、画面幅が一瞬0pxとなってしまう現象がありました。
これにより、画面幅を利用するようなJavaScriptライブラリを利用していると、表示が崩れる可能性があります。 例えばレスポンシブ対応のグリッドレイアウトを実現する「Masonry」が当てはまります。

対応

プレビュー表示時に、画面幅が0pxにならないように修正いたしました。


CMS-6356 Entry_Body モジュールに、エントリーのソート順を表示する sort, csort, usort 変数を追加

Entry_Body モジュールに、エントリーのソート順を表示する sort, csort, usort 変数を追加いたしました。 Entry_Body モジュールで CSV ファイルを作成時に表示順の値を出力したいといった場合に活用できるかと思います。

変数表 を更新しておりますので、詳細は変数表をご確認ください。

CMS-6421 新規インストール時、POST時のキャッシュクリアがデフォルトオフなのをデフォルトONに変更

private/config.system.yaml の以下設定を「off」から「on」に変更しました。
cache_clear_when_post: on  # on | off エントリー保存や設定変更時にキャッシュをクリアするか設定

Ver. 3.0 でキャッシュ機能が改善され、POST時にキャッシュをクリアしないオプションが追加されました。(時間でキャッシュを有効期限切れにしていく運用) CMSのアップデート時は、このオプションは、以前と同じ挙動でPOST時にキャッシュをクリアするようになっているのですが、新規インストール時は、キャッシュをクリアしない設定がデフォルトでした。

今回このオプションのデフォルトを POST時にキャッシュをクリアする に変更いたしました。(config.system.yaml の値を変更)



経緯

いままでのa-blog cmsを使った運用方法だと、エントリーを更新すれば即時キャッシュがクリアされていたのが、即時反映されなくなったので、サイトが更新されないというお問い合わせを多くいただきました。このオプションを元に戻したことにより、パフォーマンスが大きく落ちるということもないので、分かりやすさを優先させたという流れとなります。

キャッシュについてもっと詳しく見る

CMS-6420 テキスト置換がどのブログで実行しても全ブログ対象になるのを、ブログ毎、もしくは子ブログを含めて置換ができるように修正

いままでは、データ修正のテキスト置換機能は、どのブログで実行してもサイト全体が対象となっておりました。

これを改善し、基本的には操作ブログのみ対象にし、オプションで、子ブログを含めた置換ができるようにしました。


操作ブログのみ置換、もしくは子ブログを含めて置換できるように

操作ブログのみ置換、もしくは子ブログを含めて置換できるように


CMS-6414 .htaccessの index.html なしへの正規化のリダイレクトで、index.htmlで終わるURLの場合、意図しないリダイレクトをしてしまう問題を修正

index.html で終わるファイル名のURLの場合、意図しないリダイレクトがされる問題を修正いたしました。

再現するURL例

以下のように詳細から一覧へのリダイレクトがされます。本来であればリダイレクトされないURLになります。

https://example.com/newsindex.html -> https://example.com/ 
https://example.com/news/hogeindex.html -> https://example.com/news/

修正内容

新規インストールの場合は、パッケージの「.htaccess」をご利用いただければ問題ございませんが、CMSアップデートの場合、「.htaccess」は上書きされないので、お手数ですが手動で対応をお願いいたします。

修正前

# ---------------------------
# index.html なしへの正規化
# ---------------------------
RewriteCond %{REQUEST_URI} ^(.*)/index.html$
RewriteRule .* https://%{HTTP_HOST}%1/ [R=301,NE,L]

修正後

# ---------------------------
# index.html なしへの正規化
# ---------------------------
RewriteCond %{REQUEST_URI} ^(.*)/index.html$
RewriteRule .* https://%{HTTP_HOST}%1/ [R=301,NE,L]

最後に

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

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

a-blog cms Ver. 3.1.0 アルファ版 を公開しました

Ver 3.1.0-alpha.2

a-blog cmsの次期バージョンであるa-blog cms Ver. 3.1.0のパブリックアルファをダウンロード出来るようにしました。

このバージョンは開発版になりますので、運用中のサイトにはインストールしないで下さい。このバージョンはサポート対象ではありません。

新規インストール

以下より新規パッケージをダウンロードしてお使いください。インストール方法は 3.0.x と同様になりますので、インストール をご覧ください。

php7.2.5 - 8.1.x

https://developer.a-blogcms.jp/_package/3.1.0-alpha.2/acms3.1.0-alpha.2.zip

簡単セットアップ

簡単セットアップでテスト環境に新規にインストールする際には、8行目のバージョンをしているする部分に以下のように指定ください。

$ablogcmsVersion = '3.1.0-alpha.2';

新機能

  • CMS-6136 バージョン管理でバージョンの公開予約機能を追加
  • CMS-6125 プロフェッショナルライセンス以上で監査ログ機能を追加
  • CMS-6126 エントリーの排他制御機能(編集ロック機能)を追加(プロフェッショナルライセンス以上)
  • CMS-6135 同一ブログ内でのカテゴリーコードの重複許可オプション(category_order_strict_mode)を追加(新規インストール時デフォルトON)
  • CMS-6194 登録ドメイン以外でもサイトが表示できるように仕様変更(ライセンスと違うドメインの場合はnoindexとなる)
  • CMS-6308 バージョン管理機能で、バージョンを上書き出来るように仕様変更
  • CMS-6379 wysiwygエディタを「CKEditor」から「Trumbowyg」に変更
  • CMS-6123 ライセンス切れ時にもキャッシュが効くように修正 & デバッグモードとベンチマークモードをユーザー詳細ページでユーザーごとに設定できるように改修(管理者のみ)

変更点

  • CMS-6188 エイリアス機能を管理画面でも有効になるように改修
  • CMS-6244 ログイン制限機能で、ログイン画面の表示・表示も制御するように修正
  • CMS-6216 タグフィルターとタグクラウドで、複数のブログ・カテゴリーを選択できるように改修
  • CMS-6215 WordPressのXMLインポートで、サムネイル画像URLをインポートできるように改善
  • CMS-6130 メディア編集画面でファイル名を変更する機能を追加
  • CMS-6252 acms.css のメディアクエリーで使用しているmax-widthの変数の値を小数点に変更
  • CMS-6267 Twitter Cardのsiteとcreatorの指定方法を見直し
  • CMS-6300 .htaccessによる、メンテナンス表示を.htaccessにコメントで追加
  • CMS-6173 ユーザーアイコンで大きいサイズが使えるように変数を追加
  • CMS-6301 .htaccess に隠しファイルへのアクセスを禁止にする記述を追加
  • CMS-6340 カテゴリーの選択肢のソート降順に変更(category_select_global_order: sort-asc -> sort-desc)
  • CMS-6400 デフォルトコンフィグ(config.system.yaml 及び config.system.default.yaml)の取得タイミングを 早めることで、standalone.php や setup でもデフォルトコンフィグが利用できるように改良
  • CMS-6405 Entry_Summaryのスニペットから、関連エントリー表示のコードを削除
  • CMS-6406 developテーマ以外の各テーマのjsをビルドしないように修正 & CSSをminifyしないように修正

バグフィックス

  • CMS-6304 メディアファイルを削除した時に、サムネイル画像が消えない問題を修正
  • CMS-6390 セットアッププログラムの入力値にHTMLの特殊文字が含まれているとHTMLエンティティに変換されて評価されてしまう問題の修正
  • CMS-6392 インストーラーで設定するデータベース情報にシングルクオートが含まれていると、config.server.php が壊れてしまう問題の修正
  • CMS-6347 メディアが出力するURLのファイル名をURLエンコードするように修正
  • CMS-6316 JSがオフまたはロードされていない状態で、エントリー保存するおメディアユニットと関連エントリーのデータが消えてしまう問題を修正

紹介動画

a-blog cms LIVE Vol.14(YouTube Live) で、Ver. 3.1 の機能をご紹介させていただきました。ぜひ試しながらご覧ください。 17:25 から 始まります。


Ver. 3.0.26 フィックスバージョンリリースのお知らせ


2023年05月19日にリリースした Ver. 3.0.26 の修正内容についてご紹介いたします。

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

Ver. 3.0.26 リリースノート

不具合修正

  • CMS-6370 php8.0 以上でPHP Warningエラーが出る問題を修正
  • CMS-6371 メールの重要度(X-Priority)を設定しないように修正
  • CMS-6372 フォームのTo, Cc, Bcc に「ラベル <メールアドレス>」のフォーマットでアドレス指定すると、メールが送信できない問題を修正
  • CMS-6373 テキストユニットで、入力エリアの高さ調整が保存後効かない場合がある問題を修正
  • CMS-6374 動的フォームで入力チェックのフィールドを削除して1つもない状態にすると、PHP8.0以降でエラーが出る問題を修正
  • CMS-6375 メディアアップロードで、MIMEタイプの取得方法を改善
  • CMS-6376 スケジュールモジュールで「七曜表時の曜日始まり」を月曜日にしていると、最後のタグが表示されない問題を修正
  • CMS-6377 コンフィグ > ユニット設定でテキストタグセレクトのデフォルト値を、ACMS.Config.LiteEditorSourceModeTags で設定したタグに設定している場合、追加したユニットのテキストタグセレクトを ACMS.Config.LiteEditorSourceModeTags で設定したタグ以外のタグに変更した場合に、入力した値が消えてしまう問題の修正(wysiwyg の場合は例外的に発生しません。)
  • CMS-6378 「投稿者以上の権限であっても管理画面、編集画面以外は、読者(閲覧者)と同じ条件で表示する」設定がONだと、カテゴリーの選択肢が動作しない問題を修正

主なリリースノート内容

CMS-6371 メールの重要度(X-Priority)を設定しないように修正

フォームなどのメール送信で、重要度(X-Priority)が設定されている影響で、Outlookなど「X-Priority」が有効なメーラーで、優先度が自動的に「高」になってしまう問題を「X-Priority」ヘッダーを削除することにより修正しました。

CMS-6372 フォームのTo, Cc, Bcc に「ラベル <メールアドレス>」のフォーマットでアドレス指定すると、メールが送信できない問題を修正

問題のバージョン

  • Ver. 3.0.24
  • Ver. 3.0.25

フォームのTo, CC, Bcc に以下のフォーマットのメールアドレスを指定した場合、メールが送信できない不具合を修正しました。

"ラベル" <info@example.com>

CMS-6376 スケジュールモジュールで「七曜表時の曜日始まり」を月曜日にしていると、最後のタグが表示されない問題を修正

スケジュールモジュールで「七曜表時の曜日始まり」を「月曜日」に設定してしまうと、出力されるテーブルの最後の1日のタグが出力されない問題を修正しました。


CMS-6378 「投稿者以上の権限であっても管理画面、編集画面以外は、読者(閲覧者)と同じ条件で表示する」設定がONだと、カテゴリーの選択肢が動作しない問題を修正

コンフィグ > ログイン設定 にある「投稿者以上の権限であっても管理画面、編集画面以外は、読者(閲覧者)と同じ条件で表示する」にチェックが付いていると、カテゴリーの選択肢が出てこない問題を修正しました。


最後に

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

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

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


この記事では、ShoppingCart 拡張アプリ について、2023年5月9日にリリースした  Ver. 2.1.0、Ver. 2.1.1 の内容及び、5月15日にリリースした Ver. 2.1.2 について紹介いたします。

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

Ver. 2.1.0 のリリースノート

Added

  • Order_Summaryモジュールで注文商品・決済方法・追加手数料・配送地域・総注文商品(エントリー)数合計・総注文商品の数量合計のデータを出力できるブロック、変数を追加
  • ShoppingForm モジュールで適用中の決済方法の説明用画像を表示できるように改良
  • 決済方法に利用条件を設定できる機能及び、利用条件を満たした決済方法を表示するモジュール(Payment_Select)を追加
  • フォーマットした送料無料のしきい値(小計)を表示するグローバル変数(%{SHIPPING_FREE_SUBTOTAL_FORMATTED} )を追加
  • ShoppingCart 及び ShoppingCart_Summary モジュールで配送グループ(shippingGroup)ブロックを表示できるように改修
  • 決済方法・配送グループ・追加手数料にステータス設定を追加(公開 or 非公開)& Payment_Selectモジュールでステータスを考慮した決済方法のみを表示するように改修 & ステータスを考慮した配送グループ・追加手数料を表示するモジュール(ShippingGroup_AdminSelect・Addition_Select)を追加
  • Squareで決済をした場合、レシート番号(square-receiptNumber)とレシートURL(square-receiptUrl)をメール用の変数として表示できる機能を追加
  • ShoppingCart_Summary モジュールで税金情報と小計を表示できる変数を追加(taxAmount:loop, subtotal)

Changed

  • ECテーマのカート追加・更新・削除時にJavaScriptを触らずにバリデーションを追加できる用に変更
  • 管理画面のタブの分け方を変更
  • ECテーマでOrder_SummaryモジュールからAPI経由で取得していたカート内商品のデータをShoppingCart_Summary に置き換え
  • ECテーマの決済フォームのカテゴリーを cart → shopping に変更
  • ECテーマ決済フォームにおいて、注文情報を Order_Summaryモジュールで表示するように変更
  • ECテーマの不要なCSS及びJavaScript を削除など整理

Fixed

  • ECテーマのカート追加時に、カラーとサイズの必須チェックをするように修正
  • 送料無料のしきい値に0を設定した場合に、送料無料にならない問題の修正
  • ShippingCart_Summaryモジュールの変数表に(sort, usort, csort, ecd)を追加
  • 設定されている決済方法・配送グループ・追加手数料が0個の場合、エラーが出る問題を修正

Ver. 2.1.1 のリリースノート

Fixed

  • fix: PHP7.4で syntax error, unexpected '|', expecting variable (T_VARIABLE) が発生する問題の修正
  • ECテーマ詳細ページの Entry_Summary で ページネーションが表示されてしまう問題の修正

Ver. 2.1.2 のリリースノート

Fixed

  • ECテーマ: IOSでモーダルの背景がスクロールできてしまう問題の修正
  • ShippingGroup_AdminSelect モジュールの変数表が間違っている問題の修正
  • Firefox でクレジットカード決済が必ずエラーになってしまう問題の修正
  • Ver. 16 未満の Safariで Square の クレジットカード情報取得時にフォームが送信されない問題の修正
  • カート及び決済フォームを表示するページはページキャッシュされないように修正

主なリリースノート内容

今回のリリースではいくつか新しい機能が追加されていますが、新しい機能を利用するためにテンプレートの変更が必要になることがあります。

そのため、この記事では、テンプレートの変更が必要になる部分について詳しく説明いたします。

決済方法に利用条件を設定できる機能及び、利用条件を満たした決済方法を表示するモジュール(Payment_Select)を追加

Ver. 2.1.0 より、決済手数料を利用条件毎に設定できるようになりました。

具体的には、注文の合計金額(決済手数料を含めます)が0円 ~ 9999円の場合の決済手数料は 330 円、10000円 以上の場合の決済手数料は 440 円 のような要件が実現可能になりました。

特に、代引き手数料では、実際に購入者が支払う金額によって決済手数料が変動する場合があるため、決済手数料を利用条件毎に設定することで、販売者側が損をしてしまうといったことをなくすことが可能です。

Ver.2.1.0 より前のバージョンに同梱の EC テーマをご利用の場合、決済手数料を利用条件毎に設定できるようにするためにはテーマのテンプレートを変更する必要があります。

変更点としては、決済フォームで決済方法の選択肢を表示するために利用しているモジュールを ShoppingCart_Settings モジュールから Payment_Select モジュールに置き換える必要があります。

ECテーマで決済方法を表示しているところを、Payment_Select モジュールに置き換えてください。以下はサンプルコードになります。

        <!-- BEGIN_MODULE Payment_Select -->
        <ul class="form-table-list">
          <!-- BEGIN payment:loop -->
          <li class="form-table-list-item">
            <div
              class="acms-form-radio payment-method-select"
            >
              <input
                id="input-radio-payment-method-{block}"
                type="radio"
                name="payment-method"
                value="{block}"
                \{payment-method:checked#{block}\}
                <!-- BEGIN_IF [\{payment-method\}/em/_and_/{payment.i}/eq/1] -->
                checked="checked"
                <!-- END_IF -->
                data-validator="payment-method"
              />
              <label for="input-radio-payment-method-{block}">
                <i class="acms-ico-radio"></i>{name}<!-- BEGIN_IF [{commissionPaid}/gt/0] -->:手数料 ¥{commissionPaid}[number_format]<!-- END_IF -->
              </label>
              <!-- BEGIN description:veil -->
              <div class="form-table-description">
                <!-- BEGIN_IF [{description}[delnl]/nem] -->
                <div class="form-table-message">{description}[nl2br]</div>
                <!-- END_IF -->
                <!-- BEGIN_IF [{image@path}/nem] -->
                <img
                  src="%{MEDIA_ARCHIVES_DIR}{image@path}"
                  class="acms-img-responsive"
                  alt="{image@alt}"
                  width="{image@width}"
                  height="{image@height}"
                >
                <!-- END_IF -->
                <!-- BEGIN_IF [{block}/eq/creditcard] -->
                @include("/include/parts/card-form.html")
                <!-- END_IF -->
              </div>
              <!-- END description:veil -->
            </div>
          </li>
          <!-- END payment:loop -->
        </ul>
        <!-- END_MODULE Payment_Select -->

Payment_Select モジュールに置き換えることで、利用条件に当てはまる決済方法のみを選択肢として表示することができます。また、{commissionPaid} 変数で表示される決済手数料においても利用条件を考慮した金額が表示されます。

また、購入者が決済方法の選択を行うステップより前に配送先や追加手数料を選択するフォームのステップを設置する必要があることに注意してください。

これは決済手数料の利用条件として設定する金額は配送手数料や追加手数料を含んだ購入者が支払う合計金額のことになり、決済手数料を計算するためには配送手数料や追加手数料が決定している必要があるためです。

決済方法の利用条件設定についての詳しい内容はドキュメントに記載しましたので、以下のリンクからご確認ください。


決済方法・配送グループ・追加手数料にステータス設定を追加(公開 or 非公開)& Payment_Selectモジュールでステータスを考慮した決済方法のみを表示するように改修 & ステータスを考慮した配送グループ・追加手数料を表示するモジュール(ShippingGroup_AdminSelect・Addition_Select)を追加

Ver. 2.1.0 より、決済方法・配送グループ・追加手数料にステータス(公開 or 非公開)を設定できるようになりました。

これにより、管理者側としては設定画面に登録しておきたいが、閲覧者には表示させたくないといった仕様を実現できるようになりました。

Ver.2.1.0 より前のバージョンに同梱の EC テーマをご利用の場合、ShoppingCart 設定画面で設定した決済方法・配送グループ・追加手数料のステータスを考慮した選択肢を表示するためには、それぞれ Ver. 2.1.0 で新しく追加されたモジュールに置き換える必要があります。

決済方法の場合

ステータスが「公開」の決済方法のみを購入フォームで表示するためには Payment_Select モジュールを利用する必要があります。こちらの変更方法については、先程、「決済方法に利用条件を設定できる機能及び、利用条件を満たした決済方法を表示するモジュール(Payment_Select)を追加」で説明いたしましたので割愛させていただきます。

配送グループの場合

ステータスが「公開」の配送グループのみをエントリー編集画面で表示するためには ShippingGroup_AdminSelect モジュールを利用する必要があります。

Ver. 2.0.0 に同梱の EC テーマのエントリー編集画面で配送グループの選択肢を ShoppingCart_Settings モジュールで表示しているテンプレートを、 ShippingGroup_AdminSelect モジュールに置き換えてください。以下はサンプルコードになります。

<select name="item_shipping_group_id">
  <!-- BEGIN_MODULE ShippingGroup_AdminSelect -->
    <!-- BEGIN shippingGroup:loop -->
    <option value="{id}" \{item_shipping_group_id:selected#{id}\}>{name}</option>
    <!-- END shippingGroup:loop -->
    <!-- END_MODULE ShippingGroup_AdminSelect -->
  </select>
<input type="hidden" name="field[]" value="item_shipping_group_id" />

ShippingGroup_AdminSelect モジュールに置き換えることで、ステータスが「公開」の配送グループのみをエントリー編集画面で表示することができるようになります。

追加手数料の場合

ステータスが「公開」の追加手数料のみを購入フォームで表示するためには Addition_Select モジュールを利用する必要があります。

Ver. 2.0.0 に同梱の EC テーマの購入フォームで追加手数料の選択肢を ShoppingCart_Settings モジュールで表示しているテンプレートを、 Addition_Select モジュールに置き換えてください。以下はサンプルコードになります。

<!-- BEGIN_MODULE Addition_Select -->
<!-- BEGIN addition:veil -->
<h3>追加手数料</h3>
<table>
  <tbody>
    <tr>
      <th></th>
      <td>
        <ul>
          <!-- BEGIN addition:loop -->
          <li class="form-table-list-item">
            <div class="acms-form-checkbox">
              <input type="checkbox" name="addition[]" value="{id}" \{addition:checked#{id}\} id="input-checkbox-addition-{id}" />
              <label for="input-checkbox-addition-{id}">
                <i class="acms-ico-checkbox"></i>{name}(¥{fee}[number_format])</label>
            </div>
          </li>
          <!-- END addition:loop -->
        </ul>
        <input type="hidden" name="field[]" value="addition" />
      </td>
    </tr>
  </tbody>
</table>
<!-- END addition:veil -->
<!-- END_MODULE Addition_Select -->

Addition_Select モジュールに置き換えることで、ステータスが「公開」の追加手数料のみをエントリー編集画面で表示することができるようになります。

最後に

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

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

Ver. 3.0.25 フィックスバージョンリリースのお知らせ


2023年04月28日にリリースした Ver. 3.0.25 の修正内容についてご紹介いたします。

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

Ver. 3.0.25 リリースノート

不具合修正

  • CMS-6359 拡張アプリの状態が「要アップデート」の場合に、拡張メニューに、有効化がされていない拡張アプリのメニューが表示されてしまう問題の修正
  • CMS-6357 Entry_Summary, Entry_GeoList, Entry_Photo, Entry_List, Entry_Headline, Entry_TagRelational, Category_EntrySummaryモジュールの変数表を更新(sort, usort, csort, ecd)
  • CMS-6363 多言語ユニットの場合、ブログ・エントリーのインポートで、ID(メディアなど)がずれて正常にインポートできない問題を修正
  • CMS-6364 レンタルサーバーによって、sendmailではメールが送信できない場合がある問題を修正
  • CMS-6369 pdfjsをアップデート

主なリリースノート内容

CMS-6363 多言語ユニットの場合、ブログ・エントリーのインポートで、ID(メディアなど)がずれて正常にインポートできない問題を修正

多言語ユニットの利用している時、ブログ・エントリーのエクスポートをして、インポートをすると、メディアIDがずれてしまい、元と違った画像やファイルが表示されてしまう不具合を修正しました。


CMS-6364 レンタルサーバーによって、sendmailではメールが送信できない場合がある問題を修正

Ver. 3.0.24 での「CMS-6331 メールライブラリを変更 swiftmailer -> symfony/mailer & メールのISO-2022-JP文字コードを廃止」が影響して、レンタルサーバーによっては、メール送信ができない不具合を修正しました。

メール送信できない条件

  • a-blog cms のバージョンが、Ver. 3.0.24
  • sendmailを利用(管理ページのメールのコンフィグで、SMTPを設定していない)
  • 再現する一部レンタルサーバー(現状ヘテムルで確認されています。Xserverは問題ありません)

最後に

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

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

Ver. 3.0.23 フィックスバージョンリリースのお知らせ


2023年03月24日にリリースした Ver. 3.0.23 の修正内容についてご紹介いたします。

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

Ver. 3.0.23 リリースノート

不具合修正

  • CMS-6303 Topicpath モジュールの表示設定でカテゴリーとエントリーの「フィールド」のツールチップ内容が間違っている問題の修正
  • CMS-6297 Entry_Body でエントリーを複数表示した場合に、SmartPhoto で表示する画像をエントリー毎にグループ化する機能が動作していない問題の修正
  • CMS-6309 ロールを削除した場合のアラートにスタイルが適用されていない問題の修正
  • CMS-6310 PHP バージョンが 8.1 の場合、Feed_ExList モジュールで PHP エラーが出る問題の修正
  • CMS-6312 メディアのキャプション・代替テキスト・リンクのプレースホルダーの意図がわかりづらい問題を修正
  • CMS-6307 標準テーマのキーワード検索結果ページで「noindex」のmetaタグが出力されない場合がある問題を修正
  • CMS-6314 エイリアスにコードを設定している場合、リンクがエイリアスのリンクにならない問題を修正
  • CMS-6315 メンテナンスメニューから使用していないデータベースのテーブルを削除するときにPHPエラーが出る問題の修正
  • CMS-6318 .htaccess の index.html なしへの正規化を修正(ディレクトリを切ってa-blog cmsをインストールしている場合、リダイレクトがおかしくなる問題への対応)
  • CMS-6319 画像ユニットで登録した画像が存在しない場合、PHPエラーが出る問題を修正
  • CMS-6320 PHP8.1 で SMTP 経由でメール送信時にPHPエラーが発生する問題の修正
  • CMS-6323 /include/edit/module-custom-left.html をinclude しても「編集する」が左側に配置されない問題の修正
  • CMS-6329 画像ユニットで登録した画像が存在しない場合、PHPエラーが出る問題を修正
  • CMS-6330 エントリーのインポートで、古いバージョンのエクスポートデータだと、画像のインポートに失敗する場合がある問題を修正

主なリリースノート内容

CMS-6297 Entry_Body でエントリーを複数表示した場合に、SmartPhoto で表示する画像をエントリー毎にグループ化する機能が動作していない問題の修正

SmartPhotoを拡大表示した時、下側に表示されるサムネイルが、エントリー毎にグループできていない問題を修正しました。



問題

Entry_Body の モジュールID設定のイメージビューアーにはデフォルトで data-rel="smartPhoto[{unit_eid}]" という値が設定されています。

これは、Entry_Body でエントリーを複数表示した場合(一覧ページなど)に、SmartPhotoで表示した時の下側に表示されるサムネイル画像を、そのエントリーに限定するために設定されていましたが、この機能が動作していなく、他のエントリーも一緒にサムネイル表示される状態となっていました。

* この仕組みは、SmartPhoto以前の prettyPhoto による仕様で、SmartPhotoでは対応できていなかったことになります。

修正内容

「SmartPhoto」では data-group 属性 でグループ化できる仕様になっているため、テンプレート(system/_layouts/unit.html)にて直接 data-group 属性にエントリーIDを記述するようにしました。

<a href="{url}" {viewer}[raw] data-group="{link_eid}">

* 以前の仕様だと、link#front ブロック内で {unit_eid} 変数が解決されないため、link#front ブロックでエントリーIDを表示できるように、{link_eid} を追加しました。

次にデフォルトの Entry_Body の イメージビューワー の設定(config.system.default.yaml と各テーマの初期データ)を data-rel="SmartPhoto" へ変更しております。

また、Entry_Body以外のSmartPhoto起動場所には、class属性に「js-smartphoto」を指定するように変更しました。

テンプレートの修正が必要な場合

今回の問題は、基本的にはCMSアップデートにより自動で対応されますが、メディアユニットや画像ユニットを独自にカスタマイズしている場合は、カスタマイズしているユニットテンプレートに、 data-group="{link_eid}" を追加するようにお願いいたします。

CMS-6307 標準テーマのキーワード検索結果ページで「noindex」のmetaタグが出力されない場合がある問題を修正

標準テーマでは、キーワード検索結果ページはインデックスされないようにテンプレートが仕込まれています。

理由

ユーザーによる好きな検索ワードで検索されるので、悪意のあるユーザーが、イメージダウンするようなワードで検索し、そのワードがタイトルに入った状態でインデックスされてしまうためになります。また似たようなページのインデックスが大量にできてしまうので、SEO的にもインデックスさせないようにしています。

該当テンプレート

themes/該当テーマ/include/head/robots.html

今回問題となっていた内容

エントリ詳細URLだと問題はなかったのですが、一覧ページの場合インデックスされていました。

インデックスされない例
https://example.com/search.html?keyword=xxxx
インデックスされていた例
https://example.com/?keyword=xxxx

上記の問題がこのバージョンで修正されました。

最後に

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

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

Ver. 3.0.20、Ver. 2.11.56 フィックスバージョンリリースのお知らせ


2022年12月16日にリリースした Ver. 3.0.20, Ver. 2.11.56 の修正内容についてご紹介いたします。

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

Ver. 3.0.20 リリースノート

不具合修正

  • CMS-6217 関連エントリーグループの設定がモジュールID選択肢でずれる場合がある問題を修正
  • CMS-6219 メールアドレス未認証のユーザーがパスワードリセットを行うと、メールアドレス未認証のままログインできてしまう問題の修正
  • CMS-6221 Bannerモジュールで画像サイズが取得できず、PHPエラーが出る可能性を修正
  • CMS-6223 バックアップファイルなどのダウンロードでメモリ不足でダウンロードできない場合がある問題を修正
  • CMS-6225 タグフィルター、タグクラウド設定の項目の順番をわかりやすい形に変更
  • CMS-6232 読者権限でログイン中の場合に、プレビュー共有URLで閲覧できない場合がある問題を修正
  • CMS-6236 グローバルエイリアス時のリンクのブログコード設定がおかしくなる場合がある問題を修正
  • CMS-6234 エイリアスのステータスを更新できない問題を修正
  • CMS-6239 フォームで文字コードを ISO-2022-JP に設定すると PHP8.1 でエラーが出る問題を修正
  • CMS-6241 サーバーの制限によって、バックアップが一時領域の容量制限にひっかかり失敗する問題を修正
  • CMS-6242 パスワード再発行メール送信時に、入力したメールアドレスのアカウントが存在しない場合はメールアドレス認証済みかどうかのチェックを行わないように修正
  • CMS-5793 Web Storageによるエントリ一復元機能が機能していない問題を修正
  • CMS-6245 タイムマシーンモードで、時刻を一度変更してしまうと、タイムマシンモードを終了しないかぎり、その後の日時変更が効かなくなる問題を修正
  • CMS-6251 各テーマの開発ビルド時scssのsourcemapの行数がずれる問題を修正
  • CMS-6137 タグにエントリー編集画面では追加できるがタグ編集画面から編集すると保存できない文字列がある問題を修正

Ver. 2.11.56 リリースノート

不具合修正

  • CMS-6218 関連エントリーグループの設定がモジュールID選択肢でずれる場合がある問題を修正
  • CMS-6220 メールアドレス未認証のユーザーがパスワードリセットを行うと、メールアドレス未認証のままログインできてしまう問題の修正
  • CMS-6222 Bannerモジュールで画像サイズが取得できず、PHPエラーが出る可能性を修正
  • CMS-6224 バックアップファイルなどのダウンロードでメモリ不足でダウンロードできない場合がある問題を修正
  • CMS-6233 読者権限でログイン中の場合に、プレビュー共有URLで閲覧できない場合がある問題を修正
  • CMS-6237 グローバルエイリアス時のリンクのブログコード設定がおかしくなる場合がある問題を修正
  • CMS-6235 エイリアスのステータスを更新できない問題を修正
  • CMS-6240 フォームで文字コードを ISO-2022-JP に設定すると PHP8.1 でエラーが出る問題を修正
  • CMS-6243 パスワード再発行メール送信時に、入力したメールアドレスのアカウントが存在しない場合はメールアドレス認証済みかどうかのチェックを行わないように修正
  • CMS-6041 Web Storageによるエントリ一復元機能が機能していない問題を修正
  • CMS-6246 タイムマシーンモードで、時刻を一度変更してしまうと、タイムマシンモードを終了しないかぎり、その後の日時変更が効かなくなる問題を修正
  • CMS-5704 タグにエントリー編集画面では追加できるがタグ編集画面から編集すると保存できない文字列がある問題を修正

主なリリースノート内容

CMS-6217 CMS-6218 関連エントリーグループの設定がモジュールID選択肢でずれる場合がある問題を修正

関連エントリーグループが複数設定されている場合、Entry_Summaryなどでの関連エントリー設定で選択肢がずれてしまう可能性がある問題を修正しました。


CMS-6223 CMS-6224 バックアップファイルなどのダウンロードでメモリ不足でダウンロードできない場合がある問題を修正

バックアップファイルのダウンロードなど、大きなファイルのダウンロードで、メモリを多く消費する処理になっていたのを、メモリを多く使わないように修正しました。これにより、バックアップファイルなど大きなファイルダウンロードでエラーとなることが少なくなります。

CMS-6232 CMS-6233 読者権限でログイン中の場合に、プレビュー共有URLで閲覧できない場合がある問題を修正

プロフェッショナル版以上の機能で、ログインしていない人でも、非公開記事を閲覧確認できるプレビュー共有URLで、逆にログインしている場合正しく表示できない場合がある問題を修正し、ログインしている場合でも正しくプレビューできるように修正しました。


CMS-6219 CMS-6220 メールアドレス未認証のユーザーがパスワードリセットを行うと、メールアドレス未認証のままログインできてしまう問題の修正

読者登録で、まだメールアドレス認証が済んでいないユーザーがパスワードリセットを行うとそのままログインできてしまう挙動でした。パスワードリセットでもメールが飛んでメールアドレス認証も同時に満たす形となっているのでセキュリティ的な問題はありませんが、わかりずらい挙動になってしまっているので、メールアドレス未認証の場合は、パスワードリセットができないように修正しました。

CMS-6242 CMS-6243 パスワード再発行メール送信時に、入力したメールアドレスのアカウントが存在しない場合はメールアドレス認証済みかどうかのチェックを行わないように修正

パスワードリセット時に、メールアドレス未認証の場合は専用のメッセージを出していましたが、これをユーザーが存在しない場合、メールアドレス未認証の場合の両方をユーザーが存在しないと見なして、統一のエラーを出すように修正しました。

CMS-6245 CMS-6246 タイムマシーンモードで、時刻を一度変更してしまうと、タイムマシンモードを終了しないかぎり、その後の日時変更が効かなくなる問題を修正

プロ版以上限定機能の、タイムマシーン機能で、指定した日時の表示状態を確認する機能があるのですが、ここで時間について設定をしてしまうと、タイムマシーンモードを終了するまで、日付設定が効かない状態になってしまう不具合を修正しました。


CMS-5793 CMS-6041 Web Storageによるエントリ一復元機能が機能していない問題を修正

jQueryのバージョンアップにより、動作していなかったエントリーの復元機能を動作するように修正いたしました。


CMS-6241 サーバーの制限によって、バックアップが一時領域の容量制限にひっかかり失敗する問題を修正

今までのバージョンだと、CMSのバックアップ機能を利用したとき、圧縮時(zip)に一時領域(/tmp)を使用するのですが、サーバーによっては一時領域に容量制限があるため、バックアップに失敗することが多かったです。そこで今回の修正では、デフォルトで、圧縮時に一時領域を使用しないように修正しました。これによりバックアップの失敗が少なくなると思われます。

CMS-6251 各テーマの開発ビルド時scssのsourcemapの行数がずれる問題を修正

各デフォルトテーマで、Webpackによる開発ビルドを行っている時に、SCSSのソースマップの行数がずれている問題を修正しました。これにより正しい行数が表示されるため、開発しやすくなります。


Ver. 2.11 系のメンテンス期間終了について

2022年12月17日 でVer. 2.11系のバグフィックス対応期限を迎え、Ver. 2.11系の最後のフィックスバージョンとなりました。 まだセキュリティ上危険だと判断した修正については 2024年12月17日まで続きますが、バグ・不具合については、見つかったとしても 3.0.x 以上でしか修正されなくなります。

セキュリティフィックスはまだサポートされていますが、できれば、Ver. 3.0系へのアップデートをご検討いただければと思います。詳しくは、メンテナンスポリシーページ をご覧ください。

最後に

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

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