*label要素を使って欲しい [#m45dec3f] - 元タイトル: label要素とJavaScriptのfocus()を使って欲しい -ページ: [[BugTrack2]] -投稿者: [[ELF]] -優先順位: 低 -状態: 完了 -カテゴリー: 本体新機能 -投稿日: 2005-02-23 (水) 23:19:45 -バージョン: #contents ** 修正 [#b73ff553] - 1.4.6以降 -- [[cvs:lib/html.php]] (1.28) -- [[cvs:plugin/article.inc.php]] (1.23) -- [[cvs:plugin/attach.inc.php]] (1.72-1.73) -- [[cvs:plugin/bugtrack.inc.php]] (1.22) -- [[cvs:plugin/comment.inc.php]] (1.27) -- [[cvs:plugin/dump.inc.php]] (1.35) -- [[cvs:plugin/links.inc.php]] (1.23) -- [[cvs:plugin/lookup.inc.php]] (1.17-1.19) -- [[cvs:plugin/newpage.inc.php]] (1.15) -- [[cvs:plugin/rename.inc.php]] (1.25-1.27) -- [[cvs:plugin/search.inc.php]] (1.7) -- [[cvs:plugin/template.inc.php]] (1.21) -- [[cvs:plugin/tracker.inc.php]] (1.29) -- [[cvs:plugin/update_entities]] (1.8) - 追加: 1.4.7以降 -- [[cvs:lib/html.php]] (1.50) add plugin 用の選択肢 IDが(ユーザーが用意したものと/プラグイン同士で)重複することのないよう、現状以下のような法則で揃えています。 本体機能 : _<項目名>_<必要であれば細分類>_<必要であればユニークな数値> プラグイン: _p_<プラグイン名>_<必要であれば項目名>_<必要であればユニークな数値> - 余談: span stlye="small" => span class="small" -- [[cvs:lib/html.php]] (1.29) **メッセージ [#q8f3b612] (JavaScriptのfocus() に関する話題は[[BugTrack2/30]]に分離しました) - ページ名変更のところのラジオの右側のコメントをlabelタグで囲って欲しい. 例えば http:// pukiwiki.org/dev/?plugin=rename の「変更元ページを指定」「正規表現で置換」のラジオ. 例えば http://pukiwiki.org/?plugin=rename の「変更元ページを指定」「正規表現で置換」のラジオ. ** ちょっと確認: labelタグ [#o0add3df] - <LABEL>-HTMLタグリファレンス -- http://www.htmq.com/html/label.shtml -- "<LABEL>タグの使用方法は2通りあります。1つは<LABEL>タグのfor属性の値と、フォーム部品のid属性の値を同じものにすることで両者を関連付ける方法です。もう1つは<LABEL>~</LABEL>内にフォーム部品とテキストを含める方法です。後者の方法はInternet Explorer5.0には対応していないようなので、できるだけ前者を用いた方が良いでしょう。" -[[<label>タグとは | HTML用語集 | ミツエーリンクス>http://www.mitsue.co.jp/case/design/h_197.html]] というわけで前者を採用。 ---- **コメント [#l9b5b243] -labelタグはHTMLとしてもOKなのでcommentとかでもどんどん導入していくべきだと思います。 -- [[Ratbeta]] &new{2005-02-24 (木) 19:28:04}; -「ページ名変更のところのラジオ」というのがどこかがわかりませんでしたが、labelタグの発想自体は広く適用できそうですね -- [[henoheno]] &new{2005-02-24 (木) 23:12:39}; -もうちょい補足して書きました -- [[ELF]] &new{2005-02-26 (土) 08:17:30}; -labelタグに関して、対応できそうな(1.4.5標準)プラグインを列挙しておきます。 -- [[Ratbeta]] &new{2005-02-26 (土) 10:33:16}; --%%lib/html.php line 211%% done (編集画面の「タイムスタンプを変更しない」) --amazon.inc.php line 135 (それよりamazon 2.x のインポートを考えましょう) --%%article.inc.php line 167%% done --%%attach.inc.php line 371, 532%% done (477行目あたりも修正) --%%bugtrack.inc.php line 106 ~ 149%% done --%%comment.inc.php line 114%% done (複数個設置してもok) --%%dump.inc.php line 219 ~ 245, 251 ~ 267%% done --%%links.inc.php line 49%% done --%%lookup.inc.php line 28%% done (複数個設置してもok) --%%newpage.inc.php line 23%% done (複数個設置してもok) --paint.inc.php line 199 ~ 202 (これらはlabelをつけるべきではないと思います) --pcomment %%(そこまでやるのはアレですか? ・・・挙動は要チェック)%% 危険な香りがするので止めておきます --%%rename.inc.php line 114 ~ 121%% done (他にも修正) --%%search.inc.php line 76, 77%% done (もともと一つしか設置できない) --%%template.inc.php line 71, 72, 73%% done (上二つはかえって問題になりそうなので止めておきました) --%%tracker.inc.php%% done (構造上、実現可能なのはradioとcheckboxのみ) --%%update_entities.inc.php line 54%% done -ラジオボタン・チェックボタンのタグをキーに、大雑把に探すとこんな感じでした。trackerにもありそうなので追加しておきます。amazonプラグインは・・・ナルホド (^^; チェックありがとうございます。 -- [[henoheno]] &new{2005-02-26 (土) 11:40:30}; $ find . -name "*.php" | xargs grep checkbox | cut -d: -f1 | sort | uniq ./lib/html.php ./plugin/dump.inc.php ./plugin/rename.inc.php ./plugin/template.inc.php ./plugin/tracker.inc.php $ find . -name "*.php" | xargs grep radio | cut -d: -f1 | sort | uniq ./plugin/attach.inc.php ./plugin/dump.inc.php ./plugin/pcomment.inc.php ./plugin/rename.inc.php ./plugin/search.inc.php ./plugin/tracker.inc.php -renameの件、わかりました :) -- [[henoheno]] &new{2005-02-26 (土) 11:50:06}; --わーい次楽しみ :) -- [[ELF]] &new{2005-02-27 (日) 07:15:10}; -labelタグについては用途と実装方法が明確で、特に問題も見当たらず、[[Ratbeta]]さんによって作業対象も絞り込めていますから、いつでもCVSに投入できる状態ですね。 -- [[henoheno]] &new{2005-02-27 (日) 12:30:08}; -- JavaScriptの件はまったくの別件なので、今回は見なかったことにしますハイ(もしくはlabelの実装が一通り済んだ後 => [[BugTrack2/30]]) -- [[henoheno]] &new{2005-02-27 (日) 12:30:59}; -作業開始。あやうく適当にidをつけるところでしたが、例えば #search プラグインをブロック型として呼んだ時のようなシチュエーションを考慮すると、idはページ内でユニークである必要がありますから、プラグインに由来するidは「_p_[プラグイン名]_[用途名]」、そうでないものも「_[関数名など]_[用途名]」というネーミングで揃える様にしながら作業しています。 -- [[henoheno]] &new{2005-02-27 (日) 17:14:44}; -- 注意:同じブロック型プラグインやインライン型プラグインを''複数個設置できる''場合、それぞれのidがユニークになるように意識する必要あり。例えばcommentプラグインやlookupプラグインに対する修正を参照のこと。 -- [[henoheno]] &new{2005-02-27 (日) 18:13:58}; -本日はこのへんで。実装済みのところでおかしな点とか、実装漏れとか、考慮漏れとか、上のリストに漏れているモノがあれば随時このページにてお知らせください。 -- [[henoheno]] &new{2005-02-27 (日) 19:26:48}; --修正内容については確認しましたが、特に問題はないと思います。labelの後者はIE6でも対応していないらしい(未確認)ですが、複数個設置できるプラグインで速度が落ちる場合は後者の方法を使っても良いと思います。 -- [[Ratbeta]] &new{2005-02-27 (日) 20:57:10}; ***一通り終わった後のコメント [#raf5c0c5] -一通り終わりました。未実装のものについては上にカッコ書きでコメントした通りです。またtrackerプラグインは、入力フォームの左側にlabelが貼れたら素敵だったのですが、入力フォームの行を識別する作りではないため実現できないようです。仕方が無いのでradioとcheckboxのみ対応しました。 -- [[henoheno]] &new{2005-03-02 (水) 23:00:54}; -特にぁゃしぃ反応がありませんので、JavaScriptのfocus()に関する話題を [[BugTrack2/30]] へ分離し、labelタグに関しては「完了」としておきます。何かあればコメントして下さい。 -- [[henoheno]] &new{2005-03-06 (日) 11:32:49}; -全部試したわけではないですがいい感じだと思います -- [[ELF]] &new{2005-03-08 (火) 13:34:53}; -- というわけでひとまず完了としておきます :) -- [[henoheno]] &new{2005-03-08 (火) 23:23:15}; -calendar_viewと同時に複数個設置可能なプラグインを使用した場合に同一IDが複数出力されてしまいます。以下はcomment.inc.phpでの修正例。 -- [[Ratbeta]] &new{2005-03-10 (木) 17:31:47}; --- comment.inc.1.28.php Sat Mar 05 21:23:10 2005 +++ comment.inc.php Thu Mar 10 17:30:12 2005 @@ -84,12 +84,11 @@ { global $script, $vars, $digest; global $_btn_comment, $_btn_name, $_msg_comment; - static $numbers = array(); + static $numbers = 0; if (PKWK_READONLY) return ''; // Show nothing - if (! isset($numbers[$vars['page']])) $numbers[$vars['page']] = 0; - $comment_no = $numbers[$vars['page']]++; + $comment_no = $numbers++; $options = func_num_args() ? func_get_args() : array(); --includeなどのプラグインで他のページを呼び出した場合でも同様の問題が発生する可能性があります(未確認)。 -- [[Ratbeta]] &new{2005-03-10 (木) 17:39:25}; -お知らせありがとうございます。commentプラグインの挙動ではなくてlabelタグのIDだけの話ですよね? ($comment_no などのあたりは触っていないので) -- [[henoheno]] &new{2005-03-10 (木) 23:32:58}; --えーと、挙動には影響ないみたいです(referで判別されるため。referが同一の場合にはどちらにしろ同じところにコメントされるので問題ない動作をしている模様)。結局のところ問題なのはIDだけのようですが、それだと上記の修正では駄目みたいですね…。 -- [[Ratbeta]] &new{2005-03-11 (金) 14:59:27}; -- 関連: [[BugTrack2/279]] -- &new{2008-03-07 (金) 11:55:54}; - PukiWiki/1.4/ちょっと便利に/labelタグで便利に -- [[Logue]] &new{2005-03-11 (金) 11:25:22}; -- 本体に組み込まれたので、上記ページは削除されています - add plugin 用の文字列を追加でlabelタグ対応としました。実際のコードを含んでいるのは [[cvs:lib/html.php]] (1.50) です。addの実装はプラグインというよりもhack(本体改造)ですね。 -- [[henoheno]] &new{2006-04-09 (日) 13:37:55}; - FireFoxのHtml Validatorプラグインで警告されます。どうも IDは [a-zA-Z]で始まる必要があるようです。http://www.w3.org/TR/html4/types.html#h-6.2 -- [[teanan]] &new{2008-03-07 (金) 08:55:32}; -- [[BugTrack2/211]] ですでに指摘されています。xhtml では、アンダーバーで始まっていても問題ないらしいですが。 -- &new{2008-03-07 (金) 11:46:25}; -- あら、まさにその指摘のBugTrackがありましたね (^^; 失礼いたしました。 -- [[teanan]] &new{2008-03-07 (金) 15:17:47}; #comment //#comment ---- ** 余談: 編集画面の「タイムスタンプを変更しない」 span stlye="small" => span class="small" [#j0fb34ef] -今気づいたのですが、html.phpの修正された行の次の行が微妙に文法違反のような気がします。正しくは<span style="font-size:small">ではないでしょうか。ただ、この場合はスタイルを設定しない方が良いかもしれません。 -- [[Ratbeta]] &new{2005-02-27 (日) 20:53:27}; -- コメントありがとうございます :) 全然深く考えていないのですが、つまるところ不要だということでしょうか? -- [[henoheno]] &new{2005-02-27 (日) 20:54:53}; ---取り去ることでレイアウトに影響が出るなら修正だけにしておいた方が良いと思いますが、特に影響がないならスキンとの兼ね合いから消した方が良いんじゃないかと。 -- [[Ratbeta]] &new{2005-02-27 (日) 20:58:25}; -ちょっと見てみました。 ふと他の部分を参考に span ''class''="small" にしたところ、文字が小さくなりました。つまりこの部分は、そもそも本来の意図が発揮されていなかったようです。ということで、classに修正しておきます :) -- [[henoheno]] &new{2005-03-06 (日) 11:23:21}; -- [[cvs:lib/html.php]] (1.29) -<label class="small" for="???"><input id="???" .../>~</label>じゃだめなんですかね? -- [[Logue]] &new{2005-05-20 (金) 14:35:30}; -- labelタグの「機能」にCSSの「デザイン」を混ぜ込むのは、将来泣ける事態を招きそうです。 -- [[henoheno]] &new{2006-04-09 (日) 13:35:31}; #comment //#comment ---- ** 余談: CSSのクラス名がいけてない [#o7b2803a] move to [[BugTrack2/36]]