トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BBS-サポート掲示板/786

ページの作成や編集にはユーザ登録が必要です。

 3.6.3dev3 での URL 生成関数の未適用箇所 - ぐうます (2008年01月04日 02時31分51秒)

BugTrack-plugin/249, BBS-雑談掲示板/155, BBS-サポート掲示板/470 などでの議論の通り、FreeStyle Wiki で URL を生成する際には、API として用意されている URL 生成関数 create_url() を使用することが望ましいと思います。しかしながら、先日リリースされました FreeStyle Wiki 3.6.3dev3 においても、若干ながらまだ create_url() を使用する形式への書き換えから漏れている箇所があるようです。そこで、該当箇所について create_url()、あるいは create_page_url() を使用するように変更し、オリジナルに対する diff (create_url.diff(684))を作成してみました。

diff -X exfile.txt -rBiwbu ../wiki3_6_3dev3.orig/lib/Wiki/HTMLParser.pm ./lib/Wiki/HTMLParser.pm
--- ../wiki3_6_3dev3.orig/lib/Wiki/HTMLParser.pm	Mon Dec 31 12:05:37 2007
+++ ./lib/Wiki/HTMLParser.pm	Thu Jan  3 10:01:18 2008
@@ -446,11 +446,11 @@
 		$name = $page;
 	}
 	if($self->{wiki}->page_exists($page)){
-		return "<a href=\"".$self->{wiki}->config('script_name')."?page=".&Util::url_encode($page)."\" class=\"wikipage\">".
+		return "<a href=\"".$self->{wiki}->create_page_url($page)."\" class=\"wikipage\">".
 		       &Util::escapeHTML($name)."</a>";
 	} else {
 		return "<span class=\"nopage\">".&Util::escapeHTML($name)."</span>".
-		       "<a href=\"".$self->{wiki}->config('script_name')."?page=".&Util::url_encode($page)."\">?</a>";
+		       "<a href=\"".$self->{wiki}->create_page_url($page)."\">?</a>";
 	}
 }
 
@@ -516,8 +516,7 @@
 	$self->end_table;
 	$self->end_quote;
 	
-	$self->{html} .= "<div><img src=\"".$wiki->config('script_name')."?action=ATTACH&amp;".
-	                 "page=".&Util::url_encode($page)."&amp;file=".&Util::url_encode($file)."\"></div>\n";
+	$self->{html} .= "<div><img src=\"".$wiki->create_url({action=>"ATTACH",page=>$page,file=>$file})."\"></div>\n";
 }
 
 #==============================================================================
diff -X exfile.txt -rBiwbu ../wiki3_6_3dev3.orig/lib/Wiki.pm ./lib/Wiki.pm
--- ../wiki3_6_3dev3.orig/lib/Wiki.pm	Mon Dec 31 12:05:37 2007
+++ ./lib/Wiki.pm	Thu Jan  3 10:01:18 2008
@@ -562,7 +562,7 @@
 			return $self->error("管理者権限が必要です。");
 		}
 		return $obj->do_action($self).
-		       "<div class=\"comment\"><a href=\"".$self->config('script_name')."?action=LOGIN\">メニューに戻る</a></div>";
+		       "<div class=\"comment\"><a href=\"".$self->create_url({action=>"LOGIN"})."\">メニューに戻る</a></div>";
 	
 	# ログインユーザ用のアクション
 	} elsif($self->{"handler_permission"}->{$action}==2){
@@ -571,7 +571,7 @@
 			return $self->error("ログインしていません。");
 		}
 		return $obj->do_action($self).
