Revision | af29d8518c40bb432e3bf4398c87f94280e8c380 (tree) |
---|---|
Time | 2004-08-12 21:50:01 |
Author | henoheno <henoheno> |
Commiter | henoheno |
BugTrack/653 Correct when THIS_PAGE_DISPLAY = FALSE and THIS_PAGE_LINK = FALSE.
Cleanup. Simplify. Added spaces.
@@ -2,54 +2,63 @@ | ||
2 | 2 | ///////////////////////////////////////////////// |
3 | 3 | // PukiWiki - Yet another WikiWikiWeb clone. |
4 | 4 | // |
5 | -// $Id: topicpath.inc.php,v 1.2 2004/08/04 11:21:13 henoheno Exp $ | |
6 | -// | |
5 | +// $Id: topicpath.inc.php,v 1.3 2004/08/12 12:50:01 henoheno Exp $ | |
7 | 6 | // topicpath plugin for PukiWiki |
8 | 7 | // available under the GPL |
9 | 8 | |
9 | +// $defaultpageへのリンクも表示するかどうか | |
10 | +// TRUE:表示する FALSE:表示しない. | |
11 | +define('PLUGIN_TOPICPATH_TOP_DISPLAY', TRUE); | |
12 | +// $defaultpageに対するラベル | |
13 | +define('PLUGIN_TOPICPATH_TOP_LABEL', 'Top'); | |
14 | + | |
15 | +// 階層を区切るセパレータ | |
16 | +define('PLUGIN_TOPICPATH_TOP_SEPARATOR', ' / '); | |
10 | 17 | |
11 | -// defaultpageを一番最初に表示するかどうか。TRUE:表示する FALSE:表示しない. | |
12 | -define('PLUGIN_TOPICPATH_TOP_DISPLAY',TRUE); | |
13 | -// $defaultpageに対するラベル | |
14 | -define('PLUGIN_TOPICPATH_TOP_LABEL','Top'); | |
15 | -// 階層を区切るセパレータ | |
16 | -define('PLUGIN_TOPICPATH_TOP_SEPARATOR',' / '); | |
17 | -// 自分のページに対するリンクを表示するかどうか | |
18 | -define('PLUGIN_TOPICPATH_THIS_PAGE_DISPLAY',TRUE); | |
19 | -// 自分のページに対してリンクするかどうか | |
20 | -define('PLUGIN_TOPICPATH_THIS_PAGE_LINK',TRUE); | |
18 | +// そのページ自身を表示するか | |
19 | +define('PLUGIN_TOPICPATH_THIS_PAGE_DISPLAY', TRUE); | |
20 | +// 表示する場合、自分自身を指すリンクを表示するか | |
21 | +define('PLUGIN_TOPICPATH_THIS_PAGE_LINK', TRUE); | |
21 | 22 | |
22 | 23 | function plugin_topicpath_convert() |
23 | 24 | { |
24 | - return '<div>'.plugin_topicpath_inline().'</div>'; | |
25 | + return '<div>' . plugin_topicpath_inline() . '</div>'; | |
25 | 26 | } |
26 | 27 | |
27 | 28 | function plugin_topicpath_inline() |
28 | 29 | { |
29 | - global $script,$vars,$defaultpage; | |
30 | - | |
31 | - $args = func_get_args(); | |
32 | - | |
33 | - $page = $vars['page']; | |
34 | - | |
35 | - if ($page == $defaultpage) { return ''; } | |
36 | - | |
37 | - $topic_path = array(); | |
30 | + global $script, $vars, $defaultpage; | |
31 | + | |
32 | + // $args = func_get_args(); | |
33 | + | |
34 | + $page = isset($vars['page']) ? $vars['page'] : ''; | |
35 | + if ($page == '' || $page == $defaultpage) return ''; | |
36 | + | |
38 | 37 | $parts = explode('/', $page); |
39 | 38 | |
40 | - if (!PLUGIN_TOPICPATH_THIS_PAGE_DISPLAY) { array_pop($parts); } | |
39 | + if (PLUGIN_TOPICPATH_THIS_PAGE_DISPLAY) { | |
40 | + $b_link = PLUGIN_TOPICPATH_THIS_PAGE_LINK; | |
41 | + } else { | |
42 | + array_pop($parts); // Remove itself | |
43 | + $b_link = TRUE; // Link to the parent | |
44 | + } | |
41 | 45 | |
42 | - $b_link = PLUGIN_TOPICPATH_THIS_PAGE_LINK; | |
43 | - while (count($parts)) { | |
44 | - $landing = join('/', $parts); | |
45 | - $element = array_pop($parts); | |
46 | - $topic_path[] = $b_link ? "<a href=\"$script?".rawurlencode($landing)."\">$element</a>" : htmlspecialchars($element); | |
47 | - $b_link = TRUE; | |
46 | + $topic_path = array(); | |
47 | + while (! empty($parts)) { | |
48 | + $landing = rawurlencode(join('/', $parts)); | |
49 | + $element = htmlspecialchars(array_pop($parts)); | |
50 | + if ($b_link) { | |
51 | + $topic_path[] = "<a href=\"$script?$landing\">$element</a>"; | |
52 | + } else { | |
53 | + $topic_path[] = $element; | |
54 | + $b_link = TRUE; // Maybe reacheable once at a time | |
55 | + } | |
48 | 56 | } |
49 | - if (PLUGIN_TOPICPATH_TOP_DISPLAY) | |
50 | - { | |
51 | - $topic_path[] = make_pagelink($defaultpage,PLUGIN_TOPICPATH_TOP_LABEL); | |
57 | + | |
58 | + if (PLUGIN_TOPICPATH_TOP_DISPLAY) { | |
59 | + $topic_path[] = make_pagelink($defaultpage, PLUGIN_TOPICPATH_TOP_LABEL); | |
52 | 60 | } |
61 | + | |
53 | 62 | return join(PLUGIN_TOPICPATH_TOP_SEPARATOR, array_reverse($topic_path)); |
54 | 63 | } |
55 | 64 | ?> |