2 // $Id: yetlist.inc.php,v 1.3 2002/06/26 06:23:57 masui Exp $
4 function plugin_yetlist_action()
6 global $script,$InterWikiName,$WikiName,$BracketName,$defaultpage,$_gwbn;
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')",$line);
48 foreach($_gwbn as $tmp)
51 $name = $tmp["refer"];
53 if(preg_match("/^[^>]+>([^\]]+)/",$wbn,$match))
56 if(!preg_match("/($WikiName)|($BracketName)/",$wbn))
62 if(preg_match("/^\[\[\.\/([^\]]*)\]\]/",$wbn,$match))
67 $wbn = "[[".strip_bracket($name)."/$match[1]]]";
69 else if(preg_match("/^\[\[\..\/([^\]]+)\]\]/",$wbn,$match))
71 for($i=0;$i<substr_count($keep,"../");$i++)
72 $wbn = preg_replace("/(.+)\/([^\/]+)$/","$1",strip_bracket($name));
74 if(!preg_match("/^($BracketName)|($WikiName)$/",$wbn))
78 $wbn = "[[$match[1]]]";
80 $wbn = "[[".strip_bracket($wbn)."/$match[1]]]";
82 else if($wbn == "[[../]]")
84 $wbn = preg_replace("/(.+)\/([^\/]+)$/","$1",strip_bracket($name));
86 if(!preg_match("/^($BracketName)|($WikiName)$/",$wbn))
94 $lists[strip_bracket($wbn)] = strip_bracket($wbn);
95 $refer[strip_bracket($wbn)][$name] = $name;
100 foreach($lists as $wbn)
103 if(!preg_match("/($WikiName)|($BracketName)/",$url))
105 $url = rawurlencode($url);
108 foreach($refer[$wbn] as $refs)
110 $ref = strip_bracket($refs);
111 $refurl = rawurlencode($refs);
113 $link_ref .= " <a href=\"$script?$refurl\">$ref</a>";
115 $link_ref = trim($link_ref);
117 $ret["body"] .= "<li><a href=\"$script?cmd=edit&page=$url&refer=$refurl\">$wbn</a> <i>($link_ref)</i></li>\n";
121 $ret["body"] .= "</ul>\n";
123 $ret["msg"] = "List of pages,are not made yet";
128 function check_link($name,$refer)
130 global $BracketName,$WikiName,$InterWikiName,$_gwbn;
132 if(preg_match("/^\[\[([^\]]+)\:((https?|ftp|news)([^\]]+))\]\]$/",$name))
136 else if(preg_match("/^\[((https?|ftp|news)([^\]\s]+))\s([^\]]+)\]$/",$name))
140 else if(preg_match("/^(https?|ftp|news).*?(\.gif|\.png|\.jpeg|\.jpg)?$/",$name))
144 else if(preg_match("/^\[\[([^\]]+)\:([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\]\]/",$name))
148 else if(preg_match("/^([[:alnum:]\-_]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)/",$name))
152 else if(preg_match("/^($InterWikiName)$/",$name))
156 else if(preg_match("/^($BracketName)|($WikiName)$/",$name))
158 $_gwbn[$name]["name"] = $name;
159 $_gwbn[$name]["refer"] = $refer;