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?

URL-Validierung und ReadOnly

More
3 months 2 weeks ago - 3 months 2 weeks ago #10605 by MaliRaj
URL-Validierung und ReadOnly was created by 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)
  • Last edit: 3 months 2 weeks ago by MaliRaj. Reason: Nachtrag / Ergänzung

    More
    3 months 2 weeks ago #10606 by Administrator AV
    Replied by Administrator AV on topic 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 :-).

    More
    3 months 2 weeks ago - 3 months 2 weeks ago #10608 by MaliRaj
    Replied by MaliRaj on topic 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)
    Last edit: 3 months 2 weeks ago by MaliRaj.

    Moderators: Administrator AVAdministrator IV
    Powered by Kunena Forum