OSDN Git Service

BugTrack/2176 showrss: Fix character encoding issues etc.
[pukiwiki/pukiwiki.git] / plugin / related.inc.php
1 <?php
2 // PukiWiki - Yet another WikiWikiWeb clone
3 // $Id: related.inc.php,v 1.11 2011/01/25 15:01:01 henoheno Exp $
4 // Copyright (C) 2005, 2007 PukiWiki Developers Team
5 // License: GPL v2 or (at your option) any later version
6 //
7 // Related plugin: Show Backlinks for the page
8
9 function plugin_related_convert()
10 {
11         global $vars;
12
13         return make_related($vars['page'], 'p');
14 }
15
16 // Show Backlinks: via related caches for the page
17 function plugin_related_action()
18 {
19         global $vars, $script, $defaultpage, $whatsnew;
20
21         $_page = isset($vars['page']) ? $vars['page'] : '';
22         if ($_page == '') $_page = $defaultpage;
23
24         // Get related from cache
25         $data = links_get_related_db($_page);
26         if (! empty($data)) {
27                 // Hide by array keys (not values)
28                 foreach(array_keys($data) as $page)
29                         if ($page == $whatsnew ||
30                             check_non_list($page))
31                                 unset($data[$page]);
32         }
33
34         // Result
35         $r_word = pagename_urlencode($_page);
36         $s_word = htmlsc($_page);
37         $msg = 'Backlinks for: ' . $s_word;
38         $retval  = '<a href="' . $script . '?' . $r_word . '">' .
39                 'Return to ' . $s_word .'</a><br />'. "\n";
40
41         if (empty($data)) {
42                 $retval .= '<ul><li>No related pages found.</li></ul>' . "\n";  
43         } else {
44                 // Show count($data)?
45                 ksort($data, SORT_STRING);
46                 $retval .= '<ul>' . "\n";
47                 foreach ($data as $page=>$time) {
48                         $r_page  = pagename_urlencode($page);
49                         $s_page  = htmlsc($page);
50                         $passage = get_passage($time);
51                         $retval .= ' <li><a href="' . $script . '?' . $r_page . '">' . $s_page .
52                                 '</a> ' . $passage . '</li>' . "\n";
53                 }
54                 $retval .= '</ul>' . "\n";
55         }
56         return array('msg'=>$msg, 'body'=>$retval);
57 }
58