OSDN Git Service

One-path reduces memories, KISS
authorhenoheno <henoheno>
Fri, 5 May 2006 03:16:38 +0000 (12:16 +0900)
committerhenoheno <henoheno>
Fri, 5 May 2006 03:16:38 +0000 (12:16 +0900)
plugin/yetlist.inc.php

index 4c0bd89..ac4588f 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 // PukiWiki - Yet another WikiWikiWeb clone
-// $Id: yetlist.inc.php,v 1.25 2006/05/05 02:52:46 henoheno Exp $
-// Copyright (C) 2001-2005 PukiWiki Developers Team
+// $Id: yetlist.inc.php,v 1.26 2006/05/05 03:16:38 henoheno Exp $
+// Copyright (C) 2001-2006 PukiWiki Developers Team
 // License: GPL v2 or (at your option) any later version
 //
 // Yet list plugin - Show a list of dangling links (not yet created)
@@ -15,52 +15,46 @@ function plugin_yetlist_action()
        // Diff
        $pages = get_existpages(CACHE_DIR, '.ref');
        $pages = array_diff($pages, preg_grep('/' . $non_list . '/S', $pages), get_existpages());
-       asort($pages, SORT_STRING);
-
-       // Load .ref files
-       $refer = array();
-       foreach ($pages as $file=>$page) {
-               foreach (file(CACHE_DIR . $file) as $line) {
-                       list($_page) = explode("\t", rtrim($line));
-                       $refer[$page][] = $_page;
-               }
-               if (isset($refer[$page])) {
-                       $refer[$page] = array_unique($refer[$page]);
-                       sort($refer[$page], SORT_STRING);
-               }
-       }
-       if (empty($refer)) {
+       if (empty($pages)) {
                $retval['body'] = $_err_notexist;
                return $retval;
        }
 
-       // Output
+       // Load .ref files and Output
        $script = get_script_uri();
-       foreach ($refer as $page=>$refs) {
-               $r_page = rawurlencode($page);
-               $s_page = htmlspecialchars($page);
-
-               $r_refer = '';
-               $link_refs = array();
-               foreach ($refs as $_refer) {
-                       $r_refer = rawurlencode($_refer);
-                       $link_refs[] = '<a href="' . $script . '?' . $r_refer . '">' .
-                               htmlspecialchars($_refer) . '</a>';
+       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;
                }
-               $link_ref = join(' ', $link_refs);
+               if (! empty($refer)) {
+                       $refer = array_unique($refer);
+                       sort($refer, SORT_STRING);
+
+                       $r_refer = '';
+                       $link_refs = array();
+                       foreach ($refer as $_refer) {
+                               $r_refer = rawurlencode($_refer);
+                               $link_refs[] = '<a href="' . $script . '?' . $r_refer . '">' .
+                                       htmlspecialchars($_refer) . '</a>';
+                       }
+                       $link_ref = join(' ', $link_refs);
+                       unset($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>';
+                       $s_page = htmlspecialchars($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";
                }
-               $retval['body'] .= '<li>' . $href . ' <em>(' . $link_ref . ')</em></li>' . "\n";
-               unset($refer[$page]);
        }
 
        if ($retval['body'] != '')