2 // $Id: yetlist.inc.php,v 1.5 2002/07/29 01:47:24 masui Exp $
4 function plugin_yetlist_action()
6 global $script,$InterWikiName,$WikiName,$BracketName,$defaultpage;
8 if ($dir = @opendir(DATA_DIR))
10 while($file = readdir($dir))
12 if($file == ".." || $file == ".") continue;
14 $page = decode(trim(preg_replace("/\.txt$/"," ",$file)));
15 $data[$page] = file(DATA_DIR.$file);
20 $ret["body"] = "<ul>\n";
22 foreach($data as $name => $lines)
24 $lines = preg_replace("/^\s(.*)$/","",$lines);
26 $line = join("\n",$lines);
30 (\[\[([^\]]+)\:(https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\]\])
32 (\[(https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\s([^\]]+)\])
34 (https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)
36 ([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)
38 (\[\[([^\]]+)\:([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\]\])
45 )/ex","check_link('$1',\$name,\$_gwbn)",$line);
48 foreach($_gwbn as $wbn => $refs_arr)
51 foreach (array_unique($refs_arr) as $name)
54 if(preg_match("/^[^>]+>([^\]]+)/",$wbn,$match))
57 //ÊĤ¸¥Ö¥é¥±¥Ã¥È¤ÎÊä½¼¡£/^\[\[/¤Ç¤âɬÍ×½½Ê¬¤À¤¬Ç°¤Î¤¿¤á
58 if(preg_match("/^\[\[[^\]]+$/",$wbn))
60 if(!preg_match("/($WikiName)|($BracketName)/",$wbn))
66 if(preg_match("/^\[\[\.\/([^\]]*)\]\]/",$wbn,$match))
71 $wbn = "[[".strip_bracket($name)."/$match[1]]]";
73 else if(preg_match("/^\[\[\..\/([^\]]+)\]\]/",$wbn,$match))
75 for($i=0;$i<substr_count($keep,"../");$i++)
76 $wbn = preg_replace("/(.+)\/([^\/]+)$/","$1",strip_bracket($name));
78 if(!preg_match("/^($BracketName)|($WikiName)$/",$wbn))
82 $wbn = "[[$match[1]]]";
84 $wbn = "[[".strip_bracket($wbn)."/$match[1]]]";
86 else if($wbn == "[[../]]")
88 $wbn = preg_replace("/(.+)\/([^\/]+)$/","$1",strip_bracket($name));
90 if(!preg_match("/^($BracketName)|($WikiName)$/",$wbn))
98 $refer[$wbn][] = $name;
101 $wbn = $keep; //¤Ò¡¼ ^^;)
106 foreach($refer as $wbn => $refs_arr)
108 $url = rawurlencode($wbn);
109 $name = strip_bracket($wbn);
112 foreach(array_unique($refs_arr) as $refs)
114 $ref = strip_bracket($refs);
115 $refurl = rawurlencode($refs);
117 $link_ref .= " <a href=\"$script?$refurl\">$ref</a>";
119 $link_ref = trim($link_ref);
121 $ret["body"] .= "<li><a href=\"$script?cmd=edit&page=$url&refer=$refurl\">$name</a> <em>($link_ref)</em></li>\n";
125 $ret["body"] .= "</ul>\n";
127 $ret["msg"] = "List of pages,are not made yet";
132 function check_link($name,$refer,&$_gwbn)
134 global $BracketName,$WikiName,$InterWikiName;
136 if(preg_match("/^\[\[([^\]]+)\:((https?|ftp|news)([^\]]+))\]\]$/",$name))
140 else if(preg_match("/^\[((https?|ftp|news)([^\]\s]+))\s([^\]]+)\]$/",$name))
144 else if(preg_match("/^(https?|ftp|news).*?(\.gif|\.png|\.jpeg|\.jpg)?$/",$name))
148 else if(preg_match("/^\[\[([^\]]+)\:([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\]\]/",$name))
152 else if(preg_match("/^([[:alnum:]\-_]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)/",$name))
156 else if(preg_match("/^($InterWikiName)$/",$name))
160 else if(preg_match("/^($BracketName)|($WikiName)$/",$name))
162 $_gwbn[$name][] = $refer;