**[[質問箱5/3]] [#a35231d6] #author("2018-03-11T21:31:42+09:00;2010-08-19T09:59:16+09:00","","") **[[質問箱/5003]] [#a35231d6] |RIGHT:70|LEFT:410|c |~カテゴリ|サイト管理・運営| |~サマリ|tracker の checkbox で画像表示したい| |~バージョン|1.4.7_notb_utf8| |~投稿者|[[けんじ]]| |~状態|完了| |~投稿日|&new{2010-08-18 (水) 21:28:57};| ***質問 [#ef07acaf] : したい事| tracker で使用できる項目形式に「 checkbox 」というチェックボックス項目形式がありますが、~ こちらの checkbox を使用時に tracker の from 内で 画像ファイルを ref プラグインで表示したいのですが、 どうやれば良いでしょう?~ ~ 現在私が使用している設定・方法だと、 from 内のチェックボックス右側に表示される checkbox の見出し(見本)が以下のように出力されます。 <label for="_p_tracker_checkbox_11_3">&ref(http://pukiwiki.sourceforge.jp/image/rss.png);</label> これを以下のようにしたいです。 <label for="_p_tracker_checkbox_11_3"><img src="http://pukiwiki.sourceforge.jp/image/rss.png" /></label> もしくは以下(IE だとどちらにしても画像クリック時にチェックはつかないので)、 <img src="http://pukiwiki.sourceforge.jp/image/rss.png" /> : 試してみた事(1)| plugin/tracker.inc.php を改造し、 -- input の「 label 」 を表示しないようにする (514行目付近) -'[]" id="' . $s_id . '" value="' . $s_option . '"' . $checked . ' />' . -'<label for="' . $s_id . '">' . $s_option . '</label>' . "\n"; +'[]" id="' . $s_id . '" value="' . $s_option . '"' . $checked . ' />' . "\n"; -- from 内の [checkbox] 右側に直接 ref プラグインで見本画像を配置 |~チェック1 |[checkbox1] &ref(http://pukiwiki.sourceforge.jp/image/rss.png);| |~チェック2 |[checkbox2] &ref(http://pukiwiki.sourceforge.jp/image/xml.png);| しかし、これだと [checkbox] 一つに付き一つの画像しか選べられません。 また、page 内の [checkbox] 項目が指定個所に限定されてしまうので、空欄となってしまいます。 画像が数個であればよいのですが、10個以上選択できるようにしたいので、同一の指定個所から全ての画像を 拾い上げてくれるような動作が良かったのでダメでした。 : 試してみた事(2)| -- plugin/tracker.inc.php の 508行目付近。 $s_option = htmlspecialchars($option[0]); +$s_label = convert_html($option[0]); $checked = array_key_exists(trim($option[0]),$defaults) ? ' checked="checked"' : ''; ++$id; $s_id = '_p_tracker_' . $s_name . '_' . $this->id . '_' . $id; $retval .= '<input type="checkbox" name="' . $s_name . '[]" id="' . $s_id . '" value="' . $s_option . '"' . $checked . ' />' . - '<label for="' . $s_id . '">' . $s_option . '</label>' . "\n"; + '<label for="' . $s_id . '">' . $s_label . '</label>' . "\n"; しかし、convert_html だと <p> で出力されるので改行になる。適当な関数を探してます。 <label for="_p_tracker_checkbox_11_3"><p> [実際は改行なし] <img src="http://pukiwiki.sourceforge.jp/image/rss.png" /></p></label> : 現在の設定(「したい事」の設定です)| -- :config/plugin/tracker/hoge * fields |項目名 |見出し |タイプ |オプション|デフォルト|h |Proposer |投稿者 |format | | | |checkbox|チェック |checkbox| | | * Proposer |条件|セルの書式|文字書式|h |IS NOT NULL|%s|[[%s]]| |NULL|%s|[[名無しさん]]| //正しく動作させるには IS NULL と書く * checkbox |見出し|セルの書式|h |&ref(http://pukiwiki.sourceforge.jp/image/rss.png);|%s| |&ref(http://pukiwiki.sourceforge.jp/image/xml.png);|%s| //|rss.png|&ref(http://pukiwiki.sourceforge.jp/image/%s);| でも複数拾い上げてくれない -- :config/plugin/tracker/hoge/form |RIGHT: |LEFT: |c |~投稿者 |[Proposer]| |~チェック |[checkbox]| |>|CENTER:[_submit] | -- :config/plugin/tracker/hoge/list |~[_page] |~[Proposer]|~[checkbox]|h |[_page] |[Proposer] |[checkbox] | //|~[_page] |~[Proposer]|~[checkbox1]|h 「試してみた事(2)」の場合 //|[_page] |[Proposer] |[checkbox1][checkbox2] | 「試してみた事(2)」の場合 -- :config/plugin/tracker/hoge/page -投稿者: [Proposer] -チェック: [checkbox] //-チェック1: [checkbox1] 「試してみた事(2)」の場合 //-チェック2: [checkbox2] 「試してみた事(2)」の場合 : ついでに| 今回 format 項目形式についても設定内容として記載したのですが、format が NULL の場合空のまま出力されます。~ 過去に tracker プラグイン作成者の ぱんださんのサイトに同様の質問と解決がありました([[tracker.inc.php/25 - しろくろのへや>しろくろのへや:tracker.inc.php/25]])。~ こちらは他の方でも発生してますか?であれば BugTrack に~ -- 2010/08/19 追記:~ config に ''NULL'' と記載していたので出力されませんでした。正しく出力するには ''IS NULL''と条件列に書く必要があります。 ***回答 [#ha531097] - まずは、format項目形式について。空の場合の条件名は、''IS NULL''が正解です。([[しろくろのへや::config/plugin/tracker/sample]]などを参照)&br;''IS NULL''が未定義のままなので、その条件のときは何もせずにそのまま出力しているだけです。 -- &new{2010-08-18 (水) 23:40:32}; -- ありがとうございます。format項目形式 は、条件を ''IS NULL'' に書き換えることで正常に動作するようになりました。&br();こちらのPukiWiki-official では NULL で記載されていたで、疑いもせず、また調べも足りませんでした。ご教授ありがとうございます(ぱんださんのサイトでも一部 NULL)。&br();PukiWiki-official の tracker定義ページを後で ''NULL'' → ''IS NULL'' に書きかえておきます。 -- [[けんじ]] &new{2010-08-18 (水) 23:58:25}; -- PukiWiki-officialの'':''で始まるページは編集認証がかかっているので、WebTrackにお知らせするぐらいしかできませんよ。 -- &new{2010-08-19 (木) 00:20:05}; - そもそもradio,select,checkbox形式の選択項目名で、wiki書式を使えるような設計になっていません。(「整形済みテキスト」のように、そのまま表示されます)&br;フォームの中に存在するとまずいHTMLタグ((フォームの中にフォームが存在する、など))が紛れ込む可能性ができてしまいますが、それでもよければ foreach ($this->config->get($this->name) as $option) { $s_option = htmlspecialchars($option[0]); + $s_label = make_link($option[0]); $checked = array_key_exists(trim($option[0]),$defaults) ? ' checked="checked"' : ''; ++$id; $s_id = '_p_tracker_' . $s_name . '_' . $this->id . '_' . $id; $retval .= '<input type="checkbox" name="' . $s_name . '[]" id="' . $s_id . '" value="' . $s_option . '"' . $checked . ' />' . - '<label for="' . $s_id . '">' . $s_option . '</label>' . "\n"; + '<label for="' . $s_id . '">' . $s_label . '</label>' . "\n"; } と修正すれば、wiki書式を変換するようになります。 -- &new{2010-08-19 (木) 00:16:41}; -- 一応、参考にどうぞ。[[dev:プラグイン/開発者向け]] -- &new{2010-08-19 (木) 00:28:26}; -- ありがとうございます!! 期待していた通りの動作をするようになりました。参考URLもありがとうございます、そういったページを探していたので助かります。dev内を検索しつつ [[dev:PukiWiki/関数一覧表]] を頼りに trackerプラグイン内の関数を総当たりで試していたのですが (..; 、trackerを含めると検索でヒットせず辿り着けなかったページだったので助かります(逆に関数のみだとヒット数が膨大)。~ HTMLタグが紛れ込む可能性についてですが、一応 tracker/hoge を~ * checkbox |&ref(http://pukiwiki.sourceforge.jp/image/rss.png,nolink,[Proposer]);|%s| |[[&ref(http://pukiwiki.sourceforge.jp/image/rss.png,nolink,title01);>#]]|%s| |[[&ref(http://pukiwiki.sourceforge.jp/image/rss.png,nolink,[Proposer]);>#]]|%s| などにして試してみましが、それらしい表示にはなりませんでした。他の項目形式はまだ試していないのですが、元々こういった形で使用する予定はないので、問題なしです。~ この度は、適切なご回答・ご助言を賜りありがとうございます。質問が解決したのでこちらの質問箱の状態を完了にしておきます。こちらのページの内容は後で見やすいように書き換えておきます。~ PukiWiki-official の tracker定義ページ「 NULL → IS NULL 」書きかえの件ですが、おっしゃるように編集認証が必要だったので 雑談 にその旨コメントしておきました。しばらく経って、どなたも編集なさらない様でしたら、教えて頂いた WebTrack の方に投稿しようと思います。 -- [[けんじ]] &new{2010-08-19 (木) 01:07:16}; // #comment