#author("2017-06-20T00:55:34+09:00","","")
#author("2017-06-20T00:56:54+09:00","","")
*追加で整形ルールを表示すると編集になる [#v5c7c8aa]

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

**メッセージ [#n29643c2]
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) -- [[ぱんだ]] &new{2004-04-04 (日) 00:34:07};
-[[BugTrack/586]] のXSS脆弱性の原因となっていたため、この修正は(結果的になんですが)差し戻しました。サニタイジング後の内容であれば半分OKなんですが、[[BugTrack/586]] の例にある様に、不適切な値が cmd に入っていた場合ここをどう処理すべきか、という問題が残ります。 -- [[henoheno]] &new{2004-06-27 (日) 21:03:32};
-cmdで呼び出すプラグインはplugin=で呼び出せないようにする、というのはどうでしょうか?この例に漏れるプラグインがあるかもしれませんが…。 -- [[Ratbeta]] &new{2004-06-28 (月) 18:44:14};
-[[BugTrack/586]] にも書いた様に、plugin=edit は cmd=edit とは微妙に挙動が違う様ですね。とりあえず、[[開発日記/2004-06-28]]の様な入力チェックを加えたので、 plugin と cmd のどちらにも値が入っているという事態は無くなりました。 -- [[henoheno]] &new{2004-06-28 (月) 21:48:09};
-cmd をプラグイン化する動きは 1.4 からのもので、私はまだこの利点・欠点などを把握していませんので、[[ぱんだ]]さんが復帰されるまでは大掛かりな変更はできないですね・・・ -- [[henoheno]] &new{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 はかけてません。~
ヘルプを呼び出すと、それまでの編集内容が消えるのはそのまま((チェックボックスに応じて、プレビューを押した時に、ヘルプの表示、非表示を切り替える。とでもしないと、これは直らないと思いますけど。))ですけど。 --  &new{2007-05-13 (日) 19:00:02};
- 「ヘルプを呼び出すと、それまでの編集内容が消える」に関する関連 : [[BugTrack2/266]] 編集中に「テキスト整形のルールを表示」しても、メッセージがクリアされないようにする --  &new{2007-09-12 (水) 21:11:50};
-- [[BugTrack2/266]]の対策で「ヘルプを呼び出すと、それまでの編集内容が消え」なくなります。&br;ただ、この「add」って使ったことが無いのですが、どういうときに使うのでしょうか?^^; -- [[ぃぉぃぉ]] &new{2007-09-13 (木) 02:25:38};
-- Just do it :) -- [[henoheno]] &new{2007-09-13 (木) 23:15:34};
-- ページの後ろに編集内容を追加するというのは分かるのですが、使用目的がわからないのです。編集でカーソルを一番後ろに持って行けばいいですよね。何かのプラグインから呼ばれているとか、使うと便利なケースはこういう場合だとか言うのがあったら教えてほしいです。 -- [[ぃぉぃぉ]] &new{2007-09-13 (木) 23:31:15};
-- なるほど。個人的には、かなり前に作成されたが、もうほとんど使われていないだろう機能なのだろうという認識です。 -- [[henoheno]] &new{2007-09-13 (木) 23:41:20};
- シンプルに、「テキスト整形のルール」ページを別ウィンドウ/別タブ で開くようにしました commit:8dc8b36fe2 [[BugTrack/2266]] -- [[umorigu]] &new{2017-06-20 (火) 00:56:54};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.093 sec.

OSDN