Hallo zusammen,
ich baue mein Menü ganz simpel über TypoScript zusammen:
# Main Navigation
lib.mainNavi = HMENU
lib.mainNavi {
wrap = <ul>|</ul>
1 = TMENU
1 {
expAll = 1
noBlur = 1
NO = 1
NO {
wrapItemAndSub = <li>|</li>||<li>|</li>||<li>|</li>||<li class="critics">|</li>||<li class="topics">|</li>||<li>|</li>
stdWrap {
htmlSpecialChars = 1
}
ATagTitle {
field = title
}
}
}
2 < .1
2 {
wrap = <div class="layer_topics ym-vlist"><div class="layer_top"></div><ul class="ym-vlist">|</ul><div class="ym-clearfix"></div></div>
NO {
linkWrap = <li>|</li>
}
}
}
Das Menü klappt so einwandfrei. Ich muss jetzt einen Punkt dieses Menüs (ID=7) mit Inhalten aus einer Schnittstelle füllen. Leider fehlt mir hier einfach das notwendige KnowHow. Hat jemand eine Idee, wie ich dem Menüpunkt mit der ID 7 den Inhalt meines PHP-Scriptes zuweisen kann?
Danke und viele Grüße
was willste du denn mit dem externen PHPSkript holen ?
Vielleicht kann man das ja mit TYPO3 Mitteln auch realisieren.
Hallo mycrypt,
wie karlchen bereits gesagt hat empfielt es sich die Typo3-Bordmittel zu verwenden soweit
möglich.
Ansonsten gibt es für MENÜs die Funktion "itemArrayProcFunc":
1. Du legst eine PHP-Datei an, z.b.
<?php
//File: fileadmin/user_scripts/class.user_MenuHelper.inc.php
class user_MenuHelper {
public function use_php_for_idlist($menuArray,$conf) {
// prueft ob idList gesetzt ist
if( !isset($conf['idList']) || !((bool)$conf['idList']) ) {
return $menuArray;
}
// prueft ob useFunction gesetzt ist und existiert
if( !isset($conf['useFunction']) || !(bool)$conf['useFunction']) || !function_exists($conf['useFunction']) {
return $menuArray;
}
$idList = explode(',',$conf['idList']); // komma separierte id-liste in array verfrachten
if(empty($idList)) { return $menuArray; } // pruefen ob array leer, denn sicher ist sicher
$keys = array_keys($menuArray); // theoretisch ist auch einfach eine for-loop denkbar,
// aber so sind auch nicht-nummerische oder aufeinanderfolgende schluessel kein problem
if(empty($keys)) { return $menuArray; } // wie oben
foreach($keys as $key) { // alle menueeintraege abklappern
if(in_array($menuArray[$key]['uid'],$idList)) { // wenn uid in liste vorhanden
// rufe benutzerdefinierte funktion auf mit aktuellem menue-element als parameter, erwartet wieder ein menue-element zurueck
$menuArray[$key] = call_user_func($conf['useFunction'],$menuArray[$key]);
}
}
return $menuArray; // geparste menue-elemente wieder zurueckgeben
}
}
2. bindest diese in deinem TypoScript ein:
includeLibs.user_MenuHelper = fileadmin/user_scripts/class.user_MenuHelper.inc.php
3. Baust die neue Funktion mit Parametern in dein MENU mit ein:
lib.mainNavi.1.itemArrayProcFunc = user_MenuHelper->use_php_for_idlist
lib.mainNavi.1.itemArrayProcFunc {
idList = 7,11,255
useFunction = doSumfingSchpeschel
}
Dies nur als Beispiel, sollte dir aber helfen.
Mit var_dump kannst du dir auch die Inhalte der Funktionsparameter ansehen, wenn du nicht
weißt welche Möglichkeiten dir offen stehen.