function QualifyFLink($pgroup, $group, $link) { if ($pgroup == $group) { return $link; } $l = FLRef($link); return preg_match("/[~!:.\\/]/", $l) ? $link : str_replace("{$l}", QualifiedLink($group, $l), $link); }
function ListPageLinks($pagename, $list) { global $GroupPattern, $WikiWordPattern; $g = FmtPageName('$Group', $pagename); $dummy = 'AB101BA'; $r = array(); $page = RetrieveAuthPage($pagename, $list == 'all' ? 'read' : 'edit'); if ($page) { $text = $page['text']; } else { Abort("cannot rename '{$pagename}'"); } PCache($pagename, $page); preg_match_all("/(\\[[=@].*?[=@]\\])|(\\[\\[([^#].*?)\\]\\])|([`:\\/\$])?\\b(({$GroupPattern}([\\/.]))?{$WikiWordPattern})/", $text, $m); for ($i = 0; $i < count($m[0]); $i++) { $p = QualifyUnqualifiedLinks($g, $dummy, preg_replace("/\\{(\\\$.*?)\\}/e", "FmtPageName('\$1',\$pagename)", $m[0][$i])); if (strstr($p, $dummy)) { $p = str_replace("{$dummy}/", "{$g}.", $p); $r[] = $m[0][$i][0] == '[' ? MakePageName($pagename, FLRef($p)) : $p; } elseif ($list == 'all') { if (preg_match("/^({$GroupPattern}([\\/.]){$WikiWordPattern})/", $p, $w)) { $r[] = str_replace('/', '.', $w[1]); } elseif (preg_match("/^\\[\\[(.*?)\\]\\]/", $p, $f)) { $l = FLRef($f[1]); if (preg_match("/^[^~!:.\\/]+([.\\/][^.\\/]+)?\$/", $l, $fl)) { $r[] = MakePageName($pagename, $l); } } } } return $r; }