* 編集中に「テキスト整形のルールを表示」しても、メッセージがクリアされないようにする。 [#f1df1243] - ページ: [[BugTrack2]] - 投稿者: [[ぃぉぃぉ]] - 優先順位: 低 - 状態: 提案 - カテゴリー: 本体新機能 - 投稿日: 2007-08-04 (土) 10:35:44 - バージョン: 1.4.7 ---- #contents ---- ** メッセージ [#f824b6a6] **編集フォームの「テキスト整形のルールを表示する」をPOSTメソッドにして、編集中のメッセージが引き継がれるようにする。 [#pb64d14c] 使い始めた頃、編集し始めてから「表はどう記載するんだっけな?」と、整形ルールを表示したら、「あ゛~、今まで入力した内容が消えた ><」なんてことがよくあったのですが、そうならないようにする方法です。&br; 周り(パソコンに不慣れな人たち)に自分のPukiWikiを紹介して使ってもらったら、この苦情がでてきたもので、対応してみました。 ***フォーム生成部改造 [#x92fa677] -html.php --function edit_form() ---L.166あたり - global $_btn_preview, $_btn_repreview, $_btn_update, $_btn_cancel, $_msg_help; + global $_btn_preview, $_btn_repreview, $_btn_update, $_btn_cancel, $_msg_help, $_msg_help_off; ---L.240あたり&aname(l240){}; + //ヘルプ非表示中はヘルプ呼び出しボタン表示 + if (isset($vars[\'helpoff\']) || !isset($vars[\'help\'])) { + $help_button = "<input type=\\"submit\\" name=\\"help\\" value=$_msg_help />"; + $help_on = FALSE; + } else { + //ヘルプ表示中はヘルプ消去ボタン表示とヘルプ表示中ポストデータ(hidden)作成 + $help_button = "<input type=\\"submit\\" name=\\"helpoff\\" value=$_msg_help_off /><input type=\\"hidden\\" name=\\"help\\" />"; + $help_on = TRUE; + } + $body = <<<EOD <div class="edit_form"> <form action="$script" method="post" style="margin-bottom:0px;"> $template $addtag <input type="hidden" name="cmd" value="edit" /> <input type="hidden" name="page" value="$s_page" /> <input type="hidden" name="digest" value="$s_digest" /> <textarea name="msg" rows="$rows" cols="$cols">$s_postdata</textarea> <br /> <div style="float:left;"> <input type="submit" name="preview" value="$btn_preview" accesskey="p" /> <input type="submit" name="write" value="$_btn_update" accesskey="s" /> $add_top $add_notimestamp - </div> <textarea name="original" rows="1" cols="1" style="display:none">$s_original</textarea> - </form> - <form action="$script" method="post" style="margin-top:0px;"> - <input type="hidden" name="cmd" value="edit" /> - <input type="hidden" name="page" value="$s_page" /> <input type="submit" name="cancel" value="$_btn_cancel" accesskey="c" /> + </div> + <br /> + <div style="clear:left;"> + $help_button + </div> </form> </div> EOD; - if (isset($vars[\'help\'])) { - $body .= $hr . catrule(); - } else { - $body .= \'<ul><li><a href="\' . - $script . \'?cmd=edit&help=true&page=\' . $r_page . - \'">\' . $_msg_help . \'</a></li></ul>\'; - } + if ($help_on) { + $body .= $hr . catrule(); + } return $body; ***edit.inc.php呼び出し時に表示するtextareaの中身決定。 [#ea27ca40] -L.30あたり&br; プレビューかフォーマットルール表示の場合には引数から渡された(=ポストされた)msgを使用。 + if (!isset($vars[\'msg\'])) { $postdata = @join(\'\', get_source($page)); if ($postdata == \'\') $postdata = auto_template($page); + } else { + $postdata = $vars[\'msg\']; + } ***ボタン表示切り替えに、消すときのメッセージ作成 [#ibbbbf93] -ja.lng.php l.57あたり $_msg_help = \'テキスト整形のルールを表示する\'; +$_msg_help_off = \'テキスト整形のルールを隠す\'; $_msg_week = array(\'日\',\'月\',\'火\',\'水\',\'木\',\'金\',\'土\'); -en.lng.php l.54あたり $_msg_help = \'View Text Formatting Rules\'; +$_msg_help_off = \'Hide Text Formatting Rules\'; $_msg_week = array(\'Sun\',\'Mon\',\'Tue\',\'Wed\',\'Thu\',\'Fri\',\'Sat\'); -------- **コメント [#kf831b9b] - こんにちは :) 確かに私もついクリックしてしまい、「戻る」機能の世話になることがあります。問題が何かという件ですが、この件については「ハイパーリンクは非常にクリックしやすい。またついクリックしてしまう場所にリンクがある。」というUIの特徴とレイアウトに関する問題ではないでしょうか。勘違いでなければ、他の回避策ないし解決策として、レイアウトや表示デザイン上の修正というのが入ってくると思います。(1)マウスアローが通過する操作コースとの兼ね合い(例えば、ボタンの直下におかずに、もう一~二行分下にずらせば抑えられるかもしれない) (2)周辺の強調度合いの少なさ(例えば、周囲が色付け/強調されていればある程度抑えられるかもしれない)等、どんな要素(無要素)でソレが誘発されたのか、どの用に感じられたのかについて、その方にお話を聞いてみたくなりますね。準備時間がそこそこあるなら、そうしたデザイン上の変化を絵で何パターンかを用意して、それらを見せながら意見を得たりとか。 -- [[henoheno]] &new{2007-08-04 (土) 10:43:45}; -- 失礼しました (^^; クリックするまでの話ではなく、クリックしてから後の話なのですね。 -- [[henoheno]] &new{2007-08-04 (土) 18:27:40}; -- 挙動的にはプレビューの亜種なのだなあ。 -- [[henoheno]] &new{2007-08-04 (土) 18:23:55}; -- そうですね。送るデータはsubmitがpreviewかhelp関係かという以外同じです。 -- [[ぃぉぃぉ]] &new{2007-08-04 (土) 23:18:00}; - 自分の場合はついついクリックしたのではなく、Formatting Ruleを調べるために故意に押していました。ブラウザによるようですが、IE6の場合は、「戻る」で戻ったら、編集内容は保存されておらず、編集モードに入った時点の状態に戻ってしまいます。 -- [[ぃぉぃぉ]] &new{2007-08-04 (土) 11:20:56}; -- 最近は消えることが分かっていますから、shift+クリックで別画面に表示したりしますが、これでは編集画面+フォーマットのヘルプという構成になっている意味がありません。 -- [[ぃぉぃぉ]] &new{2007-08-04 (土) 11:18:08}; --- これならツールバー(? 最上部のメニュー)や下部のアイコンのヘルプで十分ですよね。 -- [[ぃぉぃぉ]] &new{2007-08-04 (土) 11:22:10}; -- つまり、現状では編集モードに入った''直後''に「テキスト整形のルールを表示する」をクリックした場合のみ意味があります。 -- [[ぃぉぃぉ]] &new{2007-08-04 (土) 11:21:37}; --- 一度プレビュー表示をした後なら、プレビュー表示に「戻る」+「更新」で編集内容を送りなおす(復活させる)、とできなくはない(IE6の場合)ですけど... -- &new{2007-08-04 (土) 12:32:27}; --- プレビューの後でも、プレビューの''直後''しかだめですよね。その後編集していたものは残りませんT_T&br;この改造を適用すれば大丈夫v(^_^) -- [[ぃぉぃぉ]] &new{2007-08-04 (土) 23:24:32}; -- ということで、このBugTrackのように、「テキスト整形のルールを表示する」をクリックした場合にも編集状態が保持されるようにするのがよいと思います。 -- [[ぃぉぃぉ]] &new{2007-08-04 (土) 11:22:52}; - アイデアだけな関連 : [[BugTrack/570]]の注釈 - 見た目を含めて検討したかったのですが、上記のパッチはそれぞれどのリビジョンに対するものでしょう。 html.php で言えば $help_on といった変数は無いので、何か部分的なパッチのようにも思えます。 -- [[henoheno]] &new{2007-08-05 (日) 17:32:51}; -- 今までの実装が $vars['help'] を見ているということは、cmd=edit&help=on&page=<ページ名> といった GET method でも意図通りの状態になるということです。そのへんと上手く合わせられないでしょうか -- [[henoheno]] &new{2007-08-05 (日) 17:34:09}; -- 元になっているのはPukiWiki Ver.1.4.7_notbです。&br;$help_onはローカル変数で上記パッチで新設したものです。getメソッドでの&help=onの場合の挙動は変更ありません。(上記パッチを当ててもヘルプありの編集画面となります。) -- [[ぃぉぃぉ]] &new{2007-08-05 (日) 18:08:20}; --- はい、$help_on はこのパッチで用意された変数ですよね。それなのに以下の部分は $help_on が以前から存在したかのような表現になっているのです -- [[henoheno]] &new{2007-08-05 (日) 19:00:38}; if ($help_on) { $body .= $hr . catrule(); } --- [[フォーム生成部改造のhtml.phpのfunction edit_form() のL.240あたり>./#l240]]、の最初の部分で$help_onの値を生成しています。 -- [[ぃぉぃぉ]] &new{2007-08-05 (日) 19:04:49}; --- はい、そしてそのパッチの最後の部分にある、 + でも - でもない部分で $help_on が登場していますが、そこの部分が不思議なのです。何か勘違いしているかな・・・ -- [[henoheno]] &new{2007-08-05 (日) 21:00:42}; --- 失礼しました。その3行も+です。(修正しました) -- [[ぃぉぃぉ]] &new{2007-08-05 (日) 22:52:47}; #comment