-		       "<div class=\"comment\"><a href=\"".$self->config('script_name')."?action=LOGIN\">メニューに戻る</a></div>";
+		       "<div class=\"comment\"><a href=\"".$self->create_url({action=>"LOGIN"})."\">メニューに戻る</a></div>";
 		
 	# 普通のアクション
 	} else {
@@ -1444,7 +1444,7 @@
 sub redirect {
 	my $self = shift;
 	my $page = shift;
-	$self->redirectURL($self->config('script_name')."?page=".&Util::url_encode($page));
+	$self->redirectURL($self->create_page_url($page));
 }
 
 #==============================================================================
diff -X exfile.txt -rBiwbu ../wiki3_6_3dev3.orig/plugin/core/Diff.pm ./plugin/core/Diff.pm
--- ../wiki3_6_3dev3.orig/plugin/core/Diff.pm	Mon Dec 31 12:05:40 2007
+++ ./plugin/core/Diff.pm	Thu Jan  3 10:01:18 2008
@@ -105,7 +105,7 @@
 	
 	if($wiki->can_modify_page($pagename) && $rollback){
 		$buf .= qq|
-			<form action="@{[$wiki->config('script_name')]}" method="POST">
+			<form action="@{[$wiki->create_url()]}" method="POST">
 				<input type="submit" value="このバージョンに戻す"/>
 				<input type="hidden" name="action" value="DIFF"/>
 				<input type="hidden" name="page" value="@{[Util::escapeHTML($pagename)]}"/>
diff -X exfile.txt -rBiwbu ../wiki3_6_3dev3.orig/plugin/rss/Install.pm ./plugin/rss/Install.pm
--- ../wiki3_6_3dev3.orig/plugin/rss/Install.pm	Mon Dec 31 12:05:43 2007
+++ ./plugin/rss/Install.pm	Thu Jan  3 10:01:18 2008
@@ -8,8 +8,7 @@
 
 sub install {
 	my $wiki = shift;
-	$wiki->add_menu("RSS",$wiki->config('script_name')."?action=RSS",50,1);
-	
+	$wiki->add_menu("RSS",$wiki->create_url({action=>"RSS"}),50,1);
 	if($wiki->config("rss_version") eq "1"){
 		$wiki->add_handler("RSS","plugin::rss::RSSMaker10");
 		$wiki->add_hook("save_after" ,"plugin::rss::RSSMaker10");
diff -X exfile.txt -rBiwbu ../wiki3_6_3dev3.orig/plugin/rss/RSSMaker.pm ./plugin/rss/RSSMaker.pm
--- ../wiki3_6_3dev3.orig/plugin/rss/RSSMaker.pm	Mon Dec 31 12:05:43 2007
+++ ./plugin/rss/RSSMaker.pm	Thu Jan  3 10:01:18 2008
@@ -48,7 +48,7 @@
 	my $hook = shift;
 	
 	if($hook eq "initialize"){
-		$wiki->add_head_info("<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"".$wiki->config('script_name')."?action=RSS\">");
+		$wiki->add_head_info("<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"".$wiki->create_url({action=>"RSS"})."\">");
 	} else {
 		&make_rss($wiki,$wiki->config('log_dir')."/rss.cache");
 	}
diff -X exfile.txt -rBiwbu ../wiki3_6_3dev3.orig/plugin/rss/RSSMaker10.pm ./plugin/rss/RSSMaker10.pm
--- ../wiki3_6_3dev3.orig/plugin/rss/RSSMaker10.pm	Mon Dec 31 12:05:43 2007
+++ ./plugin/rss/RSSMaker10.pm	Thu Jan  3 10:01:18 2008
@@ -103,7 +103,7 @@
 	my $hook = shift;
 	
 	if($hook eq "initialize"){
-		$wiki->add_head_info("<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"".$wiki->config('script_name')."?action=RSS\">");
+		$wiki->add_head_info("<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"".$wiki->create_url({action=>"RSS"})."\">");
 	} else {
 		&make_rss($wiki,$wiki->config('log_dir')."/rss10.cache");
 	}
diff -X exfile.txt -rBiwbu ../wiki3_6_3dev3.orig/plugin/search/Install.pm ./plugin/search/Install.pm
--- ../wiki3_6_3dev3.orig/plugin/search/Install.pm	Mon Dec 31 12:05:43 2007
+++ ./plugin/search/Install.pm	Thu Jan  3 10:01:18 2008
@@ -8,7 +8,7 @@
 
 sub install {
 	my $wiki = shift;
-	$wiki->add_menu("検索",$wiki->config('script_name')."?action=SEARCH",200,1);
+	$wiki->add_menu("検索",$wiki->create_url({action=>"SEARCH"}),200,1);
 	$wiki->add_handler("SEARCH","plugin::search::SearchHandler");
 	$wiki->add_paragraph_plugin("search","plugin::search::SearchForm","HTML");
 }
diff -X exfile.txt -rBiwbu ../wiki3_6_3dev3.orig/wiki.cgi ./wiki.cgi
--- ../wiki3_6_3dev3.orig/wiki.cgi	Mon Dec 31 12:05:29 2007
+++ ./wiki.cgi	Thu Jan  3 10:01:18 2008
@@ -152,8 +152,7 @@
 	# ページのタイトルを決定
 	my $title = "";
 	if($cgi->param('action') eq "" && $wiki->page_exists($cgi->param('page')) && $wiki->is_installed('search')){
-		$title = "<a href=\"".$wiki->config("script_name")."?action=SEARCH&amp;word=".
-		       &Util::url_encode($wiki->get_title())."\">".
+		$title = "<a href=\"".$wiki->create_url({action=>"SEARCH",word=>$wiki->get_title()})."\">".
 		       &Util::escapeHTML($wiki->get_title())."</a>";
 	} else {
 		$title = &Util::escapeHTML($wiki->get_title());
  • ありがとうございます。とても助かります。3.6.3正式版には反映させていただきます。 - たけぞう (2008年01月04日 12時02分49秒)
  • CVSに修正をコミットしました。 - たけぞう (2008年01月06日 21時15分14秒)
  • IvRABPAbbHoRhPIrvM - KVulXxuJaLEoBHqf (2013年01月05日 22時47分27秒)
お名前: コメント:
create_url.diff

最終更新時間:2008年12月17日 15時12分43秒