$vars['refer'] を修正するプラグインで $base が空になる

修正

メッセージ

official:WebTrack/63

上の内容の概要

ページ下にある複製アイコンからtemplate プラグインを呼び出し、作成ボタンを押すと、
編集画面のページ上部に表示される現在のページ名が、「コピー元のページ名 の編集」と表示されてしまう。(実際は問題ないのだが、戸惑う)

?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 ではプラグインからのパラメータをうまく得られていないのかもしれません。
次の安定版までには修正していただけるよう、よろしくお願いします。



*1 あくまで、今あるものでテストできるように、例題をあげただけです。本来はreferしか使ってはいけないはずです。
*2 一応、newpageプラグインがありますが、$1を使ってページ名をタイトルに出力してい事と、pageを入力すると編集画面に飛ぶので、除外

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-04-26 (木) 19:44:39
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.145 sec.

OSDN