Hallo,
das hast du schön zusammengefasst *gg*
richtigen weg gibts keinen.
- services braucht man um services zu erweitern wie den login im BE, FE usw
- hooks um die rückgabe einzelner funktionen zu manipulieren, zB in tt_news neue felder in der list/single view
- xclass ist immer der letzte weg wenns ersten beiden nicht gibt um eine komplette funktion zu überschreiben. nachteil hast du ja schon erwähnt. vorteil: man hat komplette freiheit
georg
> TYPO3 lädt natürlich nicht einfach alle files drauflos
Ich glaube schon, hab' nämlich was der gleichem im Loader gesehen!
just2b schrieb
- services braucht man um services zu erweitern wie den login im BE, FE usw
- hooks um die rückgabe einzelner funktionen zu manipulieren, zB in tt_news neue felder in der list/single view
- xclass ist immer der letzte weg wenns ersten beiden nicht gibt um eine komplette funktion zu überschreiben. nachteil hast du ja schon erwähnt. vorteil: man hat komplette freiheit
Ich will mich an die Reihenfolge halten, also muss ich die ersten Beiden erstmal verstehen und kennen lernen, bevor ich's mir mit XCLASS zu einfach mache. Na Gott-Sei-Dank gibt's darüber ein Kapitel in dem Typo3-Buch.
Für meine Test-Extension (Trallala hinter Textfeldern) werd ich wohl mehr Erfolg mit einem Hook haben, wah? Will ja keine neue Funktion, sondern eine Ausgabe manipulieren.
nein ganz und gar nicht.
services gibt es für die wenigsten sachen, hooks schon für mehr.. also das ist nur die reihenfolge wenns alle 3 für das gleiche gäbe.
also xclass ist fürn anfang schon sehr ok 😉
georg
Na dann mach ich mal weiter mit XCLASS. Ich möchte, dass onSubmit etwas geschieht...dazu habe ich in der class.t3lib_tceforms.php die Variable $additionalJS_submit = array(); gefunden:
// $this->additionalJS_post:
$additionalJS_submit = array("alert('Tach auch');", "alert('nAbend');", "return false;");
if ($additionalJS_submit) {
$additionalJS_submit = implode('', $additionalJS_submit);
$additionalJS_submit = str_replace("\r", '', $additionalJS_submit);
$additionalJS_submit = str_replace("\n", '', $additionalJS_submit);
$out .= '
TBE_EDITOR.addActionChecks("submit", "'.addslashes($additionalJS_submit).'");
';
}
Solange ich das "return false" raus lasse, werden die beiden Alerts auch ausgeführt, aber da ich den Submit ja Abbrechen will, muss dieses "return false" da rein. Tue ich das, funktioniert kein Befehl mehr aus dieser Zeile.
Ne Idee?!
sorry in den tceforms bin ich dann nicht so tief drinnen
georg
Au weia...ich geh kaputt...seit heute Morgen bin ich an diesem xajax dran und versuche das in meine Extension einzubinden.
Das Problem mit dem "return false" hat sich auch komplett erledigt, da alle Buttons im Typo3 Backend per type="image" und nicht per type="submit" eingebunden werden. Ich musste eine halbe Ewigkeit suchen bis ich herausgefunden habe, dass sämtliche Submit-Geschichten über JavaScript gesteuert werden. Ich müsste also diese JavaScript-Klasse verändern, damit ich in dieses onSubmit wirksam eingreifen könnte.
Meine nächste Idee war also per xajax herauszufinden, ob ein DS schon in der DB vorhanden ist, wenn ja, dann soll er wie bei vielen anderen Formularen, den SAVE-Button verschwinden lassen. Im Falle von Typo3-BE also die 3 Buttons oben und unten.
Meine ersten Tests mit einer einfachen JavaScript-Funktion waren erfolgreich und auch mein erster Mini-Test mit xajax war erfolgreich, aber xajax will in seinem "assign" immer eine ID eines Elements haben. Die save-Buttons haben aber einen Namen und müssten mit getElementsByName()[] angesprochen werden.
Werd mal am WE weiter programmieren und Euch auf dem Laufenden halten.
Stefan
OK...Ich hab's gefunden:
http://api.xajaxproject.org/files/xajax_core/xajaxResponse-inc-php.html#xajaxResponse.script
function dataunique() {
$objResponse = new tx_xajax_response();
$objResponse->script("document.getElementsByName('_savedok')[0].style.visibility = 'hidden';");
return $objResponse;
}
Es gibt tatsächlich keine Möglichkeit per xajax-Klasse auf Elemente mit Namen zuzugreifen. Tststs
Die Script-Variante ist die einzige Möglichkeiten diesen Kram zu umgehen.
Jetzt kann ich beruhigt ins WE gehen, hatte schon Angst 6 Stunden xajax in den Sand geworfen zu haben.
froemken
Wow...ich hab's geschafft...meine erste Extension steht zum Download bereit:
http://www.sfroemken.de/downloads/action/show-category/category/typo3/download//80924e99dc/
Wenn ich das mit dem Upload ins TER richtig verstanden habe, wird diese EXT Morgen auch dort in der Version 0.0.1 zur Verfügung stehen.
Ähm...Frage nebenbei, wie frage ich denn ab, ob eine Extension schon installiert ist oder nicht? Ich hab zwar im Kickstarter angegeben, dass xajax benötigt wird, aber meckern tut er bei der Installation nicht! *SchulterZuck*