Erstemal vielen Dank für deine Antwort.
Hab jetzt mal soweit mein Template umgeschrieben:
page.includeLibs.servertime = fileadmin/data/scripts/inc_servertime.php
# DATUM
page.10.marks.DATUM = USER_INT
page.10.marks.DATUM.userFunc = // hier komme ich nicht weiter
Also, wenn ich das richtig sehe habe ich jetzt include 'inc_servertime.php' in typo umgesetzt.
<?php
include 'inc_servertime.php'; //abgehackt
$st = new servertime;
$st->InstallClockHead();
?>
...
<?php
$st->InstallClock();
$st->InstallClockBody();
?>
Wie lasse ich jetzt die restlichen Funktionen ausführen. Vor Allem: Wie unterscheide ich zwischen header und bodytag?
page.10.marks.DATUM.userFunc = servertime -> InstallClock
so?
Danke schonmal für deine Bemühungen
Gruß [sw]
Hallo,
steht eigentlich alles in der TSREF drin. Aber folgendes:
1. alle funktionen müssen mit user_ im namen anfangen. dann kannst du mit dem obj und name der funktion diese aufrufen, also:
32 = USER_INT
32.userFunc = user_myphpfunction
2. da USER_INT wie jedes andere Obj ist, kannst du das bestimmt auch irgendwie in den Header schreiben, ich weiß aber nicht wie. In Body ist ja wohl kein Problem, oder? (einfach in den entsprechenden marker deiner seite einbinden). Aber ich glaube dieses InstallClockHead(); kannst du auch im body ausführen. Weil ist ja eigentlich egal wo das JS steht, oder?
Gruß,
Chi
Hi!
Jetzt sieht's so aus:
page.includeLibs.servertime = fileadmin/data/scripts/inc_servertime.php
page.headerData.10 = USER_INT
page.headerData.10.userFunc = user_$st = new servertime;
page.headerData.11 = USER_INT
page.headerData.11.userFunc = user_$st->InstallClockHead
...
# DATUM
page.10{
marks.DATUM = USER_INT
marks.DATUM.1.userFunc = user_$st->InstallClock
marks.DATUM.2.userFunc = user_$st->InstallClockBody
}
Leider regt sich immer noch nichts. Ich kapier nicht, wie ich $st erstellen lassen soll. Scheint ziemlich Bockmist zu sein, den ich im obigen Code produziert habe.
Sorry, für die blöden Fragen. Das kommt davon, wenn man nie php gelernt hat. :x
Kannst mir bitte nochmals auf die Sprünge helfen?
Gruß +sw+
Schmeiß die class definition raus, und nenn die funktion user_InstallClock und alle anderen auch.
dann schreibst du:
page.headerData.11.userFunc = user_InstallClock
das müste dann losgehen.
Grüße,
Chi
Hmm, funktioniert so nüscht:
page.includeLibs.servertime = fileadmin/data/scripts/inc_servertime.php
#page.headerData.10 = USER_INT
#page.headerData.10.userFunc = user_$st = new servertime;
page.headerData.11 = USER_INT
page.headerData.11.userFunc = user_InstallClockHead
# DATUM
marks.DATUM = USER_INT
marks.DATUM.1.userFunc = user_InstallClock
marks.DATUM.2.userFunc = user_InstallClockBody
class servertime {
...
}
kann ich nicht aus der PHP entfernen, da sonst ein Parse Error auftritt.
dann versuch folgendes (mit klassen habe ich dass auch nie gemacht)
nenn deine klasse user_servertime und mach so:
marks.DATUM.1.userFunc = user_servertime->user_InstallClock
wenn das nicht geht, mußt du das php skript etwas umschreiben (keine klasse also keine $this deklarationen usw., stimmt hatte ich beim erstenmal vergessen)
C.
Ok, vielen Dank. Werd mich am Montag wieder intensiv dransetzten - jetzt ist erst mal Wochenende. 😉
Schönes Wochenende
Bis denn
SCHON? Habt Ihr 35h Woche, oder was? 😉
Nee ... aber wenn man morgens schon um 7 anfängt ... und zudem noch als Praktikant eingestellt ist, kann man sich sowas erlauben :p
Wie ersetz ich denn die $this? Kannst mir mal ein Beispiel für meine inc_servertime.php geben?
ganz normale variablen draus machen. $this ist immer nur ein Zeiger auf das aktuelle Objekt bei OOP. Also wenn deine Klasse zb. globale Variablen enthält (das sind die die außerhalb von allen functionen deklariert sind) kannst du mit $this->variable diese laden, speichern usw. eine instanz von einer klasse erstellst du ja mir new ().
$st ist in deinem skript eine Instanz von der Klasse servertime. deshalb must du $st->InstallClockHead(); schreiben. Durch die Vererbung weiss die Function InstallClockHead() das $this sich auf das Elternobjekt $st bezieht. Und kann die globalen Variablen richtig zuordenen.
du kannst ja einfach noch ein Objekt instantiieren und mit parallel laufen lassen. oder beliebig viele objekte. einfach
$st1 = new servertime;
$st2 = new servertime;
...
usw.
Bin aber auch nicht so fit in OOP. Das ist ein richtig mächtiges Konzept.
Hallo sw-student,
hast Du das Script mittlerweile ans Laufen bekommen ?
Ich möchte dies auch gerne auf meine Typo3-Homepage einbauen ...
Für eine RÜckantwort wäre ich dankbar.
Gruß,
Daniel