Kontaktformular im Frontend

  • Hallo Forum,


    ich möchte das Joomla! interne Kontaktformular nutzen. Ich meine damit folgendes: Im Frontend sollen (Pflicht)Felder für Name, E-Mail-Adresse, Text usw., sowie Checkboxen für "Datenschutzerklärung gelesen und akzeptiert" und "Kopie an sich selbst schicken" angeboten werden.


    So weit, so gut, nun meine eigentliche Frage: ich möchte insbesondere bei "Datenschutzerklärung gelesen" das Wort "Datenschutzerklärung" zu einem Link zur Datenschutzerklärung machen (logisch). Aber genau das gelingt mir nicht. Kann mir dabei jemand helfen?


    vielen Dank


    buja

  • vielen Dank erstmal für die Links, da arbeite ich mich durch.
    Könnt ihr mir bitte kurz erklären, aus welchem Grund man das nicht einfach in der Datenbank ändern sollte? Ich seh's grad nicht.


    In der DB bastelt man nur rum, wenn es keine andere Möglichkeit mehr gibt bzw. man etwas reparieren muss. Ansonsten sollte man alles schön sauber über die Oberfläche (Backend) machen. Probleme sind die Übersicht sowie Updates. Die im Link angegebene Vorgehensweise ist extra dafür erstellt worden und macht genau das, was du möchtest.
    In deinem Auto nutzt du ja auch den Blinkerhebel und schließt keinen Laptop an irgendeinem Steuergerät an, um das Blinkrelais zu bedienen.

  • Zitat

    weil in diesem speziellen Fall die Ausgabe nochmal mit htmlspecialchars() gerendert wird und die Änderungen in der Datenbank keine Auswirkungen hätten.


    in diesem speziellen Fall hat es eben doch Auswirkungen gehabt, sprich es hat "funktioniert". Letztlich läuft das plugin darauf hinaus, auf einem gängigen Weg den Link übers backend in die Datenbank zu schreiben, ist also in jedem Fall sauberer. Ich habe meine Datenbankänderung also wieder rückgängig gemacht, das plugin installiert und das override gemacht.


    nochmal herzlichen Dank an alle


    buja

  • Nein tut es nicht - ansonsten würden Dich die sehr erfahrenen Supporter nicht daraufhinweisen...


    Immer deaktivieren... Am Besten in den Optionen und im Menüeintrag

  • noch eine Frage zum Kontaktformular:
    ich würde gern die Labels weglassen (was mit css natürlich machbar ist) und stattdessen Platzhalter in die Formularfelder setzen.
    Vermutlich läuft das auch über overrides, aber ich hab nicht die leiseste Ahnung von den Sprachkonstanten.


    Und eine ebenfalls nicht unwichtige Frage: clientseitig werden ja mit dem Attribut "required" bestimmte Felder als erforderlich markiert und eventuell und auch validiert, erfolgt eine serverseitige Validierung automatisch oder muss sie aktiviert werden? Wenn ja, wie und wo genau?


    Danke buja

  • ich muss die Option "Kopie an mich selbst" zwingend anbieten, daher werde ich das Formular zusätzlich mit einem captcha sichern.


    Der "böswillige" User der das Kontaktformular ausfüllt, kann eine ander als seine E-Mail Adresse als Empfeänger eintragen. Die Kopie geht dann an die falsche E-Mail Adresse. Der Empfänger kann Dich wegen unerlaubter Werbemail die er nie zugestimmt hat, also Spam, abmahnen.
    Was Du machst ist Deine Sache, sage aber nicht, Du wurdest nicht gewarnt.

  • Und eine ebenfalls nicht unwichtige Frage: clientseitig werden ja mit dem Attribut "required" bestimmte Felder als erforderlich markiert und eventuell und auch validiert, erfolgt eine serverseitige Validierung automatisch oder muss sie aktiviert werden? Wenn ja, wie und wo genau?


    Klar wird serverseitig auch validiert.


    Vermutlich läuft das auch über overrides, aber ich hab nicht die leiseste Ahnung von den Sprachkonstanten.


    Ersteres ist richtig. Zweiteres brauchst nicht unbedingt.


    Mit folgendem Code in einem Override der com_contact/.../contact/.../default_form.php; in Standard-Joomla nach diesen Zeilen einfügen:

    Code
    defined('_JEXEC') or die;JHtml::_('behavior.keepalive');JHtml::_('behavior.formvalidator');


    brauchst dich um Sprachstrings nicht kümmern, da der Code sie aus den Feldern abgreift. Anschließend setzt er sie dann als Placeholder ein. Der Code berücksichtigt auch eigene Felder (custom_fields)


    Der Code sollte für alle JForm-Formulare funktionieren.


    Mir hätte besser gefallen, wenn du einen neuen Thread dafür geöffnet hättest.