OSDN Git Service

Cleanup [part 1]: Rename a define.
[pukiwiki/pukiwiki.git] / plugin / menu.inc.php
index 83d8fd5..0a92602 100644 (file)
@@ -1,47 +1,60 @@
-<?php\r
-/////////////////////////////////////////////////\r
-// PukiWiki - Yet another WikiWikiWeb clone.\r
-//\r
-// $Id: menu.inc.php,v 1.1 2003/07/14 04:27:46 arino Exp $\r
-//\r
-\r
-// ¥µ¥Ö¥á¥Ë¥å¡¼¤ò»ÈÍѤ¹¤ë\r
-define('MENU_ENABLE_SUBMENU',FALSE);\r
-\r
-function plugin_menu_convert()\r
-{\r
-       global $script,$vars,$menubar;\r
-       static $menu = NULL;\r
-       \r
-       if (func_num_args())\r
-       {\r
-               $args = func_get_args();\r
-               if (is_page($args[0]))\r
-               {\r
-                       $menu = $args[0];\r
-               }\r
-               return '';\r
-       }\r
-       \r
-       $page = ($menu === NULL) ? $menubar : $menu; \r
-       if (MENU_ENABLE_SUBMENU)\r
-       {\r
-               $path = explode('/',strip_bracket($vars['page']));\r
-               while(count($path))\r
-               {\r
-                       $_page = join('/',$path).'/MenuBar';\r
-                       if (is_page($_page))\r
-                       {\r
-                               $page = $_page;\r
-                               break;\r
-                       }\r
-                       array_pop($path);\r
-               }\r
-       }\r
-       if (!is_page($page))\r
-       {\r
-               return '';\r
-       }\r
-       return preg_replace('/<ul[^>]*>/','<ul>',convert_html(get_source($page)));\r
-}\r
-?>\r
+<?php
+/////////////////////////////////////////////////
+// PukiWiki - Yet another WikiWikiWeb clone.
+//
+// $Id: menu.inc.php,v 1.8 2004/11/27 12:23:02 henoheno Exp $
+//
+
+// ¥µ¥Ö¥á¥Ë¥å¡¼¤ò»ÈÍѤ¹¤ë
+define('MENU_ENABLE_SUBMENU', FALSE);
+
+// ¥µ¥Ö¥á¥Ë¥å¡¼¤Î̾¾Î
+define('MENU_SUBMENUBAR', 'MenuBar');
+
+function plugin_menu_convert()
+{
+       global $vars, $menubar;
+       static $menu = NULL;
+
+       $num = func_num_args();
+       if ($num > 0) {
+               // Try to change default 'MenuBar' page name (only)
+               if ($num > 1)       return '#menu(): Zero or One argument needed';
+               if ($menu !== NULL) return '#menu(): Already set: ' . htmlspecialchars($menu);
+               $args = func_get_args();
+               if (! is_page($args[0])) {
+                       return '#menu(): No such page: ' . htmlspecialchars($args[0]);
+               } else {
+                       $menu = $args[0]; // Set
+                       return '';
+               }
+
+       } else {
+               // Output menubar page data
+               $page = ($menu === NULL) ? $menubar : $menu;
+
+               if (MENU_ENABLE_SUBMENU) {
+                       $path = explode('/', strip_bracket($vars['page']));
+                       while(! empty($path)) {
+                               $_page = join('/', $path) . '/' . MENU_SUBMENUBAR;
+                               if (is_page($_page)) {
+                                       $page = $_page;
+                                       break;
+                               }
+                               array_pop($path);
+                       }
+               }
+
+               if (! is_page($page)) {
+                       return '';
+               } else if ($vars['page'] == $page) {
+                       return '<!-- #menu(): You already view ' . htmlspecialchars($page) . ' -->';
+               } else {
+                       // Cut fixed anchors
+                       $menutext = preg_replace('/^(\*{1,3}.*)\[#[A-Za-z][\w-]+\](.*)$/m', '$1$2', get_source($page));
+
+                       return preg_replace('/<ul[^>]*>/', '<ul>', convert_html($menutext));  
+               }
+       }
+}
+?>