ページ 11

テンプレート変数をRadio Option とした場合の不具合

Posted: 2020年3月16日(月) 15:24
by maki
管理画面での操作の話となります。
テンプレート変数でRadio Optionとした変数が、同じリソースの中に複数ある場合、管理画面でリソースを編集する際、ラジオ選択型の選択項目が誤動作します。
これは、下記のように別のオプションでもlabelに毎度同じく名前がついてしまうためで、ラベル部分をクリックすると別の入力オプションが反応してしまいます。

Aの入力オプション
<label for="tv_0"><input type="radio" value="1" id="tv_0" name="...">...</label>
<label for="tv_1"><input type="radio" value="1" id="tv_1" name="...">...</label>

Bの入力オプション(Aと同じIDがついている)
<label for="tv_0"><input type="radio" value="1" id="tv_0" name="...">...</label>
<label for="tv_1"><input type="radio" value="1" id="tv_1" name="...">...</label>

これで誤動作が起こるためちょっと困っています。
修正していただけますと助かります。(いっそlabelでの反応はなくていいいです)

テンプレート変数をRadio Option とした場合の不具合

Posted: 2020年3月19日(木) 11:35
by mod_kks
ドキュメント編集画面内のテンプレート変数項目の描画は
/manager/includes/extenders/ex_subparser.php
で定義されています。

バージョンによって異なりますが1.0.22ですと、1100行目前後に
renderFormElement関数が定義されています。この中でフィールド
タイプ「option」についての記述があり、これを以下のように変更
することで一意のidなるかと思います。

コード: 全て選択

if (strtolower($field_type) === 'option') {
    $rs = $this->ProcessTVCommand($field_elements, $field_id, '', 'tvform');
    $index_list = $this->ParseInputOptions($rs);
    $i = 0;
    $field_html = '';
    $tpl = file_get_contents(MODX_CORE_PATH . 'docvars/inputform/form_radio.tpl');
    foreach ($index_list as $item) {
        list($label, $value) = $this->splitOption($item);
        $checked = $this->isSelected($label, $value, $item, $field_value) ? 'checked="checked"' : '';
        $value = $modx->hsc($value);
        $field_html .= sprintf(
            $tpl
            , $field_id . '_' . $i // ここを変更(label要素のfor属性値)
            , $value
            , $field_id . '_' . $i // ここを変更(input要素のid属性値)
            , $field_id
            , $checked
            , $label
        );
        $i++;
    }
    return $field_html;
}

テンプレート変数をRadio Option とした場合の不具合

Posted: 2020年3月19日(木) 16:03
by maki
mod_kksさま
どうもありがとうございました!無事に不具合解消しました。次期バージョンで盛り込んでいただけますと幸いです。
どうぞよろしくおねがいいたします。

テンプレート変数をRadio Option とした場合の不具合

Posted: 2020年4月13日(月) 15:58
by yama
https://github.com/modxcms-jp/evolution ... .0.23J.zip
ありがとうございます、次期リリース版に修正を盛り込みました。
通勤時間が省けて時間が余り気味なエンジニアさんも最近は多いかもしれないので
できるだけ早くリリースしたいと思います。