Zum Inhalt springen

Typo3 4.5.5 - Allgemeine Probleme mit JS Frameworks?

Erstellt am 7. September 2011 · 17 Antworten · letzte Antwort am 30. September 2011

Tags: Bilder, JavaScript & AJAX, Frage

danaron ·

Habe dasselbe Problem, mein Page Objekt heisst aber page. Daran kann es nicht liegen.
Leider werden die Javascripts aber trotzdem nicht eingebunden.

TYPO3 4.5.6
perfectlightbox 3.1.4

Statisches Template von Perfect Lightbox ist eingebunden, trotzdem wird das Bild entweder im neuen Fenster geöffnet, wenn nur Enlarge on Click = Enabled oder im selben Fenster, wenn Lightbox ImageSets Präsentationsmodus oder Slideshow oder eine Kombination angeklickt ist.

Im Header erscheint kein JavaScript. Andere wie Google und Flash Scripte erscheinen aber.

Die jQuery Library möchte ich lieber nicht installieren, da diese veraltet schient und ich Probleme mit tt_products und anderen Extensions befürchte. Was kann ich machen?
Danke für die Hilfe!

fiedomedia ·
danaron schrieb

Die jQuery Library möchte ich lieber nicht installieren, da diese veraltet schient und ich Probleme mit tt_products und anderen Extensions befürchte.

Hallo danaron,

wer sagt denn sowas???
t3jquery macht nichts anderes, als jQuery einzubinden. Welche Version genau kannst du selbst bestimmen...
Wenn tt_products (welches älter ist als t3jquery 😉) Probleme mit t3jquery hätte, könntest du in tt_products auch das Einbinden von jQuery unterbinden, so dass du nur noch das jQuery von t3jquery eingebunden hast...

Grüße Patrick

danaron ·

Hi Patrick
Habe die extension jquery mal als Versuch installiert, leider bringt dies aber nicht das erhoffte Funktionieren der Extension perfectlightbox. Wenn ich das richtig sehe, sollte dies ja eigentlich auch ohne die Zusatzextension laufen.
Vieleicht ist das Problen auch, dass ich noch die Extension xajax am laufen habe.

Für Tipps bin ich sehr froh, Danke!

icy ·

danaron: hast Du mal einen Link zu einer Frontendausgabe?

Was sieht Du eigentlich, wenn Du Dir ein Bildelement im Backend öffnest? Die perfectlightbox wird pro Bild eingeschaltet, indem man click-enlarge aktiviert, da müssten aber noch ein paar mehr Checkboxen sein. Siehst Du die?

Grüße, Ines

fiedomedia ·

Hallo danaron,

danaron schrieb

Habe die extension jquery mal als Versuch installiert, ...

Du benutzt die falsche Extension.
"jquery" ist wirklich veraltet (von 2008 ), du solltest stattdessen "t3jquery" benutzen, das ist die aktuelle, die man wärmstens empfehlen kann.
Hier hast du noch nen Link: t3jquery im TER

Grüße Patrick

danaron ·

