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.

1305 FUNCTION [Datenbank].CHAR_LENGTH does not exist

Mehr
7 Jahre 5 Monate her #3692 von Administrator AV
1305 FUNCTION [Datenbank].CHAR_LENGTH does not exist wurde erstellt von Administrator AV
Im deuschsprachigen Joomla! Forum bin ich über diesen Beitrag gestolpert, der Visforms betrifft
forum.joomla.de/index.php/Thread/1525-13...NGTH-does-not-exist/
Schade, dass dieser nicht hier im Forum gepostet wurde, denn dann hätte ich früher von diesem Bug in Visforms erfahren.

Der Bug zeigt sich darin, dass ein Fehler 1305 FUNCTION [Datenbank].CHAR_LENGTH does not exist geworfen wird nachdem der Benutzer das Formular abgeschickt hat, wenn man in Visforms in der Formularkonfiguration einen Ergebnistext angelegt hat. Der Fehler tritt nur selten auf, nämlich immer dann, wenn das Joomla! auf einer etwas älteren MySql Version (< 5.5) läuft.

Visforms verwendet in seinem Router einen mySql Befehl, der erst in MySql Versionen von 5.5 und höher existiert. Da Joomla! als Mindestversion für MySql 5.1 angibt, werden ich das Problem mit der nächsten Visforms-Version fixen. In der Zwischenzeit könnt ihr, wenn ihr betroffen seit, versuche, ob folgende Änderung das Problem behebt.

Geht in das Verzeichnis components/com_visforms und öffnet die Datei router.php.
In Zeile 195 - 220 findet sich folgender 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 }

Diesen bitte ersetzen mit
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 }

Zur Sicherheit eine Sicherungskopie der router.php machen, bevor ihr die Änderungen durchführt.
Bitte lasst mich wissen, ob das das Problem behebt.

Herzliche 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