Zum Inhalt springen

pid Abfrage in TMENU: itemArrayProcFunc nur bei bestimmter pid

Erstellt am 21. September 2011 · 6 Antworten · letzte Antwort am 17. Oktober 2011

Tags: Frage

lukesn ·

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

lukesn ·

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
}
jazbo ·

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

lukesn ·

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ß

jazbo ·

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

jazbo ·

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