Danke für die Hilfe.
Habe es nun mit t3jquery 2.0.1 versucht, hat aber auch nicht gefruchtet. Muss irgendwo ein Konflikt mit einer anderen einstellung sein ;-(

Was empfiehlst du als Variable bei:
File prefix [jqLibFilename]
Defines the prefix of the generated library (jquery-###VERSION###.js)

Hab da mal "jquery-1.6.js" eingetragen. Das Manual bringt mich da leider auch nicht weiter.
Hast du eine Beispielconfiguration? Sollte nach der Installation die beiden Extensions t3jquery und prefectlightbox automatisch miteiander funktionieren oder braucht es hier Einstellungen?

PS: Die Beispiele sehen übrigens sehr gut aus, Danke für den Tipp

fiedomedia ·
danaron schrieb

Hast du eine Beispielconfiguration? Sollte nach der Installation die beiden Extensions t3jquery und prefectlightbox automatisch miteiander funktionieren oder braucht es hier Einstellungen?

Im Grunde brauchst du nicht viel machen, außer t3jquery zu installieren.
Dann gehst du in die Extension-Configuration und wählst "Always include ...", damit jQuery auch auf jeder Seite eingebunden wird.
Danach wählst du aus, ob jQuery-Core, jQuery-UI und jQuery-Tools eingebunden werden sollen und in welcher Version (am besten immer die aktuellste).

Und dann würde ich dir empfehlen, jQuery über einen CDN einzubinden, das kannst du in der Extension-Configuration ganz unten auswählen. Dann wird dir automatisch die benötigte Version von Google runtergeladen.

Evtl. musst du in der Konfiguration von perfectlightbox noch sagen, dass diese Extension KEIN jQuery mehr einbinden darf.

Ansonsten wäre es wirklich praktisch, wenn du uns einen Link geben könntest, wo man sich dein bisheriges Ergebnis mal anschauen könnte...

Grüße Patrick

fiedomedia ·
danaron schrieb

ja, habe ich so gemacht, jetzt steht am Ende des bodys:
<script src="http://cdn.jquerytools.org/1.2.5/jquery.tools.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
Scripts werden also eingebunden.

Ok, jQuery UI und jQuery Tools sind da, aber jQuery-Core fehlt noch, müsste 1.6.irgendwas sein. Das ist das Haupt-jQuery und muss unbedingt da sein.
Hast du das evtl. im Extension-Manager vergessen mitzunehmen oder einfach nur im Quelltext übersehen?

Und du sagst, dass das JS im Footer ist. Prüf mal, ob evtl. das Javascript von der perfectlightbox im Header ist.
Dann würde deine Seite erst versuchen, die Lightbox zu generieren, und (da jQuery erst im Footer kommt) hier den Fehler melden, dass jQuery nicht definiert wurde...
Dann musst du schauen, dass alles in den Footer wandert und ERST jQuery geladen wird, danach der Rest vom JS.

Grüße Patrick

danaron ·

Japp, nun klappt es. Der Fehler war im Haupttemplate:
Statische Templates NACH Basis-Template einschließen = Häcklein setzen
😉
Danke Patrick für die Hilfe!

icy ·

Welche Version der Lighbox nutzt Du jetzt? jquery oder scriptacolus?
Bitte guck da nochmal nach, nicht dass Du mehrere JavaScript Bibliotheken nutzt, die sich im schlimmsten Fall dann noch irgendwie begkriegen...

Ansonsten gut dass es läuft.

grüße, Ines

danaron ·

Salut Ines
War alles etwas komplizierter.
Fazit: es braucht keine zusätzliche Extension wie t3jquery, hat nur daran gelegen, dass das statische Templates NACH Basis-Template einschließen = Häcklein gefehlt hat.
Als ich dies aber gesetzt habe, ist tt_products nicht mehr gelaufen. Aus diesem Grund habe ich dies damals auch rausgenommen ;-)
Lösung:
Extensions Template machen, dort, und nur dort das Häcklein "statische Templates NACH Basis-Template einschließen" setzen, dort das Statische Template einschliessen und das Extensiontemplate natürlich im Haupttemplate einschliessen.
Danach klappt die Extension perfectlightbox für alle Seiten, ausser für den Shop.

Wer es auch für den Shop zum laufen dringt, ist der König ;-)

fiedomedia ·

@danaron:
Ich hab mir schnell deine Seite angeschaut. Du solltest noch folgendes TS (ich glaube bei den Constants) verwenden:

plugin.perfectlightbox {
  libraryToUse = jquery
  # wenn du immernoch t3jquery verwendest (ist zu empfehlen!), dann:
  includeJSLibrarys = 0
}

Damit haust du Prototype aus deiner Seite raus und verwendest die Slimbox mit jQuery (ist schon bei perfectlightbox dabei), weil sonst jQuery + Prototype geladen werden, was 1. Konflikte geben kann und 2. viele KBs ergeben, die unnötig geladen werden müssen.

Außerdem kommt in deinem Shop immer folgende Javascript-Fehlermeldung: "$("#accordion" ) is null".

Grüße Patrick