#author("2018-12-31T15:04:05+09:00","","")
#author("2018-12-31T15:04:35+09:00;2018-12-31T15:04:05+09:00","","")
* plugin が空ページを返すときの $defaultpage の表示 [#s28328fc]

- ページ: [[BugTrack]]
- 投稿者: [[しましま]]
- 優先順位: 重要
- 状態: 完了
- カテゴリー: 本体バグ
- 投稿日: 2006-09-02 (土) 12:02:40
- バージョン: 1.4.7
- リリース予定バージョン: 1.5.2

** メッセージ [#j9ade36d]

list, backup, topicpath, attach などのプラグインでリスト表示する内容がないなどの理由で body 部分に '' を返す場合があります.

このとき,$defaultpage が表示される仕様になっているとおもいます.
このとき,閲覧者に $defaultpage に閲覧権限があるかどうかチェックされることなく,表示されてしまいます.

プラグイン側で空を返さないようにする方法は,私程度でも対処できそうでした.list の例だと
 --- list.inc.php.orig	2006-09-02 11:49:20.000000000 +0900
 +++ list.inc.php	2006-08-15 20:04:16.000000000 +0900
 @@ -19,12 +19,12 @@
 // Get a list
 function plugin_list_getlist($withfilename = FALSE)
 {
 -	global $non_list, $whatsnew;
 +	global $non_list, $whatsnew, $_err_notexist;
 
 	$pages = array_diff(get_existpages(), array($whatsnew));
 	if (! $withfilename)
 		$pages = array_diff($pages, preg_grep('/' . $non_list . '/S', $pages));
 -	if (empty($pages)) return '';
 +	if (empty($pages)) return $_err_notexist;
 
 	return page_list($pages, 'read', $withfilename);
 }
※ $_err_notexist は,現在は yetlist 専用なので '該当項目はありません' や '表示すべき内容はありません' とかに変える必要があると思います.

しかし,該当するプラグインは多く,やはり本体側で対処すべき問題ではないかと思います.対処法は
+ プラグインから 空 が返されたときでも,$defaultpage の表示前に閲覧権限をチェックする
+ プラグインから 空 が返されたは,$defaultpage ではなく '表示すべき内容はありません' といったメッセージを表示する

すみませんが,私では,プラグインから帰ってきたときに $defaultpage を表示している部分を見つけられずパッチを作れませんでした.

恐れりますが,よろしくお願いします.

関連:[[BugTrack/366]] -- yetlist が空を返すときの対処
--------
- どうにか,自力でパッチを作成できました. -- [[しましま]] &new{2007-02-03 (土) 09:42:05};

lib/pukiwki.ini で返された $body が null で,$base も null のときは,閲覧権限のチェックなしで $defaultpage が表示されているようです.
そこで,check_readable をその前に呼び出して,閲覧権限をチェックするようにしました.
 --- pukiwiki.php.orig	2007-02-03 01:02:33.000000000 +0900
 +++ pukiwiki.php	2007-02-03 01:34:44.000000000 +0900
 @@ -112,6 +112,7 @@
 	$body = & $retvars['body'];
 } else {
 	if ($base == '' || ! is_page($base)) {
 +		check_readable($defaultpage, true, true);
 		$base  = & $defaultpage;
 		$title = htmlspecialchars(strip_bracket($base));
 		$page  = make_search($base);
pukiwki-1.4.7 用です.よろしければ,採用していただければと思います.
- ありがとうございました。採用しました commit:17a96ad228 -- [[umorigu]] &new{2018-12-31 (月) 15:02:29};
- パッチありがとうございます。採用しました commit:17a96ad228 -- [[umorigu]] &new{2018-12-31 (月) 15:02:29};

#comment

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

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.044 sec.

SourceForge