Zum Inhalt springen

TMENU erweitern mit userfunc

Erstellt am 14. Januar 2009 · 12 Antworten · letzte Antwort am 15. Januar 2009

Tags: Frage

stereotyp ·

Jo danke

das geht:

40 = USER
40.userFunc = tx_meinplugin_pi1->main

hmm....ich dachte das hätte ich auch schon probiert gehabt

aber schon die nächste Frage:

wie erhalte ich jetzt im plugin die seiten-uid der jeweiligen Seite?

muß ich sie im TS übergeben (wie?)

stereotyp ·

also mit:

40 = USER
40.userFunc = plugin.tx_meinplugin_pi1->main
40.value=xyz

habe ich dann im plugin
$this->conf[value]=xyz

nur wie füge ich im ts die page_uid anstatt xyz ein?

Sorry, bin nicht so der typoscripter

meckpo ·

Hallo,

wie gesagt, besser ist es mit

2.NO.stdWrap.postUserFunc =  tx_meinplugin_pi1->main

Dabei bekommst du nämlich schon 2 Werte übergeben:
$conf und $content heißen die üblicherweise schon in der Methode main() des Plugins. Laß dir den Inhalt der beiden dann mal mit

t3lib_div::debug($content);
t3lib_div::debug($conf);

anzeigen! Wahrscheinlich findest du da drin schon irgendwo die Page-ID.

stereotyp ·

habe ich probiert

bei echo t3lib_div::debug($content);
gibt er mir die 10 Seitentitel des menüs aus

bei echo t3lib_div::debug($conf);
gibt er mir 10 mal debug debug debug.....
aus

Seitentitel ist ja schonmal was aber ich brauche ja die id.....

Vielen Dank

stereotyp ·

vielleicht habe ich mich auch verrant
und es gibt ne einfache Lösung

also:
es werden Datensätze eines bestimmten typs(eigene extension)
in Seiten abgelegt
in dem TMENU dieser Seiten soll nicht nur der Seitentitel angezeigt werden
sondern dahinter die Anzahl der o.g. Datensätze auf der jeweiligen Seite
<-das wäre ja dann einfach eine mysql-Abbfrage in meinem plugin
WENN ich die uid der Seite hätte

freshman17 ·

Du mußt die PageId nicht übergeben, diese steht dir zur Verfügung wenn du in deiner Funktion das Array $TSFE einbindest.

Beispiel:

class user_Class {
	function user_function($content,$conf){
		global $TSFE;
		$pid = $GLOBALS["TSFE"]->id;
	}
}
freshman17 ·

So wie ich es versteh will er doch auch nur die aktuelle Seiten-Id haben?!

$uid = $GLOBALS["TSFE"]->page[uid];
$pid = $GLOBALS["TSFE"]->page[pid];
stereotyp ·

Ah...vielen Dank

das mit dem

global $TSFE;

wußte ich nicht

ich habe sonst in plugins auch immer Zugriff auf die uid der seite
über

$GLOBALS['TSFE']->id

gehabt
muß es jetzt also lauten:

$GLOBALS["TSFE"]->page[uid];

(plus global $TSFE)

ja freshman17..wenn ich diese uid habe dann kann ich ja eine mysql abfrage laufen lassen

werde es sofort morgen früh testen und berichten

herzlichen Dank

stereotyp ·

kurze Überlegung doch noch:

könnte doch gut sein dass es mit dem tsfe->id nicht klappt

aber die itemArrayProcFunc raff ich noch nicht ganz

hätte einer ein schnippsel für das script

und auch für die korrekte anbindung im TS

ist dies auch möglich mit einem kickstarter-plugin? (wegen der mysql funktionen die dort zur Verfügung stehen)

stereotyp ·

so jetzt aber:

itemArrayProcFunc war das richtige

ich hatte anfangs in der debug-ausgabe des übergebenen Arrays

einfach übersehen dass es zweidimensional ist

und schon hatte ich mich wieder verrant.....aber jetzt läufts wunderbar

vielen Dank nochmals