editプラグインで、テンプレート呼び出しボタンをクリックしたかどうかが正しく判断されていない

  • ページ: BugTrack
  • 投稿者: ぃぉぃぉ
  • 優先順位: 普通
  • 状態: 完了
  • カテゴリー: プラグイン
  • 投稿日: 2007-07-06 (金) 03:35:58
  • バージョン: 1.4.7(edit.inc.php : v 1.40)
  • リリース予定バージョン: 1.5.2

メッセージ

editプラグインで、テンプレート呼び出しボタンをクリックしたかどうかが正しく判断されていません。雛形とするページのセレクトボックスを選択したかどうかで判断されています。 plugin/edit.inc.php(v 1.40)のl.46

	// Loading template
	if (isset($vars['template_page']) && is_page($vars['template_page'])) {

が、該当部分です。テンプレート呼び出しボタンを押したかどうかはvars['template']が存在するかどうか(冗長に見るなら=$_btn_load(global)かどうか)を見なくてはいけません。修正案は次のようになります。

	// Loading template
	if (isset($vars['template']) && isset($vars['template_page']) && is_page($vars['template_page'])) {

ちなみに、フォームはlib/html.phpのedit_form()で作成されます。


  • 現状では、セレクトボックスを選択していると、プレビューボタンでも選択したページが取り込まれてしまい、編集内容が消えてしまいます。 -- ぃぉぃぉ 2007-07-06 (金) 03:33:37
  • 勝手な補足: メッセージに書いてある問題について。これは、'wiki/.txt' が存在する時に起こるそうです。(参照: BugTrack/699#p32ae5fe
    lib/html.phpのedit_form() でページを何も選択していない時、つまり
       <option value="">-- $_btn_template --</option>
    が選択されると、メッセージの部分でisset($vars['template_page']) はTRUE を、is_page($vars['template_page']) は'wiki/.txt' が存在する時にTRUE を返すので、テンプレートの読み込みが行われてしまいます。 -- 2007-10-13 (土) 14:54:22
  • 好みの問題かもしれませんが、不正なページ名からの読み込みを防げるように、if 条件にis_pagename($vars['template_page']) を追加したほうがいいと思います。
    PukiWiki 1.3 から1.4 にアップデートしようとする人は昔のページ名形式([[ページ名]])からコピーできなくて困るかもしれませんが。 -- 2007-10-13 (土) 14:54:22
  • 対応しました commit:cf24849164 -- umorigu 2017-08-27 (日) 11:18:03


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

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.477 sec.

OSDN