Joomla 5 Mitteilung

Wir freuen uns mitteilen zu können, dass seit dem 29. Januar 2024 alle unsere Joomla Erweiterungen mit Joomla 5 kompatible sind.

Für alle die gerade noch von Joomla 3 auf 4 aktualisieren: Anleitungen für die Joomla 4 Migration gibt es hier:

Es gibt nun auch eine eigenständige Dokumentation für Visforms für Joomla 4 und für Visforms auf Joomla 5

Forum

Visforms Subscription Inhaber können in unserem Forum Fragen stellen. Bitte mit dem entsprechenden Benutzer anmelden.
Jeder kann lesend auf das Forum zugreifen.

Bitte stellen Sie nur 1 Frage pro Thema.

Wichtig Angaben für fast jede Frage:
V1: Welche Visforms-Version läuft?
V2: Welche Joomla-Version läuft?
V3: Welche PHP-Version läuft?

Aufgrund von Feiertagen und Urlaub ist bei Anfragen im Forum in der Zeit vom 20. Dezember 2024 bis zum 8.Januar 2025 mit verlängerten Antwortzeiten zu rechnen.

Caching und Visforms

Mehr
10 Jahre 2 Monate her #911 von Administrator AV
Administrator AV antwortete auf Caching und Visforms
Hi Burn,

PN ist leier nicht Bestandteil des Kunena Forum Core und weil ohnehin eigentlich nur ich hier Fragen beantworte habe ich keine zusätzlich Erweiterung installiert.
Meine Mail ist contact@vi-solutions.de

Gruß,
Aicha

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

Mehr
10 Jahre 2 Monate her #914 von burn
burn antwortete auf Caching und Visforms
Achso, ok.

Die Email ist grade raus.
Danke!

Mehr
10 Jahre 2 Monate her #915 von Administrator AV
Administrator AV antwortete auf Caching und Visforms
ok, mail ist angekommen. Ich schau es mir so schnell wie möglich an.

Gruß,
Aicha

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

Mehr
10 Jahre 2 Monate her #923 von Administrator AV
Administrator AV antwortete auf Caching und Visforms
Hi Burn,

so ich hatte jetzt ausgiebig Zeit mich auf deiner Spielwiese umzusehen und habe auch herausgefunden wo es klemmt und wie du das Problem lösen kannst. Hierbei gibt es gute und schlechte Nachrichten.

Als erstes ist einmal zu sagen, dass Formulare sich natürlich nicht gut zum Cachen eignen und Visforms auch so geschrieben ist, dass es das Cachen von Formularen unterbindet. Allerdings gibt es bei der Kofiguration des Joomla! Caches eine Einstellung, die das einfach überschreibt.

Der Joomla! Cache arbeitet in mehreren Stufen und meines Erachtens ist die Dokumentation dafür nur mittelmäßig.

Auf der einen Seite gibt es ein System Plugin Cache. Dieses Plugin legt, wenn es aktiviert ist, von jeder Seite, wenn Sie einmal aufgerufen wird, einen Cache an, der die Seite eins zu eins enthält. Die gecachten Seiten werden im Verzeichnis cache/page gespeichert und wenn du die Seite das nächste Mal aufrufst wird einfach nur das gecachte Dokument genommen und angezeigt. Die eigentliche Componente (Visforms), wird überhaupt nicht mehr angefasst und die im Code verankerte Einstellung, dass nicht gecacht werden soll, deshalb nicht gesehen.

Visforms hat einen Schutzmechanismus, der verhindern soll, das ein Formular aus versehen mehr als einmal abgeschickt wird. Hierzu wird, wenn das Formular über den Visformscode zur Anzeige gebracht wird, eine Variable gesetzt. Wird das Formular abgeschickt, schaut der Code, ob die Variable gesetzt ist. Ist das nicht der Fall wird das Abschicken abgebrochen und er Fehler "Das Formular kann nur einmal abgeschickt werden" angezeigt. Ist die Variable gesetzt wird das Formular verschickt und die Variable gelöscht. Wenn nun über den System Cache direkt die gecachte Seite angezeigt wird, dann wird die Variable also nicht gesetzt und das Formular kann letztlich nicht verschickt werden. Auf deiner Seite ist nun noch erschwerend hinzukommen, dass dein Template die Messages nicht anzeigt, so dass die Fehlermeldung nicht angezeigt wurde. Du musst in dein Template das
Code:
<jdoc:include type="message" />

