* interwiki.inc.phpでplugin_interwiki_invalid()がグローバル変数$interwikiを見ていない [#l1865985]

- ページ: [[BugTrack2]]
- 投稿者: [[g@kko]]
- 優先順位: 普通
- 状態: 提案
- カテゴリー: プラグイン
- 投稿日: 2007-09-26 (水) 08:54:09
- バージョン: 

#contents
-----
** メッセージ [#df510c02]
plugin/interwiki.inc.php (1.10)
//↑、長いこと更新が無いファイルだから、まず間違いなくこのRev. だろう、というのを勝手に追記。
 function plugin_interwiki_invalid()
 {
	global $_title_invalidiwn, $_msg_invalidiwn;
	return array(
		'msg'  => $_title_invalidiwn,
		'body' => str_replace(array('$1', '$2'),
			array(htmlspecialchars(''),
			make_pagelink('InterWikiName')),
			$_msg_invalidiwn));
 }
make_pagelink('InterWikiName')としているため、pukiwiki.ini.phpで
 $interwiki    = 'InterWikiName'; // Set InterWiki definition here
の設定を変更した場合、正しくページリンクが作成されない。
よって、make_pagelink($interwiki)とする方が良いかと思います。

**修正案 [#c1d83266]
 function plugin_interwiki_invalid()
  {
 -	global $_title_invalidiwn, $_msg_invalidiwn;
 +	global $_title_invalidiwn, $_msg_invalidiwn, $interwiki;
	return array(
		'msg'  => $_title_invalidiwn,
		'body' => str_replace(array('$1', '$2'),
			array(htmlspecialchars(''),
 -			make_pagelink('InterWikiName')),
 +			make_pagelink($interwiki)),
			$_msg_invalidiwn));
  }

--------
***コメント [#c9e29781]
//- ''連絡メモ'': related プラグインからたどったら、このページは[[g@kko]] さんが起票した、となっているんですが、「投稿者名」を「名無しさん」から直しておいたほうがいいですか?って[[BugTrack2/255]]以降に起票したした分、全部がこうなってるじゃいですか。コメントアウトして、この話はなかったことにしようかな。 --  &new{2007-09-27 (木) 20:42:16};
- 上の修正案、make_pagelink($interwiki) ではなく、make_pagelink($interwiki, htmlspecialchars('InterWikiName')) として、ページ名が変わってもエイリアスは固定にしたほうがいいと思います。 --  &new{2007-09-27 (木) 20:42:16};

#comment


**InterWikiName の呼び出しに失敗した時に、その文字列をエラーメッセージに表示してほしい [#qf3fa487]
- 便乗させてもらいます。~
plugin_interwiki_action() からplugin_interwiki_invalid() を呼び出すときにパラメータ(せめて、$vars['page'])を渡してほしいです。上の修正案の中でhtmlspecialchars('') となっている部分が空文字なので、エラーメッセージが常に「は有効な InterWikiName ではありません。」となってしまいます。~
記入ミスなどを確認するためにも、できれば上の修正案の分と一緒に修正していただければと思います。
 (「てすと」というInterWikiName が設定されていない時のイメージ)
 [[てすと:ページ名]] というリンクをクリックした時に、上の様な固定のメッセージではなく
 「てすと:ページ名 は有効な InterWikiName ではありません。」とヒントを表示してほしい
とはいえ現状、plugin_interwiki_action() を呼び出しているのは、plugin/read.inc.php (1.8)の
	} else if (! PKWK_SAFE_MODE && is_interwiki($page)) {
		return do_plugin_action('interwiki'); // InterWikiNameを処理
の部分だけ(のはず) なんで、設定していないInterWikiName を書き込んでしまったとき以外では、見ることが無いメッセージではあるんですけど。 --  &new{2007-09-27 (木) 20:42:16};

- こんにちは :) 便乗の件、ページに #contents をつけて、この話題用の見出しと #comment をつけて、見出しにできるだけツボを突いた要約をつけておいていただけると助かります :) -- [[henoheno]] &new{2007-09-27 (木) 23:50:01};
-- 上の修正案へのツッコミを分割して見出しを設置 --  &new{2007-09-28 (金) 00:25:08};

#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.084 sec.

OSDN