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.

Code Snippet - "Gutscheincode"

Mehr
9 Monate 1 Woche her #9615 von NHBoss
Code Snippet - "Gutscheincode" wurde erstellt von NHBoss
Ein fröhliches Hallo an alle!Ich  brauchte einen Gutscheincode-Generator, der unabhängige Codes produziert. Zuerst hatte ich mir einen solchen mit SQL-Codes gemacht, siehe meinen Code in meinem Artikel " nachträglich Datensatz intern einfügen ", nur finde ich keine Möglichkeit hier einen "copy to clipboard" Button einzusetzen. Und für meine Anwender ist es zu umständlich den so erzeugten Code manuell aufzuschreiben. Also habe ich einen Code für einen Gutscheingenerator mit Copy-Funktion eingesetzt. Hier der Code für Interessierte:
<?php
// Funktion zum Generieren von zufälligen Großbuchstaben
function generateRandomLetters($length) {
$letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
return substr(str_shuffle($letters), 0, $length);
}
// Funktion zum Generieren von zufälligen Ziffern
function generateRandomDigits($length) {
$digits = '0123456789';
return substr(str_shuffle($digits), 0, $length);
}
// Gutscheincode generieren (5 Großbuchstaben gefolgt von 3 Ziffern)
$coupon_code = generateRandomLetters(5) . generateRandomDigits(3);
?>
<!-- Hier wird der generierte Gutscheincode angezeigt -->
<p><?php echo $coupon_code; ?></p>
<!-- Button zum Kopieren des Gutscheincodes -->
<button onclick="copyToClipboard()">In Zwischenablage kopieren</button>
<!-- Verstecktes Textfeld zum Kopieren des Gutscheincodes -->
<input type="text" id="hiddenInput" value="<?php echo $coupon_code; ?>" style="position: absolute; top: -9999px;">
<script>
function copyToClipboard() {
var hiddenInput = document.getElementById('hiddenInput');
hiddenInput.select();
hiddenInput.setSelectionRange(0, 99999); // Für mobile Geräte
document.execCommand('copy');
alert('Gutscheincode wurde in die Zwischenablage kopiert: ' + hiddenInput.value);
}
</script>
<?php
// Heutiges Datum abrufen
$heutigesDatum = date('d.m.Y');
// Datum von 30 Tagen nach heutigem Datum berechnen (=Ablaufdatum)
$zukuenftigesDatum = date('d.m.Y', strtotime($heutigesDatum . ' + 30 days'))
// Das Ablaufdatum anzeigen
echo "Der Gutschein ist gültig bis: " . $zukuenftigesDatum;
?>

Nur kann ich den Code nicht in das Formular übernehmen, sondern muss eine extra Datenbank zum Abspeichern davvon anlegen.
Kennt vielleicht jemand einen Weg wie ich den Generator ins Formular übernehmen kann?

Herzliche Grüße
Norbert

Mehr
9 Monate 1 Woche her #9617 von Administrator IV
Administrator IV antwortete auf Code Snippet - "Gutscheincode"
Hallo Norbert,

im folgenden ein paar kurze Hinweise.

Das Visforms Custom-Plugin:
Wenn du im Kontext von Visforms deinen PHP-Code ablaufen lassen möchtest, dann verwendest du ein eigenes Plugin.
Individuelle Funktionalität durch individuelle Visforms Custom-Plugins:
docs.joomla-4.visforms.vi-solutions.de/d...-plugin-development/

Diese Stelle eignet sich, um JavaScript zu laden.
Der Template-Code der Funktion onVisformsFormPrepare():
docs.joomla-4.visforms.vi-solutions.de/d...msbeforeformsavespan

Diese Stelle eignet sich nicht, um direkt HTML zu erzeugen.
Alles was du hier im PHP an HTML erzeugst, landet außerhalb des Visforms-Containers, in diesem Falle direkt davor.
Der Mechanismus um HTML zu erzeugen verläuft über Layouts, Layout-Files und die sogenannten Overwrites.
Das Formular Layout durch Overrides anpassen:
docs.joomla-4.visforms.vi-solutions.de/d...yout-with-overrides/

Diese Stelle eignet sich allerdings, um mit JavaScript das HTML dynamisch zu manipulieren.
Beispiel-Code 2: Ein verstecktes Feld hinzufügen und dessen Wert dynamisch setzen:
docs.joomla-4.visforms.vi-solutions.de/d...ert-dynamisch-setzen

Reines JavaScript laden:
Wenn du im Kontext von Visforms JavaScript laden möchtest, gibt es verschiedene Möglichkeiten:
JavaScript und CSS hinzufügen:
docs.joomla-4.visforms.vi-solutions.de/d...a-script-extensions/
Ich empfehle die sehr einfach zu nutzenden 'Front-End-Web-Assets'.
Die Visforms Front-End-Web-Assets:
docs.joomla-4.visforms.vi-solutions.de/d...ons/add-script-fewa/

Ganz generell:
Ich rate dir für deine Lösung, zumindest für den Teil der Manipulation des HTML, vollständig mit JavaScript im Web-Browser zu arbeiten.

Möglichkeit 1:
Da kannst mit SQL, wie in deinem Artikel "nachträglich Datensatz intern einfügen" beschrieben, ein (verstecktes) Feld mit einem gewünschten Code erstellen.
Mit JavaScript im Web-Browser erzeugst du dann den notwendigen "Copy to Clipboard" Button.
Das JavaScript fügst du mit den Visforms Front-End-Web-Assets ein.

Möglichkeit 2:
Du arbeitest ausschließlich mit einem Visforms Custom-Plugin, das sich um alles kümmert.
- Es erzeugt den gewünschten Gutscheincode
- Es erzeugt den notwendigen JavaScript-Code (verstecktes Feld mit dem Gutscheincode erzeugen, "Copy to Clipboard" Button erzeugen)

Es existieren natürlich noch mehr Möglichkeiten.

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

Moderatoren: Administrator AVAdministrator IV
Powered by Kunena Forum