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.

1305 FUNCTION [Datenbank].CHAR_LENGTH does not exist

Mehr
8 Jahre 1 Monat her #3693 von Administrator AV
1305 FUNCTION [Datenbank].CHAR_LENGTH does not exist wurde erstellt von Administrator AV
I just noticed the following bug in Visforms which only occurs on systems with mysql versions lower than 5.5 and
if the option "Result text" is set in the form configuration.

A user will then get an error 1305 FUNCTION [Datenbank].CHAR_LENGTH does not exist after the form was submitted.

The bug is due to an incompatible mysql statement. I will fix the bug with the next Visforms version. In the meantime you can try the following fix.

Open the file router.php in components/com_visforms.
In line 195 - 220 you find the following code
Code:
if (strpos($segment, ':') !== false) { $query = $db->getQuery(true); $query->select('CASE WHEN CHAR_LENGTH (name) THEN CONCAT_WS(":", id, name) ELSE id END as slug'); $query->from('#__visforms'); $db->setQuery($query); $slugs = $db->loadColumn(); if (!empty($slugs)) { foreach ($slugs as $slug) { if ($segment === $slug) { $form = explode(':', $segment); $vars['id'] = $form[0]; if ($count == 2) { $vars['view'] = 'message'; } continue; } } } //we should not arrive here }

Please replace it with:
Code:
if (strpos($segment, ':') !== false) { list($id, $name) = explode(':', $segment, 2); $query = $db->getQuery(true); //$query->select('CASE WHEN CHAR_LENGTH (name) THEN CONCAT_WS(":", id, name) ELSE id END as slug'); $query->select($db->quoteName( 'name')); $query->from('#__visforms'); $query->where($db->quoteName('id') . ' = ' . (int) $id); $db->setQuery($query); $slug = $db->loadColumn(); if (!empty($slug)) { if ($slug === $name) { $vars['id'] = $id; if ($count == 2) { $vars['view'] = 'message'; } } } //we should not arrive here }

Make a backup copy of the original file before you make the changes, just in case. Please let me know, if this fixes the problem.

Regards,
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
7 Jahre 11 Monate her - 7 Jahre 11 Monate her #3873 von HCDesign
Hallo , danke vorab für die tolle Erweiterung!

Ich hatte genau dieses Problem und mit dem Fix wurde das Problem fast beseitigt.
Ich habe noch einen kleinen Fehler gefunden welcher für eine Fehlerausgabe bei der Anzeige der Erfolgsnachricht geführt hat:

und zwar:
if ($slug === $name) konnte nicht funktionieren da $slug ein Array ist
if ($slug[0] === $name) hat für mich dann das Problem gelöst

Ich mir jetzt allerdings nicht sicher ob diese Lösung für alle gilt....
Letzte Änderung: 7 Jahre 11 Monate her von HCDesign.

Mehr
7 Jahre 11 Monate her #3875 von Administrator AV
Hallo,

danke!
Du hast absolut recht, in diesem Code hat sich ein Fehler eingeschlichen.
Ich hatte den Fix nach Visforms 3.8 übernommen und den Fehler dort mittlerweile auch entdeckt, und in Visforms 3.8.16 ist das gefixt. Ich hatte aber vergessen dies hier mitzuteilen (ist mir irgendwie durchgerutscht).

Der Fix ist folgender (ein paar Zeilen weiter oben).

Statt
$slug = $db->loadColumn();
muss es
$slug = $db->loadResult();
heißen, dann kann der folgende Code bleiben wie er ist.

Aber so wie du es gelöst hast sollte es auch immer funktionieren.

Liebe Grüße,
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 :-).

Moderatoren: Administrator AVAdministrator IV
Powered by Kunena Forum