[Typo3-german] userdefiniertes Menu

Lars Jonuscheit Merlin732 at web.de
Wed Aug 24 13:23:45 CEST 2005





Moin,

ich arbeite seit 3 Wochen mit Typo3 und habe eine Frage, zu der ich bisher einfach keine Lösung finden konnte. Ich hoffe mir kann jemand weiterhelfen.

 

Es geht darum ein TMENU zu basteln, dass bestimmte Eigenschaften erfüllt.

Daher musste ich auf userdefined zurückgreifen. Ich habe mir ein PHP-Script erstellt, was die gewünschte Aufgabe erfüllt und es in Typoscript (also ins Template) eingebunden...leider erscheint keine Ausgabe.

Im TS sieht es folgendermaßen aus:

 includeLibs.fakemenuitems = media/scripts/example_itemArrayProcFunc.php 

 MENU_LINKS = HMENU
 MENU_LINKS {
 1.special = userdefined
 1.special.userFunc = user_itemArrayProcFuncTest 
 1 = TMENU
 } 

 

Und das PHP-Script:

<?php

function user_itemArrayProcFuncTest($menuArr,$conf) {

 if (!count($menuArr)) { // There must be no menu items if we add the parent page to the submenu:
 $parentPageId = $conf['parentObj']->id; // ID der parent Seite
 $actualPageId = $GLOBALS["TSFE"]->id; // ID der aktuellen Seite

 $menuItemsArray;
 $x=0;

 // Ausgabe der Eltern
 $sql_1 = "SELECT title FROM pages WHERE uid = $parentPageId ORDER BY uid DESC"; //wo uid = pid von oben
 $result_1 = mysql_query($sql_1); // ausführen des selects und speichern in ein resultset
 $row_1 = mysql_fetch_array($result_1); // ausgeben des titels der seite

 $menuItemsArray[$x]['title'] = $row_1['title'];
 $menuItemsArray[$x]['uid'] = $row_1['uid'];
 $x++;

 //Ausgabe der Geschwister

 $sql_2 = "SELECT uid, title FROM pages WHERE pid = $parentPageId ORDER BY uid DESC"; // Auswählen und umordnen
 $result_2 = mysql_query($sql_2); // ausführen des selects und speichern in ein resultset
 while($row_2 = mysql_fetch_array($result_2)) // schleife solange ausführen bis resultset keine zeilen mehr hat
 {
 $menuItemsArray[$x]['title'] = $row_2['title'];
 $menuItemsArray[$x]['uid'] = $row_2['uid'];
 $x++;
 }

 // Ausgabe der Kinder
 $sql_3 = "SELECT uid, title FROM pages WHERE pid = $actualPageId ORDER BY uid DESC";
 $result_3 = mysql_query($sql_3); // ausführen des selects und speichern in ein resultset
 while($row_3 = mysql_fetch_array($result_3)) // schleife solange ausführen bis resultset keine zeilen mehr hat
 {
 $menuItemsArray[$x]['title'] = $row_3['title'];
 $menuItemsArray[$x]['uid'] = $row_3['uid'];
 $x++;
 }
 }
 return $menuItemsArray;
}
?>


 

Meinem Verständnis nach müsste es funktionieren, aber da ich wie gesagt erst seit knapp 3 Wochen mit Typo3 arbeite war ich noch nicht so tief vorgedrungen.

Kann mir jemand helfen?

 

mfg Lars

	var bodytag = "";	document.body.style.fontFamily ='Verdana';	function strip(value) {	if(value != undefined){	while (value.indexOf(" ")==0) {	value = value.substring(1,value.length);	}	}	return value;	}	document.body.bgColor = '#ffffff';	var bodystyle = 'font-size:9pt; font-family:Verdana; font-family: Verdana';	var styles = bodystyle.split(";");	for (i=0; i<styles.length; i++) {	werte = styles[i].split(":");	var key = strip(werte[0].toLowerCase());	var value;	if (werte.length>2) {	value = werte[1];	for (j=2;j<werte.length;j++) {	value = value + ":" + werte[j];	}	value = strip(value);	} else {	value = strip(werte[1]);	}	switch(key) {	case "background-position":	document.body.style.backgroundPosition = value;	break;	case "font-weight":	document.body.style.fontWeight = value;	break;	case "font-size":	document.body.style.fontSize = value;	break;	case "background-image":	document.body.style.backgroundImage = value;	break;	case "margin":	document.body.style.margin = value;	break;	case "color":	document.body.style.color = value;	break;	case "background-repeat":	document.body.style.backgroundRepeat = value;	break;	case "font-style":	document.body.style.fontStyle = value;	break;	case "font-family":	document.body.style.fontFamily = value;	break;	case "background-color":	document.body.style.backgroundColor = value;	break;	case "margin-left":	document.body.style.marginLeft = value;	break;	case "margin-right":	document.body.style.marginRight = value;	break;	case "margin-top":	document.body.style.marginTop = value;	break;	case "margin-bottom":	document.body.style.marginBottom = value;	break;	default:	}	}	</SCRIPT>


Mit der Gruppen-SMS von WEB.DE FreeMail können Sie eine SMS an alle 
Freunde gleichzeitig schicken: http://freemail.web.de/features/?mc=021179 
 
 




More information about the TYPO3-german mailing list