JoomlaDay Deutschland 2017 - 22.+23. September 2017 in Königstein

Zweites Kontaktformular auf Site

    Zweites Kontaktformular auf Site

    Hallo,

    ich benötige auf einer Seite neben dem Standardkontaktformular noch ein zweites, welches in wenigen Punkten abweichend sein soll.
    Auch die Funktionalität = nur Mail an bestimmte Adresse soll so bleiben.
    Dafür lohnt sich m.E. nicht der Einbau einer Komponente wie ProForms etc.
    Jedoch fehlt mir im Moment der Plan, wie ich das schnell und problemlos realisieren kann.
    Ein Override wäre nach meinem Verständnis nicht die richtige Wahl, aber vielleicht sehe ich da den Wald vor lauter Bäumen nicht. :rolleyes:

    Christian
    Hallo,

    an Alle die sich schon mit mir den Kopf zerbrechen noch ein Versuch der Erklärung.
    Es ist ein Standardkontaktformular vorhanden.
    Nun brauche ich ein zweites Formular, was ein oder zwei weitere Felder haben soll.
    Als erfolgreiche Funktion soll dan "nur" eine Mail generiert werden.
    Am Liebsten wuürde ich etwas aus dem Standard kopieren und dann entsprechend anpassen.
    Jedoch fehlt mir da im Moment die Erleuchtung, ob und ggf. wie ich da ansetzen kann.
    Der Hintergrund ist eigentlich, dass ich dafür nicht extra eine zusätzliche Erweiterung bemühen möchte.

    Christian
    Moin,
    da bin ich wieder.
    Leider komme ich mit den Custom Fields nicht weiter.
    Damit konnte ich im Kontaktformular kein Eingabefeld erzeugen.
    Ich vermute, dass das auch nicht der passende Ansatz ist.
    Ich brauche ja "nur" einige zusätzliche Eingabefelder neben Nachricht, Name etc..
    Gefunden habe ich zwar den Code für die Erzeugung des HTML des Formulars,
    aber nicht den für das einzelne Label und des dazugehörenden Eingabefeldes.
    Mein "Verdacht" ist eine Definition der "Zutaten" über eine XML-Datei, bloß eindeutig gefunden habe ich bisher noch nichts.

    Christian
    Hallo Christine,

    vielen Dank für den Link.

    Erst las sich das SUPER, bis ich dann zu der Stelle mit dem Template-Override für default_form.php kam.
    Hier scheint es zwischen J3.4.8 und J3.7.2 eine Änderung gegeben zu haben.

    So sieht es nämlich an der betreffenden Stelle aus.
    Hier wird wohl mit einer Schleife gearbeitet, aber wo die Daten herkommen, konnte ich noch nicht ermitteln.

    PHP-Quellcode

    1. <fieldset>
    2. <?php if (isset($fieldset->label) && ($legend = trim(JText::_($fieldset->label))) !== '') : ?>
    3. <legend><?php echo $legend; ?></legend>
    4. <?php endif; ?>
    5. <?php foreach ($fields as $field) : ?>
    6. <?php echo $field->renderField(); ?>
    7. <?php endforeach; ?>
    8. </fieldset>


    Christian
    Ich kann meinen Beitrag darüber nicht mehr editieren, deshalb ein neuer:

    Re:Later hat die Problemstellung schon erkannt!!!
    Achtung: Seit Joomla 3.5 hat sich die Datei default_form.php erheblich geändert! Man muss also entweder aus eine Joomla-3.4.8-Paket die Datei als Basis nehmen oder kennt sich so weit aus, dass man mit der neuen Art zurechtkommt. Ich habe es noch nicht geprüft, aber vermutlich wird mit Joomla ab 3.5 das Telefonfeld auch ohne Override angezeigt ???? Aber man hat dann keinen Einfluss auf die Position ohne Override.


    Vermutlich wird die Reihenfolge durch die Reihenfolge der Felddefinitionen erzielt, aber wo, dass ist im Moment für mich das Geheimnis.
    Die Suche geht weiter!!!

    Christian
    Moin,
    nach über zwei Wochen darf man das Thema wohl noch einmal nach oben schieben.
    Ich habe zwar die Datei gefunden, die für die Anzeige "verantwortlich" ist. Dort wird jedoch in einer foreach-Schleife der Code für die Eingabefelder und die Labels erstellt.
    Nun vermute ich, dass als Basis dafür eine xml-Datei dient. Diese haben ich jedoch nicht gefunden.
    Hat vielleicht noch jemand einen Tipp?
    Ansonsten muss ich doch eine Erweiterung bemühen.

    Christian
    Hilfreich!

    chr-hl schrieb:

    wie ich das schnell und problemlos realisieren kann

    Das ist der Grund, warum ich keinen Vorschlag gemacht habe. Du müsstest zumindest ein Plugin oder ein etwas aufwendigeren Override programmieren müssen (ob's allein damit geht, keine Ahnung), was von Fall zu Fall bestimmte Felder manipuliert, bspw. Pflicht-Felder umswitcht. Oder mit Eigenen Feldern vielleicht Kategorien umswitcht und Kram. Vielleicht eigene XML nachlädt...

    Weit weg von "schnell und problemlos" ;) Rattenschwanz... Pro WebSeite zu individuell, um da pauschale Antwort geben zu können.
    Joomla-Fachmann: ghsvs.de

    chr-hl schrieb:

    wo die einzelnen Labels und Eingabefelder definiert werden

    Du hast schon recht:

    chr-hl schrieb:

    dass als Basis dafür eine xml-Datei dient

    /components/com_contact/models/forms/contact.xml

    Die ist aber "tabu". JForm baut daraus dann das Formular. Das JForm-Formular kann man dann per Code manipulieren, erweitern, ändern, durch eigene XML-Datei erweitern. Je nachdem was du damit machen willst, brauchst dann aber Unterstützung von einem Plugin, spätestens beim Senden, das die Änderungen auseinanderfieselt. Deshalb würde ich wahrscheinlich auch beim Aufbau gleich im selben Plugin arbeiten. Der Ansatz meines Tutorials ist schon richtig.

    Und bzgl. Ausgabe: Die Technik der Feldausgabe im Override des Tutorials funktioniert nach wie vor. Nichts zwingt dich, dich an der foreach-Geschichte des "modernen" Joomlas zu orientieren (das im Hintergrund nix anderes macht).
    Könntest also als Basis deines Overrides auch diese Zeilen nehmen:
    github.com/joomla/joomla-cms/b…/default_form.php#L23-L46
    Joomla-Fachmann: ghsvs.de

forum.joomla.de is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries.