編集時に整形ルールを表示していると、その部分で相対リンクや凍結の判定などをミスしている

メッセージ

編集中に「テキスト整形のルールを表示する」を選んだ時はcatrule() を呼び出していますが、
$vars['page'] を修正していないので、今編集しているページ名を相対リンクや凍結判定の基準にしてしまっています。

なので、見出し横のアンカー表示のリンク先が編集中のページ名になっていたり、整形ルールのページを凍結していても'#nofollow: Page not freezed' と表示されてしまいます。

include プラグインを参考に、include プラグインがなくても動く修正を考えてみました。

cvs:lib/func.php (1.93)

 function catrule()
 {
-	global $rule_page;
+	global $rule_page, $get, $post, $vars;
 
 	if (! is_page($rule_page)) {
 		return '<p>Sorry, page \'' . htmlspecialchars($rule_page) .
 			'\' unavailable.</p>';
 	} else {
-		return convert_html(get_source($rule_page));
+		$root = isset($vars['page']) ? $vars['page'] : '';
+		$get['page'] = $post['page'] = $vars['page'] = $rule_page;
+		$text = convert_html(get_source($rule_page));
+		$get['page'] = $post['page'] = $vars['page'] = $root;
+		return $text;
 	}
 }



トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-10-27 (金) 07:19:36
Site admin: PukiWiki Development Team

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

SourceForge