yetlistが、BracketNameをWikiNameとして表示してしまう

メッセージ

ブラケットの中身がWikiNameとして通用してしまうときに、ブラケットをはずしたページが未作成として表示されてしまいます。

原因

修正案

--- yetlist.inc.php	Thu Jul 25 13:35:34 2002
+++ yetlist.new.php	Thu Jul 25 14:32:38 2002
@@ -45,14 +45,18 @@
 		)/ex","check_link('$1','$name')",$line);
 	}
 	
-	foreach($_gwbn as $tmp)
+	foreach($_gwbn as $wbn => $refs_arr)
 	{
-		$wbn = $tmp["name"];
-		$name = $tmp["refer"];
-	
+
+		foreach (array_unique($refs_arr) as $name)
+		{
+
 		if(preg_match("/^[^>]+>([^\]]+)/",$wbn,$match))
 		{
 			$wbn = $match[1];
+			//閉じブラケットの補充。/^\[\[/でも必要十分だが念のため
+			if(preg_match("/^\[\[[^\]]+$/",$wbn))
+				$wbn = "$wbn]]";
 			if(!preg_match("/($WikiName)|($BracketName)/",$wbn))
 				$wbn = "[[$wbn]]";
 		}
@@ -91,21 +95,21 @@
 
 		if(!is_page($wbn))
 		{
-			$lists[strip_bracket($wbn)] = strip_bracket($wbn);
-			$refer[strip_bracket($wbn)][$name] = $name;
+			$refer[$wbn][] = $name;
+		}
+
+			$wbn = $keep; //ひー ^^;)
 		}
 	}
 
-	ksort($lists);
-	foreach($lists as $wbn)
+	ksort($refer);
+	foreach($refer as $wbn => $refs_arr)
 	{
-		$url = $wbn;
-		if(!preg_match("/($WikiName)|($BracketName)/",$url))
-			$url = "[[$url]]";
-		$url = rawurlencode($url);
+		$url = rawurlencode($wbn);
+		$name = strip_bracket($wbn);
 		
 		$link_ref = "";
-		foreach($refer[$wbn] as $refs)
+		foreach(array_unique($refs_arr) as $refs)
 		{
 			$ref = strip_bracket($refs);
 			$refurl = rawurlencode($refs);
@@ -114,7 +118,7 @@
 		}
 		$link_ref = trim($link_ref);
 		
-		$ret["body"] .= "<li><a href=\"$script?cmd=edit&amp;page=$url&amp;refer=$refurl\">$wbn</a> <em>($link_ref)</em></li>\n";
+		$ret["body"] .= "<li><a href=\"$script?cmd=edit&amp;page=$url&amp;refer=$refurl\">$name</a> <em>($link_ref)</em></li>\n";
 	}
 
 
@@ -155,8 +159,7 @@
 	}
 	else if(preg_match("/^($BracketName)|($WikiName)$/",$name))
 	{
-		$_gwbn[$name]["name"] = $name;
-		$_gwbn[$name]["refer"] = $refer;
+		$_gwbn[$name][] = $refer;
 		return;
 	}
 	else


*1 そうするための仕掛けはしてあったんだけど、動いてなかったみたい

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-08-25 (火) 12:50:05
Site admin: PukiWiki Development Team

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

SourceForge