Hallo zusammen,
ich komme gerade einfach nicht weiter.
In meiner Navigation soll ein Punkt nicht normale Unterseiten als Sub-Navigation anzeigen sondern Datensätze aus einem Ordner.
Dazu habe ich ein Script geschrieben, welches ich per itemArrayProcFunc einbinden kann, funktioniert soweit auch wunderbar.
Nur soll itemArrayProcFunc natürlich nicht bei jedem TMENU aufgerufen werden, sondern nur wenn die pid 4 ist.
2 = TMENU
2 {
// Die folgende Zeile soll nur angezeigt werden, wenn pid=4 ist
itemArrayProcFunc = user_implementProjectsInNav->makeMenuArray
wrap = <ul class="sub">|</ul>
stdWrap.dataWrap = <li>| (pid: {field:pid})</li>
NO.wrapItemAndSub = <li>|</li>
}
Wie realisiere ich solch eine Abfrage?
Den ganzen Seitenbaum über ein Script zu bauen fände ich blöd. In anderen Foren habe ich den Hinweis gefunden, dass es irgendwie mit append klappt? Über Hilfe wäre ich sehr glücklich.
Danke und Gruß,
Lukas
Kann man auf die Ebenen eines HMENU nicht mit einer if-Abfrage eingehen?
Also so zum Beispiel?
2 = TMENU
2 {
itemArrayProcFunc = user_implementProjectsInNav->makeMenuArray
wrap = <ul class="sub">1|</ul>
stdWrap.dataWrap = |(parent_id: {field:pid})
NO.wrapItemAndSub = <li>|</li>
if.value.field = uid
if.equals = 4
}
Hallo lukesn,
konntest Du das Problem lösen ?
Ich habe ein ähnliches Problem.
Ich möchte gern Werte, die ich ins $menuArr in meiner itemArrayProcFunc eingefügt habe, im Typoscript weiter verwenden.
$menuArr[1]['meinWert'] = "Testwert"
Wie kann ich diesen Wert mit if abfragen ?
if.value.field=meinWert
if.equals = Testwert
hat nicht geklappt
gruß
jazbo
Guten Morgen jazbo,
ich konnte das Problem leider noch nicht lösen. Im Moment arbeite ich mit einer Notlösung, hoffe aber noch auf eine gute Hilfestellung hier.
Gruß
Guten Morgen lukesn,
ich habe hier einen Interessanten Ansatz gefunden:
http://blog.schreibersebastian.de/2011/08/cal-kleines-monatsmenu/
Das werde ich versuchen auf mein Problem anzuwenden.
Zu deinem Problem:
Das $menuArr wir an deine makeMenuArray übergeben.
mit $menuArr[i]['uid']==4 kannst Du in einer for-Schleife alle Items durchtesten, ob uid=4 ist.
(vorher z.B. mit Count die Größe von $menyArr bestimmmen).
Die entsprechende uid kannst Du (besser) per Typoscvript übergeben:
itemArrayProcFunc.meineUid = 4
in die Zeile hinter deinem Funtionsaufruf im TS
und dann auf php-Seite in deiner Funktion
function makeMenuArray($menuArr, $conf)
$myUid = $conf['meineUid'];
auswerten, nur falls sich mal was an der Seitenstruktur ändert.
gruß
Jan
gruß
jazbo
Müsste ich in deinem Beispiel nicht das komplette Menü über PHP erstellen lassen?
Nein,
es geht hier nur ums $menuArr.
Und es muß natürlich 'pid' und nicht 'uid' heißen.
Gemeint war deine "alte funktion" nur aufzurufen, wenn die Bedingung:
...['pid']= 4 erfüllt ist und in allen anderen Fällen nicht.
gruß
jazbo