AW: [Typo3-UG Oesterreich] Dynamisches Menü mit dynamischen Class Tag?

Peter Luser netdog at typoheads.com
Fri Jan 21 13:35:06 CET 2005


servus!
ich hab genau das gleiche gebraucht und bin noch am fertigbasteln, aber ich 
hab einen weg gefunden:

du willst ein normales "HMENU" erzeugen, nur eben die positionierung usw. mit 
CSS machen.

problem bei dem ganzen CSS ding ist ein horizontales menü in dem die 
menü-bilder unterschiedliche breiten haben. 
dadurch muss für jedes dieser bilder eine eigene css-klasse angelegt werden 
mit der passenden breite drinnen.

ergo: du musst auf die breite des gerenderten bildes zugreifen können.

ich häng mich in die
temp.MENU_OBEN.10.1.IProcFunc
funktion rein - da hat man zugriff auf dateiname und grösse des gerenderten 
bildes.
in dieser externen funktion bau ich mir die passenden <div> tags auf(siehe 
weiter unten) und definiere auch die css klassen (für jeden menüpunkt eine).

kleine unschönheit: die klassen selber kann ich von der externen funktion 
nicht direkt in den header ausgeben lassen.
darum der umweg über die
page.headerData.10 < user_css
funktion.

jetzt meine lösung: (beispiel)

#### setup #####
includeLibs.fakemenuitems = fileadmin/user_functions.php

# MENU OBEN #
temp.MENU_OBEN = COA

temp.MENU_OBEN.5 = TEXT
temp.MENU_OBEN.5.value=<div class="navigation"><span 
class="detach-visual"><h1>HAUPTMENÜPUNKTE: </h1></span><ul>

temp.MENU_OBEN.10 = HMENU
temp.MENU_OBEN.10.special = directory
temp.MENU_OBEN.10.special.value = {$menueoben}
temp.MENU_OBEN.10.1 = GMENU
temp.MENU_OBEN.10.1.NO {
  XY = [10.w]+30+[14.w],20
  backColor = #FFFFFF
  10 = TEXT
  10.text.case = upper
  10.text.field = title
  10.fontFile = fileadmin/fonts/zurchn.TTF
  10.fontSize = 12
  10.fontColor = #3B6464
  10.offset = 0,16
  10.niceText = 0
  10.align = left
}
temp.MENU_OBEN.10.1.RO < temp.MENU_OBEN.1.NO
temp.MENU_OBEN.10.1.RO = 1
temp.MENU_OBEN.10.1.ACT < temp.MENU_OBEN.1.RO
temp.MENU_OBEN.10.1.ACT.10.fontColor = #7DB8B6

temp.MENU_OBEN.10.1.IProcFunc = user_menuTest

temp.MENU_OBEN.20 = TEXT
temp.MENU_OBEN.20.value=</ul></div>

# die generierten css klassen im head ausgeben:
page.headerData.10 < user_css


###################
### jetzt noch mein user_functions.php 
###################
function user_menuTest($menuArr,$conf)    {

	$menuArr['parts'] = array();
	$menuArr['parts'][] = '<li class="menu_'.$menuArr['uid'].'">'.
$menuArr['A1'].'<span class="detach-visual"><h1>'.$menuArr['title'].
'</h1></span>'.$menuArr['A2'].'</li>';

	$css = '.navigation .menu_'.$menuArr['uid'].' a {'.
		'background-image: url('.$menuArr['val']['output_file'].');'."\n".
		'width: '.$menuArr['val']['output_w'].'px;'.
		'height:'.$menuArr['val']['output_h'].'px;'."\n".
#		'overflow:auto;'."\n".
#		'float:left;'."\n".
#		'display:inline;'."\n".
#		'position:relative;'."\n".
		'}';

	$conf[parentObj]->tmpl->setup['page.']['headerData.']['additionalCSS'] = 
'TEXT';
	$conf[parentObj]->tmpl->setup['page.']['headerData.']['additionalCSS.']
['value'] .= $css."\n";

	return $menuArr;
}


function user_css($content,$conf) {

	return "<style type='text/css'><!-- \n".$GLOBALS["TSFE"]
->tmpl->setup['page.']['headerData.']['additionalCSS.']['value']."\n 
--></style>";

}



hoffe das war nicht zu kompliziert - aber gerade bei horizontalen menüs die 
nicht gleich breit sind, bleibt einem nix anderes über.
lg, peter






On Fri, 21 Jan 2005 13:02:56 +0100, Hoelblinger Walter wrote
> Hy Michael,
> 
> sollte normalerweise mittels ATagParams = id ="m1" laufen!
> 
> NO {
>     allWrap = <tr height="20"><td colspan="3"> | </td></tr>
>     ATagParams = id ="m1"
> }
> 
> Mit freundlichen Grüßen
> 
> Walter Hölblinger
> Webmaster
> 
> STEYR MANNLICHER GmbH. & Co KG           
> W.Hoelblinger at steyr-mannlicher.com
> http://www.steyr-mannlicher.com
> 
> Tel:        +43 (0) 7252 896 - 412
> Fax:        +43 (0) 7252 786 - 18
> Mobil:      +43 (0) 676 83896 412
> 
> -----Ursprüngliche Nachricht-----
> Von: Michael Inselsbacher [mailto:Peacekeeper118 at hotmail.com] 
> Gesendet: Freitag, 21. Jänner 2005 12:34
> An: typo3-at at lists.netfielders.de
> Betreff: Re: [Typo3-UG Oesterreich] Dynamisches Menü mit dynamischen 
> Class Tag?
> 
> Kleiner Nachtrag
> 
> das soll rauskommen, wobei die ID's aus dem alia-eintrag erstellt 
> werden sollen <ul id="hm">  <li id="m1">Menu1</li>  <li id="m2">Menu2</li>
>   <li id="m3">Menu3</li>
>   <li id="mx">MenuX</li>
> </ul>
> 
> _______________________________________________
> Typo3-at mailing list
> Typo3-at at lists.netfielders.de
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-at
> _______________________________________________
> Typo3-at mailing list
> Typo3-at at lists.netfielders.de
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-at


--
Neue Projekte: 
http://www.typoheads.com - Our Corporate Site 
http://www.fidler-wein.at - Weinbau C.u.G. Fidler 
http://www.strassberger.at - Uhren, Schmuck Straßberger Horn 
http://www.acon-consulting.com - ACON Management Consulting




More information about the TYPO3-at mailing list