コンポーザーの自動保存で[エラー]ダイアログが表示される

以下の対象を絞るため表題の件のみ取り出しました。
https://forums.concretecms.org/t/topic/4081

以下の時、コンポーザーの自動保存で[エラー]というダイアログが表示されるようです。

  1. コンポーザーに[オプションリスト]タイプの属性が含まれている
  2. 1 で何も選択されていない

[管理画面]-[レポート]-[ログ]には以下が追加されます。

Exception Occurred: インストールディレクトリ/concrete/attributes/select/controller.php:250 Trying to access array offset on value of type null (2)

取り急ぎ application/config/concrete.php で自動保存を無効化してみましたが

return [
    'composer' => [
        'idle_timeout' => 0,
    ],
];

この設定ですと[ページを公開]をクリックしても反応がありません。
Firefox 開発ツールのコンソールタブには以下が表示されます。

Uncaught TypeError: my.saver is null
    start https://ドメイン名/!drafts/2570/?ccmCheckoutFirst=1 line 2 > injectedScript:126
    o https://ドメイン名/concrete/js/cms.js?ccm_nocache=76d599a23bc797cf15692be5b6bfdcd64c993a1c:180
    jQuery 7
    publish https://ドメイン名/concrete/js/cms.js?ccm_nocache=76d599a23bc797cf15692be5b6bfdcd64c993a1c:180
    start https://ドメイン名/!drafts/2570/?ccmCheckoutFirst=1 line 2 > injectedScript:112
    jQuery 8
    start https://ドメイン名/!drafts/2570/?ccmCheckoutFirst=1 line 2 > injectedScript:110
    <anonymous> https://ドメイン名/!drafts/2570/?ccmCheckoutFirst=1 line 2 > injectedScript:172
    jQuery 11
    <anonymous> https://ドメイン名/!drafts/2570/?ccmCheckoutFirst=1 line 2 > injectedScript:171
    jQuery 14
    openPanelDetail https://ドメイン名/concrete/js/cms.js?ccm_nocache=76d599a23bc797cf15692be5b6bfdcd64c993a1c:284
    setupPanelDetails https://ドメイン名/concrete/js/cms.js?ccm_nocache=76d599a23bc797cf15692be5b6bfdcd64c993a1c:284
    jQuery 4
2570:126:13

https://concrete5-japan.org/community/forums/chat/post-18531/

どのような改善方法が考えられますでしょうか。

Concrete CMS バージョン
9.1.3

PHP バージョン
8.0.x

サーバー
エックスサーバー

Atomik をフルサイトでインストールし改めて試してみました。
自動保存で[エラー]ダイアログが表示されるとお伝えしましたが、[オプションリスト]タイプの属性で何も選択されていない場合、ボタンをクリックして保存してもエラーを生じるようです。
必須ではないチェックボックスのあるコンポーザーは、何かしら選択しないと保存ができません。
どのような原因が考えられますでしょうか。

@Jun_22 すいません。

自動保存で[エラー]ダイアログが表示されるとお伝えしましたが、[オプションリスト]タイプの属性で何も選択されていない場合、ボタンをクリックして保存してもエラーを生じるようです。
必須ではないチェックボックスのあるコンポーザーは、何かしら選択しないと保存ができません。

すみませんが、エラーが発生するページタイプでのコンポーザー設定がどのような設定によるか、もうちょっと詳しい条件を知りたいです。

選択属性の一つがあることはわかりますが、エラーを再現し、コアなのか、テーマ・パッケージなのか、カスタマイズが原因なのかをはっきりさせたいです。

よろしくお願いします。

拙い説明で恐縮です…具体的な手順は以下のようになります。
環境は PHP 8.0.x + Concrete CMS 9.1.3 フルサイト(Atomik)です。

  1. [管理画面]-[ページとテーマ]-[属性]で、[タイプを選択]から[オプションリスト]を選択する
  2. [複数のオプションを選択可能にする]を有効にして属性を追加する
  3. [管理画面]-[ページとテーマ]-[ページタイプ]で、[ページ]の[フォームを編集]より 2 の属性を追加する
  4. 3 のページタイプでページを新規作成する
  5. ツールバーの歯車アイコンをクリックしてコンポーザー画面を開く

追加した属性はチェックボックスになりますが、何も選択されていない状態で[保存して終了]や[編集モード]をクリックすると、[エラー]というダイアログが表示されます。
自動保存された場合も同様です。

[複数のオプションを選択可能にする]ではなく[選択時、すべてのオプションを表示]を有効にするとラジオボタンになりますが、[「なし」オプションをリストから隠す]も有効にした場合は初期値が選択されなくなり、こちらもチェックボックスと同じ状況になるようです。

1 Like

@Jun_22 ありがとうございます。
先週は、コミュニティアップデートの収録をしていたので遅れてしまってすいません。

さきほど、GitHub に Issue を登録しました

あとは、このバグを修正していただける方を募集 or コアチームに修正してもらうのを待ちます。

本件承知しました。
ご対応いただきありがとうございました。

9.2.0RC2 をインストールし、[キャッシュと表示速度設定]をすべて無効にして検証しました。
本件問題は解消されたようです。
ご対応ありがとうございました。

Concrete CMS バージョン
9.2.0RC2

テーマ
フルサイト(Atomik)

PHP バージョン
8.0.x

サーバー
エックスサーバー

@Jun_22 お疲れ様です。

GitHub では、具体的に直したというコメントは Andrew からありませんでしたが、おっしゃるとおり、開発中の Concrete CMS では再現しなかったので、おそらく、治っているだろうということでした。

ありがとうございました。