<?php
/*
-$Id: ls2.inc.php,v 1.8 2003/03/02 08:56:51 panda Exp $
+$Id: ls2.inc.php,v 1.9 2003/03/30 03:51:40 panda Exp $
*¥×¥é¥°¥¤¥ó ls2
ÇÛ²¼¤Î¥Ú¡¼¥¸¤Î¸«½Ð¤·(*,**,***)¤Î°ìÍ÷¤òɽ¼¨¤¹¤ë
action¥×¥é¥°¥¤¥ó¤ò¸Æ¤Ó½Ð¤¹¥ê¥ó¥¯¤òɽ¼¨
-reverse~
¥Ú¡¼¥¸¤Îʤӽç¤òȿž¤·¡¢¹ß½ç¤Ë¤¹¤ë
+-compact~
+ ¸«½Ð¤·¥ì¥Ù¥ë¤òÄ´À°¤¹¤ë
+ LS2_LIST_COMPACT¤¬TRUE¤Î»þ¤Ï̵¸ú(ÊѲ½¤·¤Ê¤¤)
*/
//¸«½Ð¤·¥¢¥ó¥«¡¼¤Î³«»ÏÈÖ¹æ
define('LS2_ANCHOR_ORIGIN',0);
-function plugin_ls2_init() {
+//¸«½Ð¤·¥ì¥Ù¥ë¤òÄ´À°¤¹¤ë(¥Ç¥Õ¥©¥ë¥ÈÃÍ)
+define('LS2_LIST_COMPACT',FALSE);
+
+function plugin_ls2_init()
+{
$messages = array('_ls2_messages'=>array(
'err_nopages' => '<p>\'$1\' ¤Ë¤Ï¡¢²¼°ÌÁؤΥڡ¼¥¸¤¬¤¢¤ê¤Þ¤»¤ó¡£</p>',
'msg_title' => '\'$1\'¤Ç»Ï¤Þ¤ë¥Ú¡¼¥¸¤Î°ìÍ÷',
));
set_plugin_messages($messages);
}
-function plugin_ls2_action() {
+function plugin_ls2_action()
+{
global $vars;
global $_ls2_messages;
$params = array();
- foreach (array('title','include','reverse') as $key) {
+ foreach (array('title','include','reverse') as $key)
+ {
$params[$key] = array_key_exists($key,$vars);
}
$prefix = array_key_exists('prefix',$vars) ? $vars['prefix'] : '';
global $_ls2_messages;
$prefix = '';
- if (func_num_args()) {
+ if (func_num_args())
+ {
$args = func_get_args();
$prefix = array_shift($args);
}
- else {
+ else
+ {
$args = array();
}
- if ($prefix == '') {
+ if ($prefix == '')
+ {
$prefix = strip_bracket($vars['page']).'/';
}
- $params = array('link'=>FALSE,'title'=>FALSE,'include'=>FALSE,'reverse'=>FALSE,'_args'=>array(),'_done'=>FALSE);
+ $params = array(
+ 'link' => FALSE,
+ 'title' => FALSE,
+ 'include' => FALSE,
+ 'reverse' => FALSE,
+ 'compact' => LS2_LIST_COMPACT,
+ '_args' => array(),
+ '_done' => FALSE
+ );
array_walk($args, 'ls2_check_arg', &$params);
$title = (count($params['_args']) > 0) ?
join(',', $params['_args']) :
str_replace('$1',htmlspecialchars($prefix),$_ls2_messages['msg_title']);
- if ($params['link']) {
+ if ($params['link'])
+ {
$tmp = array();
$tmp[] = 'plugin=ls2&prefix='.$prefix;
- if (isset($params['title'])) {
+ if (isset($params['title']))
+ {
$tmp[] = 'title=1';
}
- if (isset($params['include'])) {
+ if (isset($params['include']))
+ {
$tmp[] = 'include=1';
}
return '<p><a href="'.$script.'?'.join('&',$tmp).'">'.$title.'</a></p>'."\n";
global $_ls2_messages;
$pages = array();
- foreach (get_existpages() as $_page) {
- if (strpos($_page,$prefix) === 0) {
+ foreach (get_existpages() as $_page)
+ {
+ if (strpos($_page,$prefix) === 0)
+ {
$pages[] = $_page;
}
}
natcasesort($pages);
- if ($params['reverse']) {
+ if ($params['reverse'])
+ {
$pages = array_reverse($pages);
}
- foreach ($pages as $page) {
+ foreach ($pages as $page)
+ {
$params["page_$page"] = 0;
}
- if (count($pages) == 0) {
+ if (count($pages) == 0)
+ {
return str_replace('$1',htmlspecialchars($prefix),$_ls2_messages['err_nopages']);
}
$params['result'] = array();
$params['saved'] = array();
- foreach ($pages as $page) {
+ foreach ($pages as $page)
+ {
ls2_get_headings($page,$params,1);
}
return join("\n",$params['result']).join("\n",$params['saved']);
$is_done = (isset($params["page_$page"]) and $params["page_$page"] > 0); //¥Ú¡¼¥¸¤¬É½¼¨ºÑ¤ß¤Î¤È¤True
- if (!$is_done) {
+ if (!$is_done)
+ {
$params["page_$page"] = ++$_ls2_anchor;
}
ls2_list_push($params,$level);
$ret = $include ? '<li>include ' : '<li>';
- if ($params['title'] and $is_done) {
+ if ($params['title'] and $is_done)
+ {
$ret .= "<a href=\"$href\" title=\"$title\">$s_page</a> ";
$ret .= "<a href=\"#list_{$params["page_$page"]}\"><sup>↑</sup></a>";
array_push($params['result'],$ret);
return;
}
- else {
+ else
+ {
$ret .= "<a id=\"list_{$params["page_$page"]}\" href=\"$href\" title=\"$title\">$s_page</a>";
array_push($params['result'],$ret);
}
$anchor = LS2_ANCHOR_ORIGIN;
- foreach (get_source($page) as $line) {
- if ($params['title'] and preg_match('/^(\*+)\s*(.*)$/',$line,$matches)) {
+ foreach (get_source($page) as $line)
+ {
+ if ($params['title'] and preg_match('/^(\*+)\s*(.*)$/',$line,$matches))
+ {
$s_title = strip_htmltag(inline2(inline($matches[2],TRUE)));
ls2_list_push($params,$level + strlen($matches[1]));
array_push($params['result'], '<li>'.$s_title
);
$anchor++;
}
- else if ($params['include'] and preg_match('/^#include\((.+)\)/',$line,$matches) and is_page($matches[1])) {
+ else if ($params['include']
+ and preg_match('/^#include\((.+)\)/',$line,$matches) and is_page($matches[1]))
+ {
ls2_get_headings($matches[1],$params,$level + 1,TRUE);
}
}
$close = '</li></ul>';
while (count($saved) > $level or
- (count($saved) > 0 and $saved[0] != $close)) {
+ (count($saved) > 0 and $saved[0] != $close))
+ {
array_push($result, array_shift($saved));
}
$margin = $level - count($saved);
- while (count($saved) < ($level - 1)) {
+ while (count($saved) < ($level - 1))
+ {
array_unshift($saved, ''); //count($saved)¤òÁý¤ä¤¹¤¿¤á¤Îdummy
}
- if (count($saved) < $level) {
+ if (count($saved) < $level)
+ {
$cont = FALSE;
array_unshift($saved, $close);
- $left = $margin * $_ul_margin;
- if ($level == $margin) {
- $left += $_ul_left_margin;
+ $left = ($level == $margin) ? $_ul_left_margin : 0;
+ if ($params['compact'])
+ {
+ // ¥Þ¡¼¥¸¥ó¤ò¸ÇÄê
+ $left += $_ul_margin;
+ // ¥ì¥Ù¥ë¤ò½¤Àµ
+ $level -= ($margin - 1);
+ }
+ else
+ {
+ $left += $margin * $_ul_margin;
}
$str = sprintf($_list_pad_str, $level, $left, $left);
array_push($result, sprintf($open, $str));
}
- if ($cont) {
+ if ($cont)
+ {
array_push($result, '</li>');
}
}
//¥ª¥×¥·¥ç¥ó¤ò²òÀϤ¹¤ë
function ls2_check_arg($val, $key, &$params)
{
- if ($val == '') {
+ if ($val == '')
+ {
$params['_done'] = TRUE;
return;
}
- if (!$params['_done']) {
- foreach (array_keys($params) as $key) {
- if (strpos($key, strtolower($val)) === 0) {
+ if (!$params['_done'])
+ {
+ foreach (array_keys($params) as $key)
+ {
+ if (strpos($key, strtolower($val)) === 0)
+ {
$params[$key] = TRUE;
return;
}