OSDN Git Service

BugTrack/664 Should replace #img(,clear) => #clear
[pukiwiki/pukiwiki.git] / plugin / navi.inc.php
index 107b809..a418b5e 100644 (file)
@@ -2,7 +2,7 @@
 /////////////////////////////////////////////////
 // PukiWiki - Yet another WikiWikiWeb clone.
 //
-// $Id: navi.inc.php,v 1.9 2003/04/03 01:38:30 panda Exp $
+// $Id: navi.inc.php,v 1.16 2004/07/31 03:09:20 henoheno Exp $
 //
 
 /*
@@ -37,28 +37,15 @@ DobBook
 define('NAVI_EXCLUDE_PATTERN','');
 #define('NAVI_EXCLUDE_PATTERN','/\/_/');
 
-function plugin_navi_init()
-{
-       $messages = array(
-               '_navi_messages'=>array(
-                       'msg_prev'=>'Prev',
-                       'msg_next'=>'Next',
-                       'msg_up'  =>'Up',
-                       'msg_home'  =>'Home'
-               )
-       );
-       set_plugin_messages($messages);
-}
+// <link>¥¿¥°¤ò½ÐÎϤ¹¤ë (TRUE|FALSE)
+define('NAVI_LINK_TAGS',FALSE);
+
 function plugin_navi_convert()
 {
-       global $vars, $script;
-       global $_navi_messages;
-       static $navi;
-       
-       if (!isset($navi))
-       {
-               $navi = array();
-       }
+       global $vars, $script, $head_tags;
+       global $_navi_prev,$_navi_next,$_navi_up,$_navi_home;
+       static $navi = array();
+
        $home = $current = $vars['page'];
        if (func_num_args())
        {
@@ -66,7 +53,7 @@ function plugin_navi_convert()
                $home = strip_bracket($home);
        }
        $is_home = ($home == $current);
-       
+
        // ½é²óFALSE,2²óÌܰʹßTRUE
        $footer = array_key_exists($home,$navi);
        if (!$footer)
@@ -80,12 +67,12 @@ function plugin_navi_convert()
                        'home'=>'',
                        'home1'=>'',
                );
-               
+
                $pages = preg_grep('/^'.preg_quote($home,'/').'($|\/)/',get_existpages());
                // preg_grep(,,PREG_GREP_INVERT)¤¬»È¤¨¤ì¤Ð¡Ä
                if (NAVI_EXCLUDE_PATTERN != '')
                {
-                       $pages = array_diff($pages,preg_grep(NAVI_EXCLUDE_PATTERN,$page));
+                       $pages = array_diff($pages,preg_grep(NAVI_EXCLUDE_PATTERN,$pages));
                }
                $pages[] = $current; // ÈÖʼ :)
                $pages = array_unique($pages);
@@ -100,25 +87,41 @@ function plugin_navi_convert()
                        $prev = $page;
                }
                $next = current($pages);
-               
+
                $pos = strrpos($current, '/');
+               $up = '';
                if ($pos > 0)
                {
                        $up = substr($current, 0, $pos);
-                       $navi[$home]['up'] = make_pagelink($up,$_navi_messages['msg_up']);
+                       $navi[$home]['up'] = make_pagelink($up,$_navi_up);
                }
                if (!$is_home)
                {
                        $navi[$home]['prev'] = make_pagelink($prev);
-                       $navi[$home]['prev1'] = make_pagelink($prev,$_navi_messages['msg_prev']);
+                       $navi[$home]['prev1'] = make_pagelink($prev,$_navi_prev);
                }
                if ($next != '')
                {
                        $navi[$home]['next'] = make_pagelink($next);
-                       $navi[$home]['next1'] = make_pagelink($next,$_navi_messages['msg_next']);
+                       $navi[$home]['next1'] = make_pagelink($next,$_navi_next);
                }
                $navi[$home]['home'] = make_pagelink($home);
-               $navi[$home]['home1'] = make_pagelink($home,$_navi_messages['msg_home']);
+               $navi[$home]['home1'] = make_pagelink($home,$_navi_home);
+
+               // <link>¥¿¥°¤òÀ¸À®¤¹¤ë : start next prev(previous) parent(up)
+               // Ì¤Âбþ : contents(toc) search first(begin) last(end)
+               if (NAVI_LINK_TAGS)
+               {
+                       foreach (array('start'=>$home,'next'=>$next,'prev'=>$prev,'up'=>$up) as $rel=>$_page)
+                       {
+                               if ($_page != '')
+                               {
+                                       $s_page = htmlspecialchars($_page);
+                                       $r_page = rawurlencode($_page);
+                                       $head_tags[] = " <link rel=\"$rel\" href=\"$script?$r_page\" title=\"$s_page\" />";
+                               }
+                       }
+               }
        }
 
        $ret = '';