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.

anzeigen von bereits hochgeladenen Bilddateien im Formular

Mehr
4 Monate 2 Wochen her #10610 von MaliRaj
Hallo Aicha, Hallo Ingmar,
gerne würde ich einige Bilder, die bereits hochgeladen wurden, im Formular anzeigen lassen. Möglichst sogar mit Auswahlmöglichkeit. Die Bildauswahl soll abhängig sein von bereits gemachten Angaben im Formular. Ich stelle mir das so ähnlich wie eine ListboxSQL vor. Pfad/Dateiname aus den passenden Upload-Feldern mit SQL ermitteln und anzeigen. Diesen dann mit JavaScript in ein img-Tag umwandeln. Auswahl mit Klick auf eines dieser Bilder.
Wie kann das realisiert werden? Feldtyp 'BildListboxSQL' !? 

Freundliche Grüße aus PM
Heinz
(Joomla 5.1.2 / Visforms+Subscription 5.12 / PHP 8.2)

Mehr
4 Monate 1 Woche her #10648 von Administrator IV
Hallo Heinz,

Ich würde eine Lösung angehen mit
- einer (eher) unsichtbaren SQL-Listbox,
- den FEWA und
- einer JavaScript-basierten Selektion.

Die SQL-Listbox:
- ermittelt die (vorzugsweise rohen) Feld-Werte aus den gewünschten Upload-Feldern.
- ist im Formular selbst (eher) nicht zu sehen.

FEWA:
- JavaScript ermittelt aus den Feld-Werten der Upload-Felder (also die Optionen in der SQL-Listbox) die finalen Bild-URLs.
  Die rohen Feld-Werte haben das folgende JSON-Format:
  {"folder":"tmp","file":"newbooks-test-one_61f13936a1ad2.csv"}
- JavaScript erzeugt dynamisch ein passendes geeignetes HTML und schreibt die finalen Bild-URLs hinein.
- CSS formatiert das Ganze passend.
- JavaScript kümmert sich um die Selektion und schreibt den aktuellen Wert etwa in ein bestehendes anderes Formular-Feld für diesen Zweck.

Die Selektion:
- Es gibt meines Wissens ohne zusätzliche Library keine fertige oder gar eine triviale Lösung.
- Es gibt viele Beispiele dazu im Internet zu finden.
- Es gibt viele verschiedene Möglichkeiten es im HTML umzusetzen.
- Interessant wäre es insbesondere, wenn die SQL-Listbox selbst zur Anzeige der Bilder gebracht werden kann.
  In diesem Fall würden die explizite JavaScript-basierte Selektion sowie das zusätzliche Formular-Feld zur Aufnahme des selektierten Wertes entfallen.

Liebe Grüße, 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 :-).
Folgende Benutzer bedankten sich: MaliRaj

Mehr
4 Monate 1 Woche her #10652 von MaliRaj
Hallo Ingmar, vielen Dank für deine Antwort. Genau so, bzw. ganz ähnlich habe ich es umgesetzt. Ist noch in der Testphase, aber sobald alles fertig ist, werde ich es hier dokumentieren.

Freundliche Grüße aus PM
Heinz
(Joomla 5.1.2 / Visforms+Subscription 5.12 / PHP 8.2)

Mehr
3 Monate 2 Wochen her - 3 Monate 2 Wochen her #10738 von MaliRaj
Da alle Fallstricke inzwischen behoben sind, hier kurz die Umsetzung.
Die Aufgabe war, einem Datensatz eines Users ein passendes Bild zuzuordnen. Mit Klick auf ein Bild sollen diese vergrößert und wieder verkleinert werden. Ein zusätzlicher Button neben jedem Bild sorgt für die Auswahl und Übernahme des Dateinamen in ein verstecktes Feld 'imgSelected'. Die Bilder können ein bereits (von anderen Usern) hochgeladenes Bild, oder ein selbst hochzuladendes Bild sein. Um die Bildauswahl zu erleichtern, werden mehrere Listboxen als Filter genutzt. Im konkreten Fall sind es Orte, Zeiten und Gruppen, es könnten aber auch beliebige andere Bedingungen sein. Als "Bildergalerie" dient eine ListboxSQL 'tableField' mit der Option 'als Datenliste anzeigen' und 'Feld verstecken, wenn Liste leer ist' und 'Reload erlauben', die mit Hilfe der Filterfelder (Reloadfelder) die passenden Bilder dynamisch aus der Datenbank holt. Das SQL-Statement liefert  aus den Uploadfeldern gleich den "fertigen" kompletten Dateipfad. Das erledigt ein
Code:
SELECT    CONCAT(JSON_UNQUOTE(JSON_EXTRACT(`uploadField`, '$.folder')), '/', JSON_UNQUOTE(JSON_EXTRACT(`uploadField`, '$.file'))) as value,    CONCAT(JSON_UNQUOTE(JSON_EXTRACT(`uploadField`, '$.folder')), '/', JSON_UNQUOTE(JSON_EXTRACT(`uploadField`, '$.file'))) as label  FROM    `table`  WHERE    ... ;

in den Frontend Webassets sorgt dann JavaScript für die Anzeige der Bilder und der Auswahlbutton und steuert, was passieren soll:
Code:
//    Galerie-Tabellenansicht als Bildergalerie mit Auswahlmöglichkeit anzeigen //    + Vergrößern/Verkleinern mit Klick auf das Bild //    + Auswahl-Button neben jedem Bild (mit Übernahme der Bilddatei in ein "Speicherfeld" imgSelected //    + Mouseover beim Button zeigt den Dateipfad an $('#' + tableField).on('change', function() { // bei Änderung der Tabelle durch Reloadfelder ausführen     $(this).find('td').each(function() { // alle Tabellenzeilen abarbeiten         var imgPath = $(this).text();         var fileName = imgPath.split('/').pop().split('.').slice(0, -1).join('.');         var imgButton = '<button title="' + fileName + '">dieses Bild auswählen</button>';     //    Ersetzen des Bildpfades durch das Bild und dieses klickbar machen         $(this).html('<img src="' + imgPath + '" alt="' + fileName + '" title="klicken zum Vergrößern/Verkleinern" style="width: 390px; cursor: pointer;" />' + imgButton);         // Event-Handler für Klick auf das Bild         $(this).find('img').on('click', function() {             var currentWidth = $(this).css('width');             if (currentWidth === '390px') {    // Standardgröße                 $(this).css('width', 'auto'); // Bild vergrößern             } else {                 $(this).css('width', '390px'); // Bild verkleinern             }         });                  // Event-Handler für Klick auf den Button          $(this).find('button').on('click', function() {             // gewähltes Bild Übernehmen (z.Bsp. fileName in verstecktem Feld speichern             if ($('#' + imgSelected).val(fileName) !== $('#' + imgSelected).val()) {                 $('#' + imgSelected).val(fileName).change();                 //    console.log('ausgewählt wurde:', fileName); // Kontrollausgabe             }         });     }); });
Das ist zwar nur ein stark vereinfachtes Beispiel, vielleicht hilft es aber trotzdem weiter.


 

Freundliche Grüße aus PM
Heinz
(Joomla 5.1.2 / Visforms+Subscription 5.12 / PHP 8.2)
Letzte Änderung: 3 Monate 2 Wochen her von MaliRaj.
Folgende Benutzer bedankten sich: Administrator IV

Moderatoren: Administrator AVAdministrator IV
Powered by Kunena Forum