2 // PukiWiki - Yet another WikiWikiWeb clone
3 // $Id: yetlist.inc.php,v 1.24 2006/05/05 02:32:52 henoheno Exp $
4 // Copyright (C) 2001-2005 PukiWiki Developers Team
5 // License: GPL v2 or (at your option) any later version
7 // Yet list plugin - Show a list of dangling links (not yet created)
9 function plugin_yetlist_action()
11 global $_title_yetlist, $_err_notexisto, $_symbol_noexists, $non_list;
13 $retval = array('msg' => $_title_yetlist, 'body' => '');
16 $pages = get_existpages(CACHE_DIR, '.ref');
17 $pages = array_diff($pages, preg_grep('/' . $non_list . '/S', $pages), get_existpages());
18 asort($pages, SORT_STRING);
22 foreach ($pages as $file=>$page) {
23 foreach (file(CACHE_DIR . $file) as $line) {
24 list($_page) = explode("\t", rtrim($line));
25 $refer[$page][] = $_page;
27 if (isset($refer[$page])) {
28 $refer[$page] = array_unique($refer[$page]);
29 sort($refer[$page], SORT_STRING);
33 $retval['body'] = $_err_notexist;
38 $script = get_script_uri();
39 foreach ($refer as $page=>$refs) {
40 $r_page = rawurlencode($page);
41 $s_page = htmlspecialchars($page);
45 foreach ($refs as $_refer) {
46 $r_refer = rawurlencode($_refer);
47 $link_refs[] = '<a href="' . $script . '?' . $r_refer . '">' .
48 htmlspecialchars($_refer) . '</a>';
50 $link_ref = join(' ', $link_refs);
56 // $r_refer is the last one if there're multiple refer pages
57 $href = '<span class="noexists">' . $s_page . '<a href="' .
58 $script . '?cmd=edit&page=' . $r_page .
59 '&refer=' . $r_refer . '">' . $_symbol_noexists .
62 $retval['body'] .= '<li>' . $href . ' <em>(' . $link_ref . ')</em></li>' . "\n";
66 if ($retval['body'] != '')
67 $retval['body'] = '<ul>' . "\n" . $retval['body'] . '</ul>' . "\n";