OSDN Git Service

9c04f6cb6f950c60172d21f5df5de2becfc32129
[pukiwiki/pukiwiki.git] / plugin / yetlist.inc.php
1 <?php
2 /////////////////////////////////////////////////
3 // PukiWiki - Yet another WikiWikiWeb clone.
4 //
5 // $Id: yetlist.inc.php,v 1.15 2003/03/15 11:39:04 panda Exp $
6 //
7
8 function plugin_yetlist_init()
9 {
10         if (LANG == 'ja')
11         {
12                 $messages = array(
13                         '_title_yetlist'    => '̤ºîÀ®¤Î¥Ú¡¼¥¸°ìÍ÷'
14                 );
15         }
16         else
17         {
18                 $messages = array(
19                         '_title_yetlist'    => 'List of pages, are not made yet'
20                 );
21         }
22         set_plugin_messages($messages);
23 }
24 function plugin_yetlist_action()
25 {
26         global $script;
27         global $_title_yetlist;
28         
29         $ret['msg'] = $_title_yetlist;
30         $ret['body'] = '';
31         
32         $refer = array();
33         $exists = get_existpages();
34         if (defined('LINK_DB'))
35         {
36                 $sql = <<<EOD
37 SELECT DISTINCT page.name,refpage.name AS refer
38  FROM page
39   LEFT JOIN link ON page.id = ref_id
40    LEFT JOIN page AS refpage ON page_id = refpage.id
41     WHERE page.lastmod=0;
42 EOD;
43                 $rows = db_query($sql);
44                 foreach ($rows as $row)
45                 {
46                         $refer[$row['name']][] = $row['refer'];
47                 }
48         }
49         else
50         {
51                 $pages = array_diff(get_existpages(CACHE_DIR,'.ref'),get_existpages());
52                 foreach ($pages as $page)
53                 {
54                         foreach (file(CACHE_DIR.encode($page).'.ref') as $line)
55                         {
56                                 list($_page) = explode("\t",$line);
57                                 $refer[$page][] = $_page;
58                         }
59                 }
60         }
61         
62         if (count($refer) == 0)
63         {
64                 return $ret;
65         }
66         
67         ksort($refer,SORT_STRING);
68         
69         foreach($refer as $page=>$refs)
70         {
71                 $r_page = rawurlencode($page);
72                 $s_page = htmlspecialchars($page);
73                 
74                 $link_refs = array();
75                 foreach(array_unique($refs) as $_refer)
76                 {
77                         $r_refer = rawurlencode($_refer);
78                         $s_refer = htmlspecialchars($_refer);
79                         
80                         $link_refs[] = "<a href=\"$script?$r_refer\">$s_refer</a>";
81                 }
82                 $link_ref = join(' ',$link_refs);
83                 // »²¾È¸µ¥Ú¡¼¥¸¤¬Ê£¿ô¤¢¤Ã¤¿¾ì¹ç¡¢refer¤ÏºÇ¸å¤Î¥Ú¡¼¥¸¤ò»Ø¤¹(¤¤¤¤¤Î¤«¤Ê)
84                 $ret['body'] .= "<li><a href=\"$script?cmd=edit&amp;page=$r_page&amp;refer=$r_refer\">$s_page</a> <em>($link_ref)</em></li>\n";
85         }
86         
87         if ($ret['body'] != '')
88         {
89                 $ret['body'] = "<ul>\n{$ret['body']}</ul>\n";
90         }
91         
92         return $ret;
93 }
94 ?>