CoSchni#6: TYPOScript Menü mit PHP Datei rendern

Manchmal reicht TYPOScript oder die eigenen Fähigkeit bzw. Kenntnisse von TYPOScript nicht aus um gewünschte Kundenanforderungen zu erfüllen. Nachhelfen kann man in diesem Fall mit PHP Code. So gut wieder jederzeit und überall ist es im TYPOScript möglich über preUserFunc und postUserFunc die Eingabe bzw. Ausgabe, vor und nach dem TYPOScript zu beeinflussen:

[PHP]
// Einbinden der PHP-Datei
includeLibs.xyzFunc= fileadmin/scripts/code.php

tmp.menu.5 = HMENU
tmp.menu.5 {
entryLevel = 1
1 = TMENU
1 {
stdWrap.postUserFunc = user_menueFunc->listMenue
noBlur = 1
wrap = |
NO = 1
NO {
stdWrap.htmlSpecialChars = 1
ATagBeforeWrap = 1
stdWrap.dataWrap = {field:title}|
stdWrap.dataWrap.import.listNum = 0
allWrap =

|


}
SPC = 1
SPC.allWrap =


}
}

tmp.menu.5.1.stdWrap.postUserFunc.firstPage = 9
tmp.menu.5.1.stdWrap.postUserFunc.divisor = 9

[/PHP]

Die entsprechende PHP-Datei sieht das bspw. so aus:

[PHP]
class user_menueFunc{

function listMenue($content,$conf)
{

// Zugriff auf im TYPOScript definierte Variablen
$amount = (int)$content – (int)$conf[‘firstPage’];
$pages = ceil($amount / (int)$conf[‘divisor’]);

// Zugriff auf interne Variablen
$pid = $GLOBALS[‘TSFE’]->id;

// Zugriff auf Get-Variablen
$offset = (int)t3lib_div::_GET(‘offset’);

// Zugriff auf den erzeugten Code
$menueelemente = explode(““, $content);

// Rückgabe von Code
return $content;
}

}
[/PHP]