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.

Berechnete Felder

Mehr
1 Jahr 11 Monate her #8743 von remanso01
Berechnete Felder wurde erstellt von remanso01
Hallo,

ich bins noch mal.
Erst einmal vielen Dank für die letzte Unterstützung hier.
Nun stehe ich für mich vor einem Problem da was mir Kopfzerbrechen bereitet.
Ich möchte für unsere kleine Pensio ein Buchungsformular entwerfen.
Soweit klappt auch alle, zumindest die ersten Felder...
Datumsberechnung geht schon mal.

Zu meiner Überlegung:
Wir haben drei Zimmer mit 6 verschiedenen Preisen (Quasi als Einzelperson oder 2 Personen)
- Nun habe ich ein Selectfeld mit den Zimmern ertsellt. (Pflichtfeld)
- Zwei Datumsfelder Anreise vom und Abreise am...
- Eine berechnetes Feld Übernachtungen
Bis hier geht alles
Dann eine Selectfeld Preise (Hier sind alle Einzelpreise drin)
Jetzt möchte ich gern dass das Auswahlfeld Zimmer Multipliziert wird mit Preise und Übernachtungen.

Und da hackt es bei mir.

Muss ich nun für jedes Zimmer ein neue Feld mit Preis erstellen oder geht das auch anders?

Leider kann ich noch kein Link zur Seite nennen, da ich alles Local Vorbereite.

Viele Grüße und im Vorraus Danke
Dirk

Mehr
1 Jahr 11 Monate her #8744 von remanso01
remanso01 antwortete auf Berechnete Felder
Hallo,

hat sich erledigt.
Wenn man zu bl... ist eine Klammer richtig zu setzen braucht man sich nicht wundern.

Vorher:
([ROOMS]*[DAYS]))

Nachher:
([ROOMS]*([DAYS]))

Eine Frage dennoch...
ist es möglich nach der Berechnung eine Währung bzw. Tag(e) einzutragen?

Und die Summe mit Dezimaltrenner für Tausend darzustellen?

Beispiel
([ABREISE]-([ANREISE])) = 10 Tage
([ROOMS]*([DAYS])) = 1.210.000 Guaranì

Viele Grüße
Dirk

Mehr
1 Jahr 11 Monate her - 1 Jahr 11 Monate her #8749 von Administrator IV
Administrator IV antwortete auf Berechnete Felder
Hallo Dirk,

danke für deine echt interessante Anwendungs-Frage!

Es ist beides möglich:
- nach der Berechnung eine Währung bzw. Tag(e) einzutragen
- die Summe mit Dezimaltrenner für Tausend darzustellen.

Es geht aber nicht über die Feldkonfiguration alleine.
Du musst den folgenden, wie ich denke weitgehend selbsterklärenden, Custom JavaScript-Code in die Seite einbinden:
Code:
jQuery(document).ready(function() {     jQuery('.bind-days').on('change', function(){         let value = jQuery(this).val();         jQuery(this).val(value + ' Tage(e)');     });     jQuery('.bind-price').on('change', function(){         let value = jQuery(this).val();         jQuery(this).val(numberWithCommas(value) + ' Guaranì');     }); }); function numberWithCommas(x) {     return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); }


Und folgendes in der Feld-Konfiguration einstellen (siehe mein Test-Formular).

- Feld 'days':
Reiter 'Grundeinstellungen', Parameter 'Formel' = [ABREISE]-[ANREISE]
Reiter 'Grundeinstellungen', Parameter 'Genauigkeit' = 0
Reiter 'Erweitert', Parameter 'CSS Klasse des Feldes' = bind-days

- Feld 'price':
Reiter 'Grundeinstellungen', Parameter 'Formel' = ([ABREISE]-[ANREISE])*[ROOMS]*2130
Reiter 'Grundeinstellungen', Parameter 'Genauigkeit' = 2
Reiter 'Grundeinstellungen', Parameter 'Dezimaltrenner' = Punkt
Reiter 'Erweitert', Parameter 'CSS Klasse des Feldes' = bind-price

Der Wert '2130' ist halt ein fiktiver Umrechnungsfaktor mit der Einheit Preis pro Zimmer und Tag.
Die Formeln sind weniger fehleranfällig und leichter lesbar, wenn du nur genau die Klammern setzt, die mathematisch notwendig sind.

Wichtig:
Alle Berechnungsfelder, die nach der Berechnung einen Text an den berechneten Zahlenwert angehängt bekommen, dürfen nicht mehr in anderen Berechnungsfeldern verwendet werden.
Daher kommt der Ausdruck '[ABREISE]-[ANREISE]' in der Formel für Feld 'price' ein zweites Mal vor und nicht [days].
Denn der zusätzlich angehängte Text würde bei Weiter-Verwendung in einem anderen Berechnungsfeld zu einem Fehler führen, da als Eingabe-Objekte für Berechnungsfelder nur Zahlen vorkommen dürfen.

Mein Test-Formular sieht dann so aus:
vi-solutions.de/forum-uploads/calculate-form.png

Gruß, Ingmar

: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 :-).
Letzte Änderung: 1 Jahr 11 Monate her von Administrator IV.

