表題の件、モジュールや編集画面 > 関連記事グループのURLコンテキストに値を入れても絞り込みがされません。
フィールドに入力した値:document_type/white_p_single
エントリーでキーワードの絞り込みはできますが、white_p_single以外のものも候補に出てきます。
バージョン:3.2.33
エディション:Standard
PHPのバージョン: 8.3.22
PHP動作環境: CGI版
Codexに相談したところ、下記が原因と言われたのですが、実際の原因はわかりますでしょうか?
原因がコード上で確認できました。共有された Admin_Entry_Autocomplete には、カスタムフィールドの絞り込み処理の呼び出しが抜けています。
通常の Entry_Summary は、以下の処理を呼んでいます。
$this->fieldFilterQuery($sql);この処理が ACMS_Filter::entryField() を実行して検索条件を追加します。しかし、関連記事の候補検索では呼ばれておらず、otherFilterQuery() にも代替処理はありません。そのため、フィールド欄の条件が検索に反映されません。
修正箇所/php/ACMS/GET/Admin/Entry/Autocomplete.php の buildCustomQuery() に、次の 1行を追加するのが修正案です。
$this->entryQueryHelper->keywordFilterQuery($sql); $this->entryQueryHelper->fieldFilterQuery($sql); // この行を追加 $this->entryQueryHelper->otherFilterQuery($sql);修正後の確認モジュールIDのフィールド欄を以下にし、フィールドのURLコンテキストはOFFで確認します。
document_type/white_p_singleさらに、document_type/__no_match_test__ に変更したときに候補が0件になれば、条件が適用されています。
こちらではファイル変更・実環境での動作確認はしていません。 CMS本体の修正になるため、検証環境で確認し、提供元には「Admin_Entry_Autocomplete::buildCustomQuery() に fieldFilterQuery() の呼び出しがない」と伝えて公式修正を確認するのがよいです。