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?

URL-Validierung und ReadOnly

Mehr
5 Monate 6 Tage her - 5 Monate 6 Tage her #10605 von MaliRaj
URL-Validierung und ReadOnly wurde erstellt von MaliRaj
Hallo Visforms-Team,

in einem Formular nutze ich ein URL-Feld, um in der DataView-Tabellenansicht einen HTML-Link nutzen zu können. Dieser Link wird während der Formularverarbeitung und später beim Editieren ausschließlich durch Scripte dynamisch erzeugt bzw. geändert. Daher ist es "readonly". Die Links führen zu Joomla-Beiträgen. Da ich das Feld in den anderen Formularansichten nie benötige, blende ich es mit CSS/JavaScript in FEWA aus. Das funktioniert in der Live-Site (HTTPS) sehr zuverlässig, sowohl beim Ausfüllen des Formulars als auch beim Bearbeiten einzelner Datensätze.
In meiner Testumgebung (HTTP) dagegen scheitert das Editieren an der visforms-eigenen URL-Validierung. Dort ist mir auch erst aufgefallen, dass das Feld trotz "ReadOnly" validiert wird.
Frage: Wie kann ich das verhindern?
Hintergrund: zur Erzeugung der Links benutze ich php:
Code:
$url   = Route::_(ContentHelperRoute::getArticleRoute($artid, $catid),true,true);// absolute URL anhand der Artikel-ID ermitteln

das führt auf der Live-Site zum Beispiel zu diesem Link:

In der lokalen Testumgebung kommt es bei der Bearbeitung des Datensatzes zu diesem Fehler:

Mir scheint, dass die Validierung auch in der Testumgebung an sich schon richtig funktioniert. Es wird ja richtigerweise "http://" erwartet. Allerdings wird meine URL mit obigem php auch lokal zu https und nicht zu http; also muss ich da ansetzen und die Ursache dafür finden. (?)
Bis dahin wollte ich zumindest die Validierung "überspringen". Eine benutzerdefinierte Validierung auf "^http" funktioniert nicht.

Nachtrag:
Nachdem ich meine Scripte für die lokale Test-Installation überarbeitet habe, werden auch die lokalen Links korrekt erzeugt. Dennoch kommt es zu einem Fehler bei der Validation:
 
Was läuft da schief?

Freundliche Grüße aus PM
Heinz
(Joomla 5.1.2 / Visforms+Subscription 5.12 / PHP 8.2)
Letzte Änderung: 5 Monate 6 Tage her von MaliRaj. Begründung: Nachtrag / Ergänzung

Mehr
5 Monate 6 Tage her #10606 von Administrator AV
Administrator AV antwortete auf URL-Validierung und ReadOnly
Hallo Heinz,

ja, Felder werden auch mit der Readonly Option validiert.
Es wird erwartet, dass der Wert im Readonly Feld den Regeln entspricht.
Bei einem Feld vom Typ URL z.B. dass es eine valide URL enthält.
Beim einem Number Feld eine Zahl gemäß der Feldkonfiguration, etc.
Auch required und ähnliches wird validiert.

Schließlich ist es relativ einfach trotz readonly mit dem Formular einen manipulierten Wert zu übermitteln.
Deshalb ist es ja so wichtig, dass es neben der browserseitigen Validierung auch die serverseitige Validierung gibt.

Was läuft hier schief?

localhost ist in Visforms keine gültige URL.
Visforms erwartet eine domain mit top level domain.
Mir ist bewusst, dass das letztlich nicht ganz korrekt ist und die Fehlermeldung, die du siehts ist in diesem Fall auch tatsächlich nicht hilfreich.
Ich bin schlicht nicht auf die Idee gekommen, dass das Feld so genutzt werden könnten, wie du es tust.

Diese Validierungen auf gültige URL, gültige E-Mail sind in der Praxis leider ziemlich komplex, weil die Spezifikationen so viele unterschiedliche, schlecht zu fassen Variationen übrig lassen.
Letztlich ist man mehr oder weniger auf die / und die . Zeichenanzahlen etc in den Strings angewiesen.
Was für uns als Menschen eigentlich sehr einfach zu erkennen ist, ist im Code sehr undankbar.
Deshalb habe ich entschieden, den localhost einfach bei einer validen URL nicht zu erlauben.

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 :-).

Mehr
5 Monate 6 Tage her - 5 Monate 6 Tage her #10608 von MaliRaj
MaliRaj antwortete auf URL-Validierung und ReadOnly
Hallo Aicha,
vielen Dank für die hilfreichen Informationen. Ich habe daraufhin noch einmal meine Feldkonfiguration durchdacht und bin zu dem Entschluss gekommen, den Feldtyp von URL auf HIDDEN zu ändern. Damit erspare ich mir auch die Manipulationen zum Ausblenden des Feldes. Das passt für meine Anforderung viel besser.
In der DataView-Tabellenansicht muss ich dann mit Hilfe der FEWA den HTML-Link nur noch  "klickbar" machen. Hoffe das klappt.
Nachtrag: Ja, das funktioniert bestens, sowohl auf der Live-Seite, als auch in der lokalen Testumgebung.

Freundliche Grüße aus PM
Heinz
(Joomla 5.1.2 / Visforms+Subscription 5.12 / PHP 8.2)
Letzte Änderung: 5 Monate 6 Tage her von MaliRaj.

Moderatoren: Administrator AVAdministrator IV
Powered by Kunena Forum