OSDN Git Service

BugTrack/653 Correct when THIS_PAGE_DISPLAY = FALSE and THIS_PAGE_LINK = FALSE.
authorhenoheno <henoheno>
Thu, 12 Aug 2004 12:50:01 +0000 (21:50 +0900)
committerhenoheno <henoheno>
Thu, 12 Aug 2004 12:50:01 +0000 (21:50 +0900)
Cleanup. Simplify. Added spaces.

plugin/topicpath.inc.php

index 688425c..3c01d4e 100644 (file)
@@ -2,54 +2,63 @@
 /////////////////////////////////////////////////
 // PukiWiki - Yet another WikiWikiWeb clone.
 //
-// $Id: topicpath.inc.php,v 1.2 2004/08/04 11:21:13 henoheno Exp $
-//
+// $Id: topicpath.inc.php,v 1.3 2004/08/12 12:50:01 henoheno Exp $
 // topicpath plugin for PukiWiki
 //   available under the GPL
 
+// $defaultpage¤Ø¤Î¥ê¥ó¥¯¤âɽ¼¨¤¹¤ë¤«¤É¤¦¤«
+// TRUE:ɽ¼¨¤¹¤ë FALSE:ɽ¼¨¤·¤Ê¤¤.
+define('PLUGIN_TOPICPATH_TOP_DISPLAY', TRUE);
+// $defaultpage¤ËÂФ¹¤ë¥é¥Ù¥ë
+define('PLUGIN_TOPICPATH_TOP_LABEL', 'Top');
+
+// ³¬Áؤò¶èÀڤ륻¥Ñ¥ì¡¼¥¿
+define('PLUGIN_TOPICPATH_TOP_SEPARATOR', ' / ');
 
-//     defaultpage¤ò°ìÈֺǽé¤Ëɽ¼¨¤¹¤ë¤«¤É¤¦¤«¡£TRUE:ɽ¼¨¤¹¤ë FALSE:ɽ¼¨¤·¤Ê¤¤.
-define('PLUGIN_TOPICPATH_TOP_DISPLAY',TRUE);
-//     $defaultpage¤ËÂФ¹¤ë¥é¥Ù¥ë
-define('PLUGIN_TOPICPATH_TOP_LABEL','Top');
-//     ³¬Áؤò¶èÀڤ륻¥Ñ¥ì¡¼¥¿
-define('PLUGIN_TOPICPATH_TOP_SEPARATOR',' / ');
-//     ¼«Ê¬¤Î¥Ú¡¼¥¸¤ËÂФ¹¤ë¥ê¥ó¥¯¤òɽ¼¨¤¹¤ë¤«¤É¤¦¤«
-define('PLUGIN_TOPICPATH_THIS_PAGE_DISPLAY',TRUE);
-//     ¼«Ê¬¤Î¥Ú¡¼¥¸¤ËÂФ·¤Æ¥ê¥ó¥¯¤¹¤ë¤«¤É¤¦¤«
-define('PLUGIN_TOPICPATH_THIS_PAGE_LINK',TRUE);
+// ¤½¤Î¥Ú¡¼¥¸¼«¿È¤òɽ¼¨¤¹¤ë¤«
+define('PLUGIN_TOPICPATH_THIS_PAGE_DISPLAY', TRUE);
+// É½¼¨¤¹¤ë¾ì¹ç¡¢¼«Ê¬¼«¿È¤ò»Ø¤¹¥ê¥ó¥¯¤òɽ¼¨¤¹¤ë¤«
+define('PLUGIN_TOPICPATH_THIS_PAGE_LINK', TRUE);
 
 function plugin_topicpath_convert()
 {
-       return '<div>'.plugin_topicpath_inline().'</div>';
+       return '<div>' . plugin_topicpath_inline() . '</div>';
 }
 
 function plugin_topicpath_inline()
 {
-       global $script,$vars,$defaultpage;
-       
-       $args = func_get_args();
-       
-       $page = $vars['page'];
-       
-       if ($page == $defaultpage) { return ''; }
-       
-       $topic_path = array();
+       global $script, $vars, $defaultpage;
+
+       // $args = func_get_args();
+
+       $page = isset($vars['page']) ? $vars['page'] : '';
+       if ($page == '' || $page == $defaultpage) return '';
+
        $parts = explode('/', $page);
 
-       if (!PLUGIN_TOPICPATH_THIS_PAGE_DISPLAY) { array_pop($parts); }
+       if (PLUGIN_TOPICPATH_THIS_PAGE_DISPLAY) {
+               $b_link = PLUGIN_TOPICPATH_THIS_PAGE_LINK;
+       } else {
+               array_pop($parts); // Remove itself
+               $b_link = TRUE;    // Link to the parent
+       }
 
-       $b_link = PLUGIN_TOPICPATH_THIS_PAGE_LINK;
-       while (count($parts)) {
-               $landing = join('/', $parts);
-               $element = array_pop($parts);
-               $topic_path[] = $b_link ? "<a href=\"$script?".rawurlencode($landing)."\">$element</a>" : htmlspecialchars($element);
-               $b_link = TRUE;
+       $topic_path = array();
+       while (! empty($parts)) {
+               $landing = rawurlencode(join('/', $parts));
+               $element = htmlspecialchars(array_pop($parts));
+               if ($b_link)  {
+                       $topic_path[] = "<a href=\"$script?$landing\">$element</a>";
+               } else {
+                       $topic_path[] = $element;
+                       $b_link = TRUE; // Maybe reacheable once at a time
+               }
        }
-       if (PLUGIN_TOPICPATH_TOP_DISPLAY)
-       {
-               $topic_path[] = make_pagelink($defaultpage,PLUGIN_TOPICPATH_TOP_LABEL);
+
+       if (PLUGIN_TOPICPATH_TOP_DISPLAY) {
+               $topic_path[] = make_pagelink($defaultpage, PLUGIN_TOPICPATH_TOP_LABEL);
        }
+
        return join(PLUGIN_TOPICPATH_TOP_SEPARATOR, array_reverse($topic_path));
 }
 ?>