2 function plugin_yetlist_action()
4 global $script,$InterWikiName,$WikiName,$BracketName,$defaultpage,$_gwbn;
6 if ($dir = @opendir(DATA_DIR))
8 while($file = readdir($dir))
10 if($file == ".." || $file == ".") continue;
12 $page = decode(trim(preg_replace("/\.txt$/"," ",$file)));
13 $data[$page] = file(DATA_DIR.$file);
18 $ret["body"] = "<ul>\n";
20 foreach($data as $name => $lines)
22 $lines = preg_replace("/^\s(.*)$/","",$lines);
24 $line = join("\n",$lines);
28 (\[\[([^\]]+)\:(https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\]\])
30 (\[(https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\s([^\]]+)\])
32 (https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)
34 ([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)
36 (\[\[([^\]]+)\:([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\]\])
43 )/ex","check_link('$1','$name')",$line);
46 foreach($_gwbn as $tmp)
49 $name = $tmp["refer"];
51 if(preg_match("/^[^>]+>([^\]]+)/",$wbn,$match))
54 if(!preg_match("/($WikiName)|($BracketName)/",$wbn))
60 if(preg_match("/^\[\[\.\/([^\]]*)\]\]/",$wbn,$match))
65 $wbn = "[[".strip_bracket($name)."/$match[1]]]";
67 else if(preg_match("/^\[\[\..\/([^\]]+)\]\]/",$wbn,$match))
69 for($i=0;$i<substr_count($keep,"../");$i++)
70 $wbn = preg_replace("/(.+)\/([^\/]+)$/","$1",strip_bracket($name));
72 if(!preg_match("/^($BracketName)|($WikiName)$/",$wbn))
76 $wbn = "[[$match[1]]]";
78 $wbn = "[[".strip_bracket($wbn)."/$match[1]]]";
80 else if($wbn == "[[../]]")
82 $wbn = preg_replace("/(.+)\/([^\/]+)$/","$1",strip_bracket($name));
84 if(!preg_match("/^($BracketName)|($WikiName)$/",$wbn))
92 $lists[strip_bracket($wbn)] = strip_bracket($wbn);
93 $refer[strip_bracket($wbn)][$name] = $name;
98 foreach($lists as $wbn)
101 if(!preg_match("/($WikiName)|($BracketName)/",$url))
103 $url = rawurlencode($url);
106 foreach($refer[$wbn] as $refs)
108 $ref = strip_bracket($refs);
109 $refurl = rawurlencode($refs);
111 $link_ref .= " <a href=\"$script?$refurl\">$ref</a>";
113 $link_ref = trim($link_ref);
115 $ret["body"] .= "<li><a href=\"$script?cmd=edit&page=$url&refer=$refurl\">$wbn</a> <i>($link_ref)</i></li>\n";
119 $ret["body"] .= "</ul>\n";
121 $ret["msg"] = "List of pages,are not made yet";
126 function check_link($name,$refer)
128 global $BracketName,$WikiName,$InterWikiName,$_gwbn;
130 if(preg_match("/^\[\[([^\]]+)\:((https?|ftp|news)([^\]]+))\]\]$/",$name))
134 else if(preg_match("/^\[((https?|ftp|news)([^\]\s]+))\s([^\]]+)\]$/",$name))
138 else if(preg_match("/^(https?|ftp|news).*?(\.gif|\.png|\.jpeg|\.jpg)?$/",$name))
142 else if(preg_match("/^\[\[([^\]]+)\:([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\]\]/",$name))
146 else if(preg_match("/^([[:alnum:]\-_]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)/",$name))
150 else if(preg_match("/^($InterWikiName)$/",$name))
154 else if(preg_match("/^($BracketName)|($WikiName)$/",$name))
156 $_gwbn[$name]["name"] = $name;
157 $_gwbn[$name]["refer"] = $refer;