Some fixes to table generation, show table after intro
authorErik Moeller <erik@users.mediawiki.org>
Wed, 2 Jul 2003 22:49:20 +0000 (22:49 +0000)
committerErik Moeller <erik@users.mediawiki.org>
Wed, 2 Jul 2003 22:49:20 +0000 (22:49 +0000)
includes/OutputPage.php
includes/Skin.php

index a753d71..2ce3041 100644 (file)
@@ -1225,21 +1225,17 @@ class OutputPage {
                foreach($matches[3] as $headline) {
                        if($level) { $prevlevel=$level;}
                        $level=$matches[1][$c];
-                       if(($nh||$st) && $level>$prevlevel) { 
+                       if(($nh||$st) && $prevlevel && $level>$prevlevel) { 
                                                        
                                $h[$level]=0; // reset when we enter a new level                                
-                               if($toclevel) {
-                                       $toc.=$sk->tocIndent($level-$prevlevel);
-                               }
-                               $toclevel++;
+                               $toc.=$sk->tocIndent($level-$prevlevel);
+                               $toclevel+=$level-$prevlevel;
                        
                        } 
                        if(($nh||$st) && $level<$prevlevel) {
                                $h[$level+1]=0; // reset when we step back a level
-                               if($toclevel) {
-                                       $toc.=$sk->tocUnindent($prevlevel-$level);
-                               }
-                               $toclevel--;
+                               $toc.=$sk->tocUnindent($prevlevel-$level);
+                               $toclevel-=$prevlevel-$level;
 
                        }
                        $h[$level]++; // count number of headlines for each level
@@ -1271,7 +1267,7 @@ class OutputPage {
                        $anchor=$canonized_headline;
                        if($refcount[$c]>1) {$anchor.="_".$refcount[$c];}
                        if($st) {
-                               $toc.=$sk->tocLine($anchor,$tocline);
+                               $toc.=$sk->tocLine($anchor,$tocline,$toclevel);
                        }
                        if($es && !isset($wpPreview)) {
                                $head[$c].=$sk->editSectionLink($c+1);
@@ -1288,32 +1284,28 @@ class OutputPage {
 
                if($st) {
                        $toclines=$c;
-                       while($toclevel>0) {
-                               $toc.="</ul>";
-                               $toclevel--;
-                       }
-
+                       $toc.=$sk->tocUnindent($toclevel);
                        $toc=$sk->tocTable($toc);
                }
 
-
                // split up and insert constructed headlines
                
                $blocks=preg_split("/<H[1-6].*?>.*?<\/H[1-6]>/i",$text);
                $i=0;
 
+
                foreach($blocks as $block) {
                        if($es && !isset($wpPreview) && $c>0 && $i==0) {
                                $full.=$sk->editSectionLink(0);                         
                        }
-
                        $full.=$block;
+                       if($st && $toclines>3 && !$i) {
+                               $full="<a name=\"top\"></a>".$full.$toc;
+                       }
+
                        $full.=$head[$i];
                        $i++;
                }
-               if($st && $toclines>3) {
-                       $full=$toc."<a name=\"top\"></a>".$full;
-               }
                return $full;
        }
 
index 4767090..4d87f75 100644 (file)
@@ -1658,29 +1658,44 @@ class Skin {
 
        function tocIndent($level) {
 
-               while($level--) $rv.="<ul style=\"list-style-type:none;margin:0px;\">";
+               while($level--) $rv.="<div style=\"margin-left:2em;\">\n";
                return $rv;
 
        }
 
        function tocUnindent($level) {
-               while($level--) $rv.="</ul>";
+               while($level--) $rv.="</div>\n";
                return $rv;
        }
 
-       function tocLine($anchor,$tocline) {
+       // parameter level defines if we are on an indentation level
+       function tocLine($anchor,$tocline,$level) {
+               
+               if($level) { 
+               
+                       return "<A CLASS=\"internal\" HREF=\"#".$anchor."\">".$tocline."</A><BR>\n";
+               } else { 
 
-               return "<li><A CLASS=\"internal\" HREF=\"#".$anchor."\">".$tocline."</A></li>";
+                       return "<div style=\"margin-bottom:0px;\">\n".
+                       "<A CLASS=\"internal\" HREF=\"#".$anchor."\">".$tocline."</A><BR>\n".
+                       "</div>\n";
+               }
 
        }
 
        function tocTable($toc) {
 
+/* does not auto-expand, use table for now
+       return "
+       <div><div style=\"border-width:1px;background-color:#f3f3ff;border-color:#8888aa;border-style:solid;padding:1em;padding-bottom:1em;\">
+       <b>".wfMsg("toc")."</b><P>
+       $toc</div></div>";
+*/
        return
-       "<table border=\"0\" bgcolor=\"#8888aa\" cellpadding=\"0\" cellspacing=\"1\"><tr><td>" .
-       "<table border=\"0\" bgcolor=\"#f3f3ff\" CELLPADDING=5><tr><td>".
-       "<b>".wfMsg("toc")."</b><p>".
-       $toc."</td></tr></table></td></tr></table><P>";
+       "<table border=\"0\" bgcolor=\"#8888aa\" cellpadding=\"0\" cellspacing=\"1\"><tr><td>\n" .
+       "<table border=\"0\" bgcolor=\"#f3f3ff\" CELLPADDING=5><tr><td>\n".
+       "<b>".wfMsg("toc")."</b><p>\n".
+       $toc."</td></tr></table></td></tr></table><P>\n";
        }
 
        function editSectionLink($section) {