OSDN Git Service

BugTrack/2470 Lengthen Footnote title max-length to 100 chars
[pukiwiki/pukiwiki.git] / plugin / yetlist.inc.php
index 7440fb4..a12c142 100644 (file)
@@ -1,66 +1,71 @@
 <?php
 // PukiWiki - Yet another WikiWikiWeb clone
-// $Id: yetlist.inc.php,v 1.24 2006/05/05 02:32:52 henoheno Exp $
-// Copyright (C) 2001-2005 PukiWiki Developers Team
+// yetlist.inc.php
+// Copyright 2001-2017 PukiWiki Development Team
 // License: GPL v2 or (at your option) any later version
 //
 // Yet list plugin - Show a list of dangling links (not yet created)
 
 function plugin_yetlist_action()
 {
-       global $_title_yetlist, $_err_notexisto, $_symbol_noexists, $non_list;
+       global $_title_yetlist, $_err_notexist, $_symbol_noexists, $non_list;
+       global $whatsdeleted;
 
        $retval = array('msg' => $_title_yetlist, 'body' => '');
 
        // Diff
-       $pages = get_existpages(CACHE_DIR, '.ref');
-       $pages = array_diff($pages, preg_grep('/' . $non_list . '/S', $pages), get_existpages());
-       asort($pages, SORT_STRING);
+       $pages = array_diff(get_existpages(CACHE_DIR, '.ref'), get_existpages());
+       if (empty($pages)) {
+               $retval['body'] = $_err_notexist;
+               return $retval;
+       }
 
-       // Load .ref files
-       $refer = array();
+       $empty = TRUE;
+
+       // Load .ref files and Output
+       $script      = get_base_uri();
+       $refer_regex = '/' . $non_list . '|^' . preg_quote($whatsdeleted, '/') . '$/S';
+       asort($pages, SORT_STRING);
        foreach ($pages as $file=>$page) {
+               $refer = array();
                foreach (file(CACHE_DIR . $file) as $line) {
                        list($_page) = explode("\t", rtrim($line));
-                       $refer[$page][] = $_page;
+                       $refer[] = $_page;
                }
-               if (isset($refer[$page])) {
-                       $refer[$page] = array_unique($refer[$page]);
-                       sort($refer[$page], SORT_STRING);
-               }
-       }
-       if (empty($refer)) {
-               $retval['body'] = $_err_notexist;
-               return $retval;
-       }
+               // Diff
+               $refer = array_diff($refer, preg_grep($refer_regex, $refer));
+               if (! empty($refer)) {
+                       $empty = FALSE;
+                       $refer = array_unique($refer);
+                       sort($refer, SORT_STRING);
 
-       // Output
-       $script = get_script_uri();
-       foreach ($refer as $page=>$refs) {
-               $r_page = rawurlencode($page);
-               $s_page = htmlspecialchars($page);
+                       $r_refer = '';
+                       $link_refs = array();
+                       foreach ($refer as $_refer) {
+                               $r_refer = pagename_urlencode($_refer);
+                               $link_refs[] = '<a href="' . get_page_uri($_refer) . '">' .
+                                       htmlsc($_refer) . '</a>';
+                       }
+                       $link_ref = join(' ', $link_refs);
+                       unset($link_refs);
 
-               $r_refer = '';
-               $link_refs = array();
-               foreach ($refs as $_refer) {
-                       $r_refer = rawurlencode($_refer);
-                       $link_refs[] = '<a href="' . $script . '?' . $r_refer . '">' .
-                               htmlspecialchars($_refer) . '</a>';
+                       $s_page = htmlsc($page);
+                       if (PKWK_READONLY) {
+                               $href = $s_page;
+                       } else {
+                               // Dangling link
+                               $href = '<span class="noexists">' . $s_page . '<a href="' .
+                                       $script . '?cmd=edit&amp;page=' . rawurlencode($page) .
+                                       '&amp;refer=' . $r_refer . '">' . $_symbol_noexists .
+                                       '</a></span>';
+                       }
+                       $retval['body'] .= '<li>' . $href . ' <em>(' . $link_ref . ')</em></li>' . "\n";
                }
-               $link_ref = join(' ', $link_refs);
+       }
 
-               if (PKWK_READONLY) {
-                       $href = $s_page;
-               } else {
-                       // Show edit link
-                       // $r_refer is the last one if there're multiple refer pages
-                       $href = '<span class="noexists">' . $s_page . '<a href="' .
-                               $script . '?cmd=edit&amp;page=' . $r_page .
-                               '&amp;refer=' . $r_refer . '">' . $_symbol_noexists .
-                               '</a></span>';
-               }
-               $retval['body'] .= '<li>' . $href . ' <em>(' . $link_ref . ')</em></li>' . "\n";
-               unset($refer[$page]);
+       if ($empty) {
+               $retval['body'] = $_err_notexist;
+               return $retval;
        }
 
        if ($retval['body'] != '')
@@ -68,4 +73,3 @@ function plugin_yetlist_action()
 
        return $retval;
 }
-?>