Mehr
1 Jahr 11 Monate her - 1 Jahr 11 Monate her #8750 von Administrator IV
Administrator IV antwortete auf Berechnete Felder
Nachtrag.

Eigenen Custom-JavaScript in Joomla einfügen:
Ich gehe davon aus, dass du weißt, wie du Custom-JavaScript in deine Joomla-Instanz einfügen kannst.
Dafür gibt es zahlreiche Möglichkeiten, etwa im Rahmen von Joomla oder deines Templates.

Mit Visforms geht es mit der Erstellung eines Overrides, in das du dein JavaScript einfügst:
docs.joomla-4.visforms.vi-solutions.de/d...yout-with-overrides/

: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 :-).
Letzte Änderung: 1 Jahr 11 Monate her von Administrator IV.

Mehr
1 Jahr 11 Monate her #8756 von remanso01
remanso01 antwortete auf Berechnete Felder
Hallo Ingmar,

erst einmal super vielen Dank für die Hilfe.
Ich habe nun alles so gemacht wie du es beschrieben hast.

Nur mit dem Ablageort der custom.js Datei habe ich schwierigkeiten.
Habe im Rootverzeichnis...
/templates/cassiopeia/html/layouts/com_visforms/layouts/custom.js abgelegt.
Genauso wie es in der Doku beschrieben wurde.
Aber es hat keine Wirkung.

"Mit Visforms geht es mit der Erstellung eines Overrides, in das du dein JavaScript einfügst:
docs.joomla-4.visforms.vi-solutions.de/d...yout-with-overrides/"

Einzige Änderung die ich durchgeführt hatte war
- Feld 'price':
Reiter 'Grundeinstellungen', Parameter 'Formel' = ([ABREISE]-[ANREISE])*[ROOMS]*0
Reiter 'Grundeinstellungen', Parameter 'Genauigkeit' = 0

Da es in Paraguay keine Nachkommastellen gibt (Hier wird auf- oder abgerundet)

Hab ich da etwas falsch gemacht?

Viele Grüße
Dirk

Mehr
1 Jahr 11 Monate her - 1 Jahr 11 Monate her #8760 von Administrator IV
Administrator IV antwortete auf Berechnete Felder
Hallo Dirk,

du verwechselst bzw. vermischst die Inhalte und Funktionsweise der beiden Abschnitte der Dokumentation miteinander.
Layout durch Overrides anpassen: docs.joomla-4.visforms.vi-solutions.de/d...yout-with-overrides/
Layout mit CSS anpassen: docs.joomla-4.visforms.vi-solutions.de/d...orm-layout-with-css/

Der Mechanismus mit 'custom.css'  ('custom' im Namen der Datei am richtigen Ort) funktioniert nur für 'Layout mit CSS anpassen'.
Wenn du es mit Visforms machen willst, dann musst du eine kleine PHP-Datei schreiben (siehe unten).
Ansonsten bietet dir eventuell auch dein Template eine Template-spezifische Möglichkeit, dein Custom JavaScript einzubinden.

Für deinen Fall 'Layout durch Overrides anpassen' musst du für die Top-Level PHP Datei ein Override erstellen.
Angenommen du hast das Template 'Cassiopeia'.

1. Kopiere default.php
von components/com_visforms/tmpl/visforms/default.php
nach templates/cassiopeia/html/com_visforms/visforms/default.php
(also unter das Template Verzeichnis des gewählten Templates deiner Joomla Instanz. Hier templates/cassiopeia/)

2. Erzeuge die Datei custom.php (Name ist egal)
templates/cassiopeia/html/com_visforms/visforms/custom.php
mit folgendem Inhalt:
Code:
<script>     jQuery(document).ready(function() {         jQuery('.bind-days').on('change', function(){             let value = jQuery(this).val();             jQuery(this).val(value + ' Tag(e)');         });         jQuery('.bind-price').on('change', function(){             let value = jQuery(this).val();             jQuery(this).val(numberWithCommas(value) + ' Guaranì');         });     });     function numberWithCommas(x) {         return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");     } </script><?php

3. Füge in die Datei default.php
 templates/cassiopeia/html/com_visforms/visforms/default.php
nach Zeile 20 und vor Zeile 22
einen Verweis auf deine neue PHP-Datei von oben ein (custom.php):
Code:
include 'custom.php';

Das sieht an dieser Stelle dann etwa so aus:
Code:
use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Plugin\PluginHelper; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Layout\FileLayout; include 'custom.php'; if ($this->visforms->published != '1') {     return; }

Die Dokumentation hat hier eine Schwachstelle, die ich beheben werde.
Sie beschreibt allein das Verfahren für Overrides für die einzelnen Controls.
Sie beschreibt noch nicht das Verfahren für allgemeine Änderungen auf Formular-Ebene.

Ich habe hierzu einen Issue angelegt und der Entwicklungs-Liste hinzugefügt:
Issue [VF - 694] Forum: Doku: Addition: Override procedure for general form-level changes
Nach einem zukünftigen Release, welches diesen Punkt enthält, wirst du direkt hier im Thema darüber informiert.

Gruß, Ingmar

: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 :-).
Letzte Änderung: 1 Jahr 11 Monate her von Administrator IV.

Moderatoren: Administrator AVAdministrator IV
Powered by Kunena Forum