追加で整形ルールを表示すると編集になる

  • ページ: BugTrack
  • 投稿者: Ratbeta?
  • 優先順位: 普通
  • 状態: 完了
  • カテゴリー: 本体バグ
  • 投稿日: 2004-03-29 (月) 16:18:13
  • バージョン: 1.4.2
  • リリース予定バージョン: 1.5.2

メッセージ

addコマンドでページに追加する画面に移動し、"テキスト整形のルールを表示する"を
クリックすると編集の画面(editコマンド)に移動してしまいます。

修正案 :

--- ./html.php	2004-03-29 16:05:22.000000000 +0900
+++ ./html.php	2004-03-29 16:05:02.000000000 +0900
@@ -177,7 +177,7 @@
 	$s_original = array_key_exists('original',$vars) ? htmlspecialchars($vars['original']) : $s_postdata;
 	$b_preview = array_key_exists('preview',$vars); // プレビュー中TRUE
 	$btn_preview = $b_preview ? $_btn_repreview : $_btn_preview;
-	
+	$cmd = $vars['cmd'];
 	$body = <<<EOD
 <form action="$script" method="post">
  <div class="edit_form">
@@ -204,7 +204,7 @@
 	else {
 		$body .= <<<EOD
 <ul>
- <li><a href="$script?cmd=edit&amp;help=true&amp;page=$r_page">$_msg_help</a></li>
+ <li><a href="$script?cmd=$cmd&amp;help=true&amp;page=$r_page">$_msg_help</a></li>
 </ul>
 EOD;
 	}

  • cvsに投入しました。cvs:html.php(v1.4:r1.99) -- ぱんだ? 2004-04-04 (日) 00:34:07
  • BugTrack/586 のXSS脆弱性の原因となっていたため、この修正は(結果的になんですが)差し戻しました。サニタイジング後の内容であれば半分OKなんですが、BugTrack/586 の例にある様に、不適切な値が cmd に入っていた場合ここをどう処理すべきか、という問題が残ります。 -- henoheno 2004-06-27 (日) 21:03:32
  • cmdで呼び出すプラグインはplugin=で呼び出せないようにする、というのはどうでしょうか?この例に漏れるプラグインがあるかもしれませんが…。 -- Ratbeta? 2004-06-28 (月) 18:44:14
  • BugTrack/586 にも書いた様に、plugin=edit は cmd=edit とは微妙に挙動が違う様ですね。とりあえず、開発日記/2004-06-28の様な入力チェックを加えたので、 plugin と cmd のどちらにも値が入っているという事態は無くなりました。 -- henoheno 2004-06-28 (月) 21:48:09
  • cmd をプラグイン化する動きは 1.4 からのもので、私はまだこの利点・欠点などを把握していませんので、ぱんだ?さんが復帰されるまでは大掛かりな変更はできないですね・・・ -- henoheno 2004-06-28 (月) 21:51:47
  • この方法ではだめでしょうか。
    // $Id: html.php,v 1.62 2007/05/12 14:24:42 henoheno Exp $
    (中略)
    // Show 'edit' form
    function edit_form($page, $postdata, $digest = FALSE, $b_template = TRUE)
    {
    (中略)
    	// Add plugin
    	$addtag = $add_top = '';
    	if(isset($vars['add'])) {
    		global $_btn_addtop;
    		$addtag  = '<input type="hidden" name="add"    value="true" />';
    		$add_top = isset($vars['add_top']) ? ' checked="checked"' : '';
    		$add_top = '<input type="checkbox" name="add_top" ' .
    			'id="_edit_form_add_top" value="true"' . $add_top . ' />' . "\n" .
    			'  <label for="_edit_form_add_top">' .
    				'<span class="small">' . $_btn_addtop . '</span>' .
    			'</label>';
    +		$cmd = 'add';	
    +	} else {
    +		$cmd = 'edit';
    	}
    (中略)
    	if (isset($vars['help'])) {
    		$body .= $hr . catrule();
    	} else {
    		$body .= '<ul><li><a href="' .
    -			$script . '?cmd=edit&amp;help=true&amp;page=' . $r_page .
    +			$script . '?cmd=' . $cmd . '&amp;help=true&amp;page=' . $r_page .
    			'">' . $_msg_help . '</a></li></ul>';
    	}
    
    	return $body;
    }
    (以降、省略)
    これで、追加(add)の時はadd で、それ以外はedit 固定で呼び出されれると思います。
    記号を使っていないので、とりあえず htmlspecialchars はかけてません。
    ヘルプを呼び出すと、それまでの編集内容が消えるのはそのまま*1ですけど。 -- 2007-05-13 (日) 19:00:02
  • 「ヘルプを呼び出すと、それまでの編集内容が消える」に関する関連 : BugTrack2/266 編集中に「テキスト整形のルールを表示」しても、メッセージがクリアされないようにする -- 2007-09-12 (水) 21:11:50
    • BugTrack2/266の対策で「ヘルプを呼び出すと、それまでの編集内容が消え」なくなります。
      ただ、この「add」って使ったことが無いのですが、どういうときに使うのでしょうか?^^; -- ぃぉぃぉ? 2007-09-13 (木) 02:25:38
    • Just do it :) -- henoheno 2007-09-13 (木) 23:15:34
    • ページの後ろに編集内容を追加するというのは分かるのですが、使用目的がわからないのです。編集でカーソルを一番後ろに持って行けばいいですよね。何かのプラグインから呼ばれているとか、使うと便利なケースはこういう場合だとか言うのがあったら教えてほしいです。 -- ぃぉぃぉ? 2007-09-13 (木) 23:31:15
    • なるほど。個人的には、かなり前に作成されたが、もうほとんど使われていないだろう機能なのだろうという認識です。 -- henoheno 2007-09-13 (木) 23:41:20
  • シンプルに、「テキスト整形のルール」ページを別ウィンドウ/別タブ で開くようにしました commit:8dc8b36fe2 BugTrack/2266 -- umorigu 2017-06-20 (火) 00:56:54


*1 チェックボックスに応じて、プレビューを押した時に、ヘルプの表示、非表示を切り替える。とでもしないと、これは直らないと思いますけど。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-06-20 (火) 00:56:54
Site admin: PukiWiki Development Team

PukiWiki 1.5.1+ © 2001-2016 PukiWiki Development Team. Powered by PHP 5.6.30-0+deb8u1. HTML convert time: 0.190 sec.

OSDN