Commit MetaInfo

修订版518c03797d322c24e3f6756a086756b658dd8eb4 (tree)
时间2020-03-10 22:49:52
作者umorigu <umorigu@gmai...>
Commiterumorigu

Log Message

BugTrack/430 RightBar - Secoud MenuBar (3 columns layout)

更改概述

差异

--- /dev/null
+++ b/plugin/rightbar.inc.php
@@ -0,0 +1,61 @@
1+<?php
2+// PukiWiki - Yet another WikiWikiWeb clone.
3+// rightbar.inc.php
4+// Copyright 2020 PukiWiki Development Team
5+// License: GPL v2 or (at your option) any later version
6+//
7+// RightBar plugin
8+
9+// Use Submenu if true
10+define('RIGHTBAR_ENABLE_SUBMENU', FALSE);
11+
12+// Name of Submenu
13+define('RIGHTBAR_SUBMENUBAR', 'RightBar');
14+
15+function plugin_rightbar_convert()
16+{
17+ global $vars, $rightbar_name;
18+ static $menu = NULL;
19+
20+ $num = func_num_args();
21+ if ($num > 0) {
22+ // Try to change default 'RightBar' page name (only)
23+ if ($num > 1) {
24+ return '#rightbar(): Zero or One argument needed';
25+ }
26+ if ($menu !== NULL) {
27+ return '#rightbar(): Already set: ' . htmlsc($menu);
28+ }
29+ $args = func_get_args();
30+ if (! is_page($args[0])) {
31+ return '#rightbar(): No such page: ' . htmlsc($args[0]);
32+ } else {
33+ $menu = $args[0]; // Set
34+ return '';
35+ }
36+ }
37+ // Output rightbar page data
38+ $page = ($menu === NULL) ? $rightbar_name : $menu;
39+ if (RIGHTBAR_ENABLE_SUBMENU) {
40+ $path = explode('/', strip_bracket($vars['page']));
41+ while(! empty($path)) {
42+ $_page = join('/', $path) . '/' . RIGHTBAR_SUBMENUBAR;
43+ if (is_page($_page)) {
44+ $page = $_page;
45+ break;
46+ }
47+ array_pop($path);
48+ }
49+ }
50+ if (! is_page($page)) {
51+ return '';
52+ } else if ($vars['page'] === $page) {
53+ return '<!-- #rightbar(): You already view ' . htmlsc($page) . ' -->';
54+ } else if (!is_page_readable($page)) {
55+ return '#rightbar(): ' . htmlsc($page) . ' is not readable';
56+ } else {
57+ // Cut fixed anchors
58+ $menutext = preg_replace('/^(\*{1,3}.*)\[#[A-Za-z][\w-]+\](.*)$/m', '$1$2', get_source($page));
59+ return convert_html($menutext);
60+ }
61+}
--- a/pukiwiki.ini.php
+++ b/pukiwiki.ini.php
@@ -131,6 +131,7 @@ $whatsdeleted = 'RecentDeleted'; // Removeed page list
131131 $interwiki = 'InterWikiName'; // Set InterWiki definition here
132132 $aliaspage = 'AutoAliasName'; // Set AutoAlias definition here
133133 $menubar = 'MenuBar'; // Menu
134+$rightbar_name = 'RightBar'; // RightBar
134135
135136 /////////////////////////////////////////////////
136137 // Change default Document Type Definition
--- a/skin/pukiwiki.css
+++ b/skin/pukiwiki.css
@@ -391,6 +391,27 @@ div#menubar h4 {
391391 font-size:110%;
392392 }
393393
394+#rightbar {
395+ min-width:14em;
396+ max-width:14em;
397+ padding:0;
398+ margin:4px;
399+ font-size:90%;
400+ overflow:hidden;
401+ order:3;
402+ flex-grow:0;
403+}
404+#rightbar ul {
405+ margin:0 0 0 1em;
406+ padding:0 0 0 .5em;
407+}
408+#rightbar ul li {
409+ line-height:110%;
410+}
411+#rightbar h4 {
412+ font-size:110%;
413+}
414+
394415 div#body {
395416 padding:0;
396417 margin:0 0 0 .5em;
@@ -712,6 +733,12 @@ tr.bugtrack_state_undef td {
712733 font-size:100%;
713734 order:2;
714735 }
736+ div#rightbar {
737+ width:auto;
738+ max-width:none;
739+ font-size:100%;
740+ order:3;
741+ }
715742 div#body {
716743 order:1;
717744 }
@@ -752,6 +779,7 @@ tr.bugtrack_state_undef td {
752779 img#logo,
753780 div#navigator,
754781 div#menubar,
782+ div#rightbar,
755783 div#related,
756784 div#attach,
757785 div#toolbar {
--- a/skin/pukiwiki.skin.php
+++ b/skin/pukiwiki.skin.php
@@ -46,7 +46,11 @@ $rw = ! PKWK_READONLY;
4646
4747 // MenuBar
4848 $menu = arg_check('read') && exist_plugin_convert('menu') ? do_plugin_convert('menu') : FALSE;
49-
49+// RightBar
50+$rightbar = FALSE;
51+if (arg_check('read') && exist_plugin_convert('rightbar')) {
52+ $rightbar = do_plugin_convert('rightbar');
53+}
5054 // ------------------------------------------------------------
5155 // Output
5256
@@ -159,6 +163,9 @@ function _navigator($key, $value = '', $javascript = ''){
159163 <?php if ($menu !== FALSE) { ?>
160164 <div id="menubar"><?php echo $menu ?></div>
161165 <?php } ?>
166+<?php if ($rightbar) { ?>
167+ <div id="rightbar"><?php echo $rightbar ?></div>
168+<?php } ?>
162169 </div>
163170
164171 <?php if ($notes != '') { ?>
Show on old repository browser