OSDN Git Service

add 'compact' option, and default setting LS2_LIST_COMPACT.
authorpanda <panda>
Sun, 30 Mar 2003 03:51:40 +0000 (12:51 +0900)
committerpanda <panda>
Sun, 30 Mar 2003 03:51:40 +0000 (12:51 +0900)
source cleanup.

plugin/ls2.inc.php

index 5679770..d945500 100644 (file)
@@ -1,6 +1,6 @@
 <?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
 ÇÛ²¼¤Î¥Ú¡¼¥¸¤Î¸«½Ð¤·(*,**,***)¤Î°ìÍ÷¤òɽ¼¨¤¹¤ë
@@ -19,6 +19,9 @@ $Id: ls2.inc.php,v 1.8 2003/03/02 08:56:51 panda Exp $
  action¥×¥é¥°¥¤¥ó¤ò¸Æ¤Ó½Ð¤¹¥ê¥ó¥¯¤òɽ¼¨
 -reverse~
  ¥Ú¡¼¥¸¤Îʤӽç¤òȿž¤·¡¢¹ß½ç¤Ë¤¹¤ë
+-compact~
+ ¸«½Ð¤·¥ì¥Ù¥ë¤òÄ´À°¤¹¤ë
+ LS2_LIST_COMPACT¤¬TRUE¤Î»þ¤Ï̵¸ú(ÊѲ½¤·¤Ê¤¤)
 
 */
 
@@ -28,7 +31,11 @@ define('LS2_CONTENT_HEAD','#content_1_');
 //¸«½Ð¤·¥¢¥ó¥«¡¼¤Î³«»ÏÈÖ¹æ
 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\'¤Ç»Ï¤Þ¤ë¥Ú¡¼¥¸¤Î°ìÍ÷',
@@ -36,12 +43,14 @@ function plugin_ls2_init() {
        ));
        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'] : '';
@@ -59,30 +68,44 @@ function plugin_ls2_convert()
        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&amp;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('&amp;',$tmp).'">'.$title.'</a></p>'."\n";
@@ -94,26 +117,32 @@ function ls2_show_lists($prefix,&$params)
        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']);
@@ -127,7 +156,8 @@ function ls2_get_headings($page,&$params,$level,$include = FALSE)
        
        $is_done = (isset($params["page_$page"]) and $params["page_$page"] > 0); //¥Ú¡¼¥¸¤¬É½¼¨ºÑ¤ß¤Î¤È¤­True
        
-       if (!$is_done) {
+       if (!$is_done)
+       {
                $params["page_$page"] = ++$_ls2_anchor;
        }
        
@@ -138,20 +168,24 @@ function ls2_get_headings($page,&$params,$level,$include = FALSE)
        
        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>&uarr;</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
@@ -159,7 +193,9 @@ function ls2_get_headings($page,&$params,$level,$include = FALSE)
                        );
                        $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);
                }
        }
@@ -176,41 +212,57 @@ function ls2_list_push(&$params,$level)
        $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;
                        }