Zum Inhalt springen

realUrl und Links in PHP-Skript

Erstellt am 11. Juni 2008 · 8 Antworten · letzte Antwort am 11. Juni 2008

Tags: RealURL, Links, Frage

dannyKay ·

Hallo, allerseits!

Ich habe gerade ein Typo3-Projekt in Arbeit, und habe mir wegen der komplexen Menüstruktur (fünf Ebenen in zwei Navi-Elementen) ein PHP-Skript geschrieben.

Seit gestern habe ich realUrl im Einsatz.

Nur kriege ich jetzt im PHP-Skript natürlich keine realUrl-konformen Links zustande, zumal das Skript natürlich ausserhalb der Typo3-Klassenstruktur liegt.

Was kann ich tun?

Vielen Dank fürs Lesen

just2b ·

Hallo und willkommen im Forum,

oh Überrschung würd ich sagen 😉

das script mit der TYPO3-API schreiben. TMENU & Co kann komplexe Menüs schon auch handlen

georg

dannyKay ·
just2b schrieb

Hallo und willkommen im Forum,

oh Überrschung würd ich sagen 😉

das script mit der TYPO3-API schreiben. TMENU & Co kann komplexe Menüs schon auch handlen

georg

Das hatte ich befürchtet :-(

Alternativ könnte man auch per Kickstarter eine echte Extension aus der Navi machen...

dannyKay ·
just2b schrieb

zeig doch mal dein menü

georg

Du hast es so gewollt:

10.workOnSubPart = DOKUMENT
10.marks {
  MAIN_MENU = PHP_SCRIPT_EXT 
  MAIN_MENU.file = fileadmin/includes/php/primarynavigation.php
...
<?php
$content = generatePrimaryNavigation();
return $content;

function generatePrimaryNavigation()
{
	//$content .= print_r($GLOBALS["TSFE"]); 
	$content .= "<ul class='firstLevelMenu'> \n";
	
	//$content =  $htmlTemplate;
	$query = "SELECT uid, title FROM pages WHERE pid=123 AND deleted = 0 AND hidden = 0 ORDER by sorting"; // get first level
	$res = mysql(TYPO3_db,$query);   
	while($row=mysql_fetch_assoc($res))    
	{            
		// menu open or closed?
		if($row["uid"] == $GLOBALS["TSFE"]->id || $row["uid"] == $GLOBALS["TSFE"]->rootLine[2]["pid"])
		{
			$menuStatus1 = "menuOpened";
			$menuStatus2 = "block";
		}
		else
		{
			$menuStatus1 = "menuClosed";
			$menuStatus2 = "none";
		}
//		$content .= "--" . $row["uid"] . "<br>";  
		$content .= "<li id='menu-" . $row["uid"] . "' class='firstLevelMenuItem' onMouseOver='openPrimarySubMenu(\"menu-" . $row["uid"] . "\");' > \n";
		$content .= "<div class='firstLevelMenuItemDiv'><a href='index.php?id=" . $row["uid"] . "'>" . $row["title"] . "</a ></div> \n";
		$content .= "	<ul id='sub-menu-" . $row["uid"] . "' class='secondLevelMenu " . $menuStatus1 . "' style='display: " . $menuStatus2 . "' > \n";
		
		$query2 = "SELECT uid, title FROM pages WHERE pid=" . $row["uid"] . " AND deleted = 0 AND hidden = 0 ORDER by sorting"; // get first level
		$res2 = mysql(TYPO3_db,$query2);   
		while($row2=mysql_fetch_assoc($res2))    
		{            
			$content .= "		<li><a href='index.php?id=" . $row2["uid"] . "'>" . $row2["title"] . "</a></li> \n";
		}  
		$content .= "	</ul> \n";
		$content .= "</li> \n";
		
	}  
	$content .= "</ul> \n";
	
	return $content;

}
?>

Im Prinzip ist das nur ein verschachteltes ul-Konstrukt, aber wegen JS-Effekten bin ich ganz eigen, was die Benennung von divs etc angeht.

Es erschien mir einfacher, das per PHP zu machen, als mich soooo in TS einzufuchsen...

Edit:
Das ist natürlich nur eins von den beiden Navi-Elementen. Das zweite is noch komplexer.
Macht das Sinn, da eine Extension draus zu machen, damit ich überhaupt schon mal sozusagen im typo3-Namensraum bin?

just2b ·

naja wenn man halt soooviel TYPO3 nicht will, kann man auf der anderen Seite auch nicht verlangen, dass alle Vorteile genützt werden können.

Nichtdestotrotz sollte das mit einem TMENU locker gehen, aber nicht ohne grund hätt ich nach dem Menü und nicht dem Script gefrag 😉

georg

dannyKay ·
just2b schrieb

naja wenn man halt soooviel TYPO3 nicht will, kann man auf der anderen Seite auch nicht verlangen, dass alle Vorteile genützt werden können.

Nichtdestotrotz sollte das mit einem TMENU locker gehen, aber nicht ohne grund hätt ich nach dem Menü und nicht dem Script gefrag 😉

georg

Okay, dann leg ich mir die TMENU-Doku noch mal unter's Kopfkissen :-)

Hast Du zu dem Thema irgendwo ein Lieblingstutorium rumliegen, das Du empfehlen kannst?

dannyKay ·
just2b schrieb

zB #65143
schau dir hier mal das dropdown menü an, nur mal als tipp

georg

Cool, besten Dank.

Nachtrag: Du gute Güte, da hast Du Dir aber Arbeit gemacht! Wenn's danach nicht klappt, bin ich wohl selber schuld.

Vielen Dank dafür.