einbauen.

Auf der anderen Seite gibt es die Cache Einstellungen in der System Configuration. Dieses Caching hat erst einmal nichts mit dem Plugin zu tun und funktioniert auch dann, wenn das Plugin abgestellt ist. (Das ist explizit anders als z.B. bei den SEF Einstellungen, die nur funktionieren, wenn auch das SEF Pluguin aktiviert ist.) Gecacht werden dann die Standard Joomla! Komponenten, aber nicht einfach jede Seite. Visforms wird dann nicht gecachte wegen der Einstellungen im Visformscode.

Der erste Schritt zur Lösung deines Problem ist also, das Plugin System Cache zu deaktivieren.

Allerdings gibt es dann immernoch ein Problem mit dem Formular, dass du mit Hilfe des Moduls und des Plugin Loadposition in einen Artikel eingebaut hast. Denn der Artikel wird auch dann gecacht, wenn nur der Cache in der System Konfiguration aktiviert ist.

Ich habe ein bisschen gegooglet und eine Joomla! Erweiterung mit dem Namen CacheControl gefunden.
extensions.joomla.org/extensions/core-en...formance/cache/17783
Wenn du diese Plugin installiert, aktivierst und den Link auf den Artikel, der das Formular enthälst dort in den "Rules" einfügst, dann wird der Artikel mit dem Formular nicht mehr gecachte und das Formular im Artikel funktioniert.

Eine andere Möglichkeit wäre den oben erwähnten Mechanismus in Visforms abzustellen. Hierzu musst du allerdings den Code anfassen und die Änderung würde beim nächsten Update überschrieben. Vielleicht überlege ich mir allerdings, ob ich einen Parameter einbaue, mit dem man den Mechanismus abschalten kann, aber da bin ich mir noch nicht sicher.

Die entsprechenden Codezeilen sind in der Datei components/com_visforms/controller.php

Zeile 59
Code:
$_SESSION['vis_send_once'.JFactory::getApplication()->input->getInt('id')] = "1";
auskommentieren (oder löschen)
Code:
//$_SESSION['vis_send_once'.JFactory::getApplication()->input->getInt('id')] = "1";
und Zeile 144 - 150
Code:
if (isset( $_SESSION['vis_send_once'.$visform->id])) { unset($_SESSION['vis_send_once'.$visform->id]); } else { JError::raiseWarning( 0, JText::_( "COM_VISFORMS_CAN_SENT_ONLY_ONCE" )); return false; }

auskommentieren (oder löschen)
Code:
/*if (isset( $_SESSION['vis_send_once'.$visform->id])) { unset($_SESSION['vis_send_once'.$visform->id]); } else { JError::raiseWarning( 0, JText::_( "COM_VISFORMS_CAN_SENT_ONLY_ONCE" )); return false; }*/

Ich hatte immer mal wieder Leute die mit dem "Das Formular kann nur einmal verschickt werden" Probleme hatten, ohne dass wir rausfinden konnten woran es lag. Insofern ist dein Fehler für mich sehr hilfreich gewesen!

Herzliche Grüße und viel Erfolg,
Aicha

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

Mehr
10 Jahre 2 Monate her #925 von burn
burn antwortete auf Caching und Visforms
Hi Aicha,

sorry, dass ich so lange nicht reagiert hab, es standen grad wieder einige andere Themen an. Da war das Problem auf der Seite nicht groß genug :)

Vielen Dank für deine ausführliche Antwort. Es klingt ja auf jeden Fall so, als ob das Ganze lösbar ist.
Ich denke, dass ich mich in den nächsten 1-2 Wochen wieder dem Thema widmen kann und dann geb ich Bescheid, ob es mir geholfen hat.

Viele Grüße
Burn

PS: Freut mich, dass mein Problem auch generell geholfen hat :)

Mehr
10 Jahre 2 Monate her #945 von burn
burn antwortete auf Caching und Visforms
So, endlich habe ich es geschafft.

Eingebaut umgesetzt hab ich jetzt die Lösung mit dem Plugin CacheControll, da ich nicht nach jedem Update wieder die Änderungen an den Core-Dateien machen wollte.

Das hat problemlos funktioniert!
Vielen Dank nochmal!!

Grüße
Burn

Moderatoren: Administrator AVAdministrator IV
Powered by Kunena Forum