BugTrack/2227
の編集
Top
/
BugTrack
/
2227
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
* $vars['refer'] を修正するプラグインで $base が空になる [#ua7405bd] - 元タイトル: template プラグイン使用時の挙動について - ページ: [[BugTrack2]] - 投稿者: 名無しさん - 優先順位: 普通 - 状態: 完了 - カテゴリー: 本体バグ - 投稿日: 2007-04-03 (火) 23:54:10 - バージョン: 1.4.8_alpha ** 修正 [#u6e2a871] - [[cvs:lib/pukiwiki.php]] (r1.19) -- [[cvs:lib/pukiwiki.php]] r1.12 - 1.18 にかけて、templateやattachといったプラグインで、ページ名が(プラグイン作成時の)意図通り表示されなくなっていた。 ** メッセージ [#r6b67a74] [[official:WebTrack/63>http://pukiwiki.sourceforge.jp/?WebTrack%2F63]] :上の内容の概要| >>ページ下にある複製アイコンからtemplate プラグインを呼び出し、作成ボタンを押すと、~ 編集画面のページ上部に表示される現在のページ名が、「&color(Navy){''コピー元のページ名''}; の編集」と表示されてしまう。(実際は問題ないのだが、戸惑う) ?plugin=template&refer=FrontPage "FrontPage をテンプレートにして作成" ここで「作成」ボタンを押すと "FrontPage の編集" と表示されてしまうが、期待されるのは例えば "FrontPage/複製 の編集" --------------- 上の件について自力で調べた結果「lib のpukiwiki.php」に原因があるようです。~ pukiwiki.php,v 1.13 で変更された「$base」関連の変更が原因のようです。~ v 1.17 に以下のように追加して、個人でテストしたところ正しく表示されるようになりました。~ // $Id: pukiwiki.php,v 1.17 2007/02/11 05:53:30 henoheno Exp $ (中略) // Plugin execution if ($plugin != '') { if (! exist_plugin_action($plugin)) { $msg = 'plugin=' . htmlspecialchars($plugin) . ' is not implemented.'; $retvars = array('msg'=>$msg,'body'=>$msg); $base = & $defaultpage; } else { $retvars = do_plugin_action($plugin); if ($retvars === FALSE) exit; // Done //分岐を追加 if (! isset($vars['cmd'])) { $base = isset($vars['refer']) ? $vars['refer'] : ''; } } } (以降、略) 以前のもの(pukiwiki.php,v 1.11)を参考に差し込んであるだけなので、もう少しうまい方法があるかもしれません。~ 詳しい理由まではわかりませんが、v 1.17 ではプラグインからのパラメータをうまく得られていないのかもしれません。~ 次の安定版までには修正していただけるよう、よろしくお願いします。 -------- - コメントありがとうございます。現状このページをパッと見た限りでは、(コードのどこが原因で)何故おかしくなるのか、何がおかしいのか、対処が正しいのか(別の副作用が無いのか等)が今ひとつ判断できておりません。もし何か他に情報があれば追記いただければ幸いです。最終的に、それら客観的な事実がこのページにまとめられ、後でこれをチェックした人がすぐに再確認(証明)ができるようになるのがベストです。 -- [[henoheno]] &new{2007-04-04 (水) 22:46:52}; - templateプラグインが表示するフォームの refer の値がそのまま表示されているような予感 -- [[henoheno]] &new{2007-04-04 (水) 23:01:53}; - 手元の(cvs版の)コードに上のif文を追加した状態では、動作に変化が見られておりません。もう少し観察した結果、templateプラグインが自分で対処すべきものだと判断できるならば、templateプラグインの方に修正を加えるかもしれませんし、他のプラグインも影響を受ける一般的な問題なのだとしたら、lib/pukiwiki.phpを直すべき、という流れになるでしょう。 -- [[henoheno]] &new{2007-04-04 (水) 23:06:31}; - 多分、同類であろうプラグインを見つけたので追加報告です。&br;添付(attach)の画面を開くとページ名が表示されずに、「への添付」とだけ表示されます。&br;templateの件とあわせて対応の検討をお願いします。 -- &new{2007-04-14 (土) 02:22:53}; ?plugin=attach&pcmd=upload&page=FrontPage "への添付" と表示されるが、期待されるのは "FrontPage への添付" - もう1つ追加です。mapプラグインで引数を指定しなかった場合、ページ名が表示されません。referを指定すると普通に表示されるのですが。 -- &new{2007-04-14 (土) 15:36:36}; ?cmd=map "Relation map, from" と表示されるが、期待されるのは "Relation map, from FrontPage" - 情報ありがとうございます。期待されている状態と、そうでない現状が明確でありませんでしたので、ひとまず情報を追加しました。mapについては1.4.7でも発生しているため、別件のようです。 -- [[henoheno]] &new{2007-04-15 (日) 10:28:59}; - 時期からざっくりと特定しました。きっかけになった修正は [[cvs:lib/pukiwiki.php]] r1.12 の以下です。(1.13ではありません) -- [[henoheno]] &new{2007-04-15 (日) 12:56:21}; - if ($is_cmd) { - $base = isset($vars['page']) ? $vars['page'] : ''; - } else { - $base = isset($vars['refer']) ? $vars['refer'] : ''; - } + $base = $is_cmd ? $page : $refer; -- template, attachともに、$vars['refer'] を、今回のトリックのために編集していました。しかし r1.12 以降それを無視する様になってしまったため、今回の症状が発生しました。 -- [[henoheno]] &new{2007-04-15 (日) 21:08:06}; -- 他にも同様のケースがあるかもしれないので、ここの部分は以前の通りに戻すとともに、$varsが編集される事を明確に考慮すべく、コメントを追加しました。 -- [[henoheno]] &new{2007-04-15 (日) 21:33:01}; -- [[cvs:lib/pukiwiki.php]] (r1.19) - mapプラグインも同様です。 ?cmd=map では表示されませんが、 ?plugin=map では表示されます。 -- [[henoheno]] &new{2007-04-15 (日) 21:45:00}; - 対応ありがとうございます。「?cmd」と「?plugin」の違いですか・・・。そういえば自分がテストしたのは、スキンに埋め込まれているものと、ヘルプの記述のコピーだけでした(つまり、全パターンではない)。&br;pukiwiki.php (r1.19) で試しましたが上にあるとおり、templateやmapプラグインを「?cmd」で呼び出すと、うまくいかないようです。「?plugin」ではきちんと表示されるようになってましたけど。&br;最後に、まだ状態を「完了」にしないほうがいいですか?「?cmd」の修正が別件になるのなら、「完了」にしておきますけど。 -- &new{2007-04-17 (火) 23:03:20}; -逆のパターンを見つけました。 ?plugin=unfreeze&page=SandBox "の凍結解除" と表示されるが、期待されるのは "SandBox の凍結解除" 普通なら、スキンに埋め込んである「?cmd」の方を使うので、問題はない気もしますが。 -- &new{2007-04-19 (木) 03:03:06}; -- というか、「?cmd」だと「&page」の内容を、「?plugin」だと「&refer」の内容をタイトルに出力するのが基本なので、プラグインの対応状況によっては、うまくいかないのでしょうね。&br;templateプラグインの場合((あくまで、今あるものでテストできるように、例題をあげただけです。本来はreferしか使ってはいけないはずです。))、「&page」と「&refer」に違うページを指定(仮に、&page=A&refer=B とする)すると、「?cmd」だとタイトルに「A」が、「?plugin」だとタイトルに「B」が出力されます。&br;今は、「&page」と「&refer」を同時に指定する必要のあるプラグインがない((一応、newpageプラグインがありますが、$1を使ってページ名をタイトルに出力してい事と、pageを入力すると編集画面に飛ぶので、除外))ので、現段階では特に問題にはなっていません。本当は、「?cmd」、「?plugin」どちらで呼び出しても、同じルールでタイトルを表示したほうがいいのでしょうけど。&br;逃げの一手 (とりあえず、表示させるだけ) でいいのなら、 if ($is_cmd) { $base = isset($vars['page']) ? $vars['page'] : isset($vars['refer']) ? $vars['refer'] : ''; } else { $base = isset($vars['refer']) ? $vars['refer'] : isset($vars['page']) ? $vars['page'] : ''; } みたいに、pageが無ければrefer(と、その逆)でもいいかもしれませんけど。 -- &new{2007-04-26 (木) 19:44:38}; //#comment
タイムスタンプを変更しない
* $vars['refer'] を修正するプラグインで $base が空になる [#ua7405bd] - 元タイトル: template プラグイン使用時の挙動について - ページ: [[BugTrack2]] - 投稿者: 名無しさん - 優先順位: 普通 - 状態: 完了 - カテゴリー: 本体バグ - 投稿日: 2007-04-03 (火) 23:54:10 - バージョン: 1.4.8_alpha ** 修正 [#u6e2a871] - [[cvs:lib/pukiwiki.php]] (r1.19) -- [[cvs:lib/pukiwiki.php]] r1.12 - 1.18 にかけて、templateやattachといったプラグインで、ページ名が(プラグイン作成時の)意図通り表示されなくなっていた。 ** メッセージ [#r6b67a74] [[official:WebTrack/63>http://pukiwiki.sourceforge.jp/?WebTrack%2F63]] :上の内容の概要| >>ページ下にある複製アイコンからtemplate プラグインを呼び出し、作成ボタンを押すと、~ 編集画面のページ上部に表示される現在のページ名が、「&color(Navy){''コピー元のページ名''}; の編集」と表示されてしまう。(実際は問題ないのだが、戸惑う) ?plugin=template&refer=FrontPage "FrontPage をテンプレートにして作成" ここで「作成」ボタンを押すと "FrontPage の編集" と表示されてしまうが、期待されるのは例えば "FrontPage/複製 の編集" --------------- 上の件について自力で調べた結果「lib のpukiwiki.php」に原因があるようです。~ pukiwiki.php,v 1.13 で変更された「$base」関連の変更が原因のようです。~ v 1.17 に以下のように追加して、個人でテストしたところ正しく表示されるようになりました。~ // $Id: pukiwiki.php,v 1.17 2007/02/11 05:53:30 henoheno Exp $ (中略) // Plugin execution if ($plugin != '') { if (! exist_plugin_action($plugin)) { $msg = 'plugin=' . htmlspecialchars($plugin) . ' is not implemented.'; $retvars = array('msg'=>$msg,'body'=>$msg); $base = & $defaultpage; } else { $retvars = do_plugin_action($plugin); if ($retvars === FALSE) exit; // Done //分岐を追加 if (! isset($vars['cmd'])) { $base = isset($vars['refer']) ? $vars['refer'] : ''; } } } (以降、略) 以前のもの(pukiwiki.php,v 1.11)を参考に差し込んであるだけなので、もう少しうまい方法があるかもしれません。~ 詳しい理由まではわかりませんが、v 1.17 ではプラグインからのパラメータをうまく得られていないのかもしれません。~ 次の安定版までには修正していただけるよう、よろしくお願いします。 -------- - コメントありがとうございます。現状このページをパッと見た限りでは、(コードのどこが原因で)何故おかしくなるのか、何がおかしいのか、対処が正しいのか(別の副作用が無いのか等)が今ひとつ判断できておりません。もし何か他に情報があれば追記いただければ幸いです。最終的に、それら客観的な事実がこのページにまとめられ、後でこれをチェックした人がすぐに再確認(証明)ができるようになるのがベストです。 -- [[henoheno]] &new{2007-04-04 (水) 22:46:52}; - templateプラグインが表示するフォームの refer の値がそのまま表示されているような予感 -- [[henoheno]] &new{2007-04-04 (水) 23:01:53}; - 手元の(cvs版の)コードに上のif文を追加した状態では、動作に変化が見られておりません。もう少し観察した結果、templateプラグインが自分で対処すべきものだと判断できるならば、templateプラグインの方に修正を加えるかもしれませんし、他のプラグインも影響を受ける一般的な問題なのだとしたら、lib/pukiwiki.phpを直すべき、という流れになるでしょう。 -- [[henoheno]] &new{2007-04-04 (水) 23:06:31}; - 多分、同類であろうプラグインを見つけたので追加報告です。&br;添付(attach)の画面を開くとページ名が表示されずに、「への添付」とだけ表示されます。&br;templateの件とあわせて対応の検討をお願いします。 -- &new{2007-04-14 (土) 02:22:53}; ?plugin=attach&pcmd=upload&page=FrontPage "への添付" と表示されるが、期待されるのは "FrontPage への添付" - もう1つ追加です。mapプラグインで引数を指定しなかった場合、ページ名が表示されません。referを指定すると普通に表示されるのですが。 -- &new{2007-04-14 (土) 15:36:36}; ?cmd=map "Relation map, from" と表示されるが、期待されるのは "Relation map, from FrontPage" - 情報ありがとうございます。期待されている状態と、そうでない現状が明確でありませんでしたので、ひとまず情報を追加しました。mapについては1.4.7でも発生しているため、別件のようです。 -- [[henoheno]] &new{2007-04-15 (日) 10:28:59}; - 時期からざっくりと特定しました。きっかけになった修正は [[cvs:lib/pukiwiki.php]] r1.12 の以下です。(1.13ではありません) -- [[henoheno]] &new{2007-04-15 (日) 12:56:21}; - if ($is_cmd) { - $base = isset($vars['page']) ? $vars['page'] : ''; - } else { - $base = isset($vars['refer']) ? $vars['refer'] : ''; - } + $base = $is_cmd ? $page : $refer; -- template, attachともに、$vars['refer'] を、今回のトリックのために編集していました。しかし r1.12 以降それを無視する様になってしまったため、今回の症状が発生しました。 -- [[henoheno]] &new{2007-04-15 (日) 21:08:06}; -- 他にも同様のケースがあるかもしれないので、ここの部分は以前の通りに戻すとともに、$varsが編集される事を明確に考慮すべく、コメントを追加しました。 -- [[henoheno]] &new{2007-04-15 (日) 21:33:01}; -- [[cvs:lib/pukiwiki.php]] (r1.19) - mapプラグインも同様です。 ?cmd=map では表示されませんが、 ?plugin=map では表示されます。 -- [[henoheno]] &new{2007-04-15 (日) 21:45:00}; - 対応ありがとうございます。「?cmd」と「?plugin」の違いですか・・・。そういえば自分がテストしたのは、スキンに埋め込まれているものと、ヘルプの記述のコピーだけでした(つまり、全パターンではない)。&br;pukiwiki.php (r1.19) で試しましたが上にあるとおり、templateやmapプラグインを「?cmd」で呼び出すと、うまくいかないようです。「?plugin」ではきちんと表示されるようになってましたけど。&br;最後に、まだ状態を「完了」にしないほうがいいですか?「?cmd」の修正が別件になるのなら、「完了」にしておきますけど。 -- &new{2007-04-17 (火) 23:03:20}; -逆のパターンを見つけました。 ?plugin=unfreeze&page=SandBox "の凍結解除" と表示されるが、期待されるのは "SandBox の凍結解除" 普通なら、スキンに埋め込んである「?cmd」の方を使うので、問題はない気もしますが。 -- &new{2007-04-19 (木) 03:03:06}; -- というか、「?cmd」だと「&page」の内容を、「?plugin」だと「&refer」の内容をタイトルに出力するのが基本なので、プラグインの対応状況によっては、うまくいかないのでしょうね。&br;templateプラグインの場合((あくまで、今あるものでテストできるように、例題をあげただけです。本来はreferしか使ってはいけないはずです。))、「&page」と「&refer」に違うページを指定(仮に、&page=A&refer=B とする)すると、「?cmd」だとタイトルに「A」が、「?plugin」だとタイトルに「B」が出力されます。&br;今は、「&page」と「&refer」を同時に指定する必要のあるプラグインがない((一応、newpageプラグインがありますが、$1を使ってページ名をタイトルに出力してい事と、pageを入力すると編集画面に飛ぶので、除外))ので、現段階では特に問題にはなっていません。本当は、「?cmd」、「?plugin」どちらで呼び出しても、同じルールでタイトルを表示したほうがいいのでしょうけど。&br;逃げの一手 (とりあえず、表示させるだけ) でいいのなら、 if ($is_cmd) { $base = isset($vars['page']) ? $vars['page'] : isset($vars['refer']) ? $vars['refer'] : ''; } else { $base = isset($vars['refer']) ? $vars['refer'] : isset($vars['page']) ? $vars['page'] : ''; } みたいに、pageが無ければrefer(と、その逆)でもいいかもしれませんけど。 -- &new{2007-04-26 (木) 19:44:38}; //#comment
テキスト整形のルールを表示する