Joomla 5 Notice

We are pleased to announce that as of January 29, 2024, all of our Joomla extensions are compatible with Joomla 5.

For all who are still updateing from Joomla 3 to Joomla 4: Joomla 4 Migration instructions are available here:

There is now a separate Documentation for Visforms for Joomla 4 and for Visforms for Joomla 5!

Forum

Visforms Subscription user can ask questions in our forum. Please log in with the relevant user first.
Everybody can access the forum for reading.

Please only ask 1 question per topic.

Important information for almost every question:
V1: Which Visforms version is running?
V2: Which Joomla version is running?
V3: Which PHP version is running?

Caching und Visforms

More
10 years 1 month ago #911 by Administrator AV
Replied by Administrator AV on topic 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 :-).

More
10 years 1 month ago #914 by burn
Replied by burn on topic Caching und Visforms
Achso, ok.

Die Email ist grade raus.
Danke!

More
10 years 1 month ago #915 by Administrator AV
Replied by Administrator AV on topic 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 :-).

More
10 years 1 month ago #923 by Administrator AV
Replied by Administrator AV on topic 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 :-).

More
10 years 1 month ago #925 by burn
Replied by burn on topic 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 :)

More
10 years 1 month ago #945 by burn
Replied by burn on topic 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

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum