macrob_pre_ger.gif

Die Objekte erscheinen als Listen-Elemente; ihr Typ wird durch ein entsprechenden Bullet-Image repräsentiert.





 

DTML-Template

Die Macronavigation wird von einem DIV-Element ummantelt - weiterhin von zusätzlichen definitionlist-Elementen, damit browserübergreifend die Aussenabstände gleichartig gehalten werden können.
Die Funktion filteredChildNodes(REQUEST,PAGES) liefert eine Liste aller Seiten-Objekte; mit der integer-Funktion werden die Bool-Werte False/True aus der Prüfung nach dem aktuellen Objekt in einen Zahlenwert (0/1) transformiert; entsprechend werden die CSS-Klassen für Dokumente (doc0: nicht aktives Dokument, doc1: aktives Dokument). Eine Entsprechung bei Rubrik-Containern erübrigt sich, da in diesem Fall stets die Unterobjekte und nicht das Objekt selbst gelistet wird.

<!-- pageelement_Macronavigation -->
<dtml-call "REQUEST.set('_this',getSelf())">
<dtml-call "REQUEST.set('_this_top',getSelf(['ZMSRubrik','ZMSSysFolder']))">
<div id="Macronavigation">
<dl>
<dd>
<ul>
<dtml-in "REQUEST['_this_top'].filteredChildNodes(REQUEST,PAGES)">
<dtml-unless "isResource(REQUEST)">
<dtml-if "REQUEST['thisObj'].getParentByLevel(1).id in absolute_url().split('/')">
<dtml-let highlightThis="_.int(REQUEST['thisObj'].id==id)">
<dtml-if "isMetaType(['ZMSRubrik','ZMSSysFolder'])"><li 
  class="folder"><dtml-else><li 
  class="doc&dtml-highlightThis;"></dtml-if><a 
  href="<dtml-var "getHref2IndexHtml(REQUEST,deep=1)">"><dtml-var 
 "string_maxlen(getTitlealt(REQUEST),18)"></a></li>
</dtml-let>
</dtml-if>
</dtml-unless>
</dtml-in>
</ul>
</dd>
</dl>
</div>
<!-- /pageelement_Macronavigation -->

CSS

Das vorliegende CSS bemüht sich, Abstände und relative Schriftrößen browserübergreifend darzustellen; daher sind einige bekannte "Hacks" eingesetzt worden:

  • "font size hack": stellt sicher, dass die relativen (aber auch absoluten) Schriftgrößen gleich aussehen; der Hack nutzt ein Bug im Internet-Explorer aus
  • "box model hack": der üblichweise für das fehlerhafte Rand-/Weiten-Verhalten von IE eingesetzte Code kann hier zur Normalisierung des Listeneinzugs verwendet werden. Im Firefox sind die Listeeinzüge tiefer als beim IE; der Ausgleich beträgt hier für den Firefox -8px.

Die Referenzierung der Bullet-Images geschieht über die Pfad-Variable 'ZMS_COMMON'; statt des Tag-Aufrufes wird hier die Entity-Syntax eingesetzt, damit auch der rohe Code keine Fehler verursacht.

/*-------------------------*/
/*-----Macronavigation-----*/
/*-------------------------*/
div#Macronavigation {
	padding: 0;
	border: 0;
	margin-top: 50px;
	}
#Macronavigation dl,
#Macronavigation dt, 
#Macronavigation dd  {
	margin: 0;
	padding: 0;
	border:0;
	}
#Macronavigation ul li {
	margin: 0;
	padding: 0;
	border: 0;
	margin-top: 5px;
	line-height: 1.25em;
	font-size: small;
	}
/*----- font size hack -----*/
/*/*/a{}
body #Macronavigation ul li {
font-size : x-small;
}
html>head:first-child+body #Macronavigation ul li {
font-size : small;
}
/* */
/*----- /font size hack -----*/

#Macronavigation ul li.folder	{
	list-style: disc url(&dtml-ZMS_COMMON;/iconfolder.gif) inside;
	}	
#Macronavigation ul li.doc0,
#Macronavigation ul li.doc1 {
	list-style: disc url(&dtml-ZMS_COMMON;/icondoc.gif) inside;
	}
#Macronavigation ul li.doc1 {
	font-weight: bold;
	}
#Macronavigation ul li a {
/*-------box model hack-------*/
	margin-left: -8px !important;
	margin-left: 0px;
	margin-left/**/:/**/-0px;
	}

Erstellt von: Dr. F. Hoffmann , erstellt am:  27.06.2008 , zuletzt geändert: 27.06.2008