Override für das Kontaktformular in J! 3.8.7

  • Auf Anraten von JoomlaWunder eröffne ich hier mal einen eigenen Thread für das Thema.


    Für die Umsetzung der von der DSGVO geforderten Vorgaben muss ich das Joomla!-eigene Kontaktformular in der Weise ändern, dass ich am Anfang einer neuen Feldgruppe einen einleitenden Text platziere. Danach soll zwei mal die Checkbox angezeigt werden, die durch das von Indigo66 dankenswerterweise zur Verfügung gestellte Plugin erzeugt werden.


    Installation des Plugins und erzeugen der Checkboxen sind nicht das Problem. Vielmehr ist es das Einfügen des einleitenden Hinweistextes am Anfang der Feldgruppe.


    JoomlaWunder gab mir diesbezüglich bereits folgenden Hinweis:

    Zitat

    Da musst du in der Datei rumbasteln, die das Formular aufbaut. Vermutlich diese:

    components/com_contact/contact/default.php und eventuell auch in der entsprechenden css-Datei.

    In der fraglichen Installation gibt es keinen Ordner components/com_contact/contact/. Im Ordner components/com_contact/ befinden sich lediglich die Ordner /controllers, /helpers, /layouts, /models und /views.


    Langsam drängt die Zeit und ich wäre für jeden weiteren Tipp dankbar!



    Grüße,

    Frank

  • Zitat

    für die Umsetzung der von der DSGVO geforderten Vorgaben muss ich das Joomla!-eigene Kontaktformular in der Weise ändern, dass ich am Anfang einer neuen Feldgruppe einen einleitenden Text platziere


    Verstehe ich jetzt nicht. Kannst du mir das genauer erklären?

    Das Plugin funktioniert bei mir einwandfrei.

    Auch habe ich meine Datenschutzerklärung gemäß der DSGVO angepasst.


    Warum musst du denn zweimal eine Checkbox mit Text platzieren?

    Wo finde ich deine Vorgabe in der DSGVO?

  • Wenn jemand eine eMail oder per eMail antwortet, dann geht der Gesetzgeber dacon aus, dass dann derjenige weiß, dass seine eMail gespeichert und benutzt wird und bedarf somit keine zusätzlichen Hinweise, wo ein Benutzer übre den Sinn einer eMail-Adresse aufgeklärt werden muss.


    Die neue DSGVO ist umfangreich, teurer bei Verstößen und teilweise auch ein wenig kompliziert, aber auch nicht so schwachsinnig, wie sie hier immer wieder dargestellt wird ;)



    Axel

  • EDIT: Vorausgeschickt. @time4mambo hat natürlich absolut Recht, falls du übermittelte Daten so verwendest, wie es jeder erwarten kann, der ein Email-Kontaktformular füllt und wenn du da nicht dumme Sammelwut und Missbracuh der Daten dran koppelst.

    ----------------------

    Langsam drängt die Zeit und ich wäre für jeden weiteren Tipp dankbar!

    Man muss es ja auch präzisieren, d4W . Dein Anliegen war es ursprünglich einen langen Text einzufügen, der vor dem Häkchenfeld steht, also eine reine Layout-Geschichte, keine unbedingt nötige.


    Richte das also erst mal ein. Hast den Zeitdruck schon mal weg. Auch, wenn's optisch noch nicht dein Fall ist.


    Der Override sollte besser auch für contact/.../default_form.php der Komponente(!) com_contact sein, nicht für default.php.
    components/com_contact/views/contact/default_form.php


    Overrides könnte man aber auch per Template-Editor im Backend per Klick anlegen und anschließend editieren bzw. siehst dann schon mal, ob vielleicht schon einer angelegt ist. Dann wird's noch komplizierter, da niemand hier dein Template kennen kann.


    Richte also einen solchen auch schon mal ein.


    Dann postest du die Einstellungen deines neuen Eigenen Feldes, also die Einstellungen im Backend, Name, Alias und Krempel, wie du die Gruppe banannt hast etc.


    Dann habe ich (oder wer anderes) vielleicht Lust das mal für dich durchzuexerzieren und dir einen Vorschlag zu machen.

  • Das obige Zitat von d4W kommt ja wohl von dort:


    Wie erstelle ich eine Datenschutz-Checkbox inklusive Link zum Datenschutzhinweis im Joomla Standard-Kontaktformular

    JoomlaWunder gab mir diesbezüglich bereits folgenden Hinweis:


    Da musst du in der Datei rumbasteln, die das Formular aufbaut. Vermutlich diese:

    components/com_contact/contact/default.php ...

    Damit meint JoomlaWunder ein Template-Override.


    Da musst du in der Datei rumbasteln, die das Formular aufbaut. Vermutlich diese:

    components/com_contact/contact/default.php und eventuell auch in der entsprechenden css-Datei.


    Eventuell gibt es ja bereits ein Override im html-Ordner deines Templates.


    Ich habe aber den eindruck das dir noch nicht völlig klar ist was ein Template-Override ist und wie man ihn erstellt oder verändert.

    Lies daher am besten zuest noch mehr über Template-Overrides z.B. dort:


    https://www.j-over.de/de/


    Templates, Stile und Overrides



    Damit die anderen Supporter nicht danach Fragen oder erst suchen müßen:

    Das Template nennt sich Corpway und ist von Shape5.

    sollte man derartige Details wenn man einen neuen Thread erstellt mitteilen.

  • Bzgl. des richtigen Verzeichnisses: Im html-Ordner (also Override) entfällt der /views/ - Ordner generell.

    Beim Pfad für die Originaldatei unter components/.... ist natürlich /views/ enthalten.

    War von mir nicht ganz sauber beschrieben.

  • Du kannst in der Feldgruppe im Kontaktformular (Email) ein frei formulierbares (Standardwert) Textfeld (Typ: text) hinzufügen, es über die Checkbox setzen, und dann entsprechend mit CSS stylen. Unter Berechtigungen bearbeiten verbieten. Unschön dabei ist, dass der Inhalt vermutlich mitgesendet wird.

  • Hallo,

    ... in der Datei rumbasteln, die das Formular aufbaut. Vermutlich diese:

    html/com_contact/contact/default.php

    Nö, schau mal:

    Der Override sollte besser auch für contact/.../default_form.php der Komponente(!) com_contact sein, nicht für default.php.
    components/com_contact/views/contact/default_form.php

    > .../contact/default_form.php


    Liebe Grüße

    Christine

  • Ja, wie geschrieben, sind die Checkboxen nicht das Problem. Das Plugin funktioniert also auch bei mir einwandfrei. Wie hast Du denn die Datenschutzerklärung angepasst? Ist ja immer interessant, wie es andere machen.


    Zweimal muss ich die Checkbox aufgrund einer Vorgabe platzieren. Zum einen soll ich das übliche Einverständnis zur Datenschutzerklärung einfordern, wie das auch im ersten Post von Indigo66 in seinem Plugin-Thread zu sehen ist. Zum anderen soll dem Versand unverschlüsselter Mail zugestimmt werden. Text: "Ich stimme zu, dass Antwortmails unverschlüsselt versendet werden.".


    Wo Du die Vorgabe findest, kann ich Dir leider nicht sagen. Ich setze in dem Fall lediglich um, was von mir gewünscht wurde.



    Grüße,

    Frank

  • Also den Override habe ich erstellt für com_contact, sodass genau dieser Ordner samt Unterordner "contact" sich nun im Ordner html des Templates befindet.


    Die Felder sind speziell in der Installation noch nicht eingerichtet, da ich alles erst einmal testweise lokal auf einem XAMPP ausprobiert habe. Das sollte ja aber keine Rolle spielen und ich erwähne es nur für den Fall, dass ich irgendetwas übersehe.


    Die Felder bekommen die Namen "Einverständnis Datenschutz" und "Einverständnis unverschlüsselte E-Mail". Die dazugehörigen Aliase, womit Du sicherlich die Bezeichnung meinst, die in Joomla! zumindest an der Stelle "Name" heißen - nur zur Sicherheit um Fehlerquellen auszuschließen -, sind "datenschutz" und "email-unverschluesselt". Die Gruppe werde ich Einverständniserklärung oder Einverständniserklärungen nennen. Da bin ich mir noch nicht ganz schlüssig. Ist das jetzt tatsächlich wichtig bzw. kann ich das doch dann an entsprechender Stelle selbst im Code ändern oder nicht?


    Fehlt noch was?



    Grüße,

    Frank

  • Also beim Gruppennamen habe ich mich nochmal umentschieden der heißt jetzt "Einverständnis erklären" und das bleibt jetzt so. ;)


    Ich vermute, Du möchtest einen Screenshot von den Gruppeneinstellungen um überprüfen zu können, ob ich die entspr. Berechtigung korrekt eingestellt habe. In den anderen Tabs ist ja weiter nichts zu sehen, oder doch? Dann bitte nochmal nachfordern. Ich will's nicht umständlicher machen als nötig, nur schnell sein, so gut ich kann. Auch der andere Shot scheint mir ausreichend oder brauchst Du doch noch mehr?






    Vermutlich wirkt alles gerade etwas konfus. Bin momentan total überlastet.


    Vielen Dank an dieser Stelle schonmal für Deine Hilfe!!


    Anmerkung:

    Die Gruppe ist natürlich aktuell deaktiviert, weil sie unfertig noch nicht angezeigt werden soll.



    Grüße,

    Frank

  • Ich habe aber den eindruck das dir noch nicht völlig klar ist was ein Template-Override ist und wie man ihn erstellt oder verändert.

    VÖLLIG klar war es mir tatsächlich nicht. Nicht nur deshalb danke ich Dir für die beiden Links zu, wie es scheint, prima Inhalten.


    EDIT: Ach und die Sache mit der Übernahme essentieller Informationen aus anderen Threads ist natürlich zweifelsohne sinnvoll und ich versuche dran zu denken. :)


    Gruß,

    Frank

  • Deshalb meine Frage:


    Warum einen längeren Hinweistext gemäß DSGVO?

    Na ja... Was heißt länger? Zum einen habe ich einfach einen Text vorgegeben bekommen, den ich implementiere ohne nachzufragen (inwieweit er DSGVOkonform ist). Der ist halt dort, wo er stehen soll aufgrund seiner Länge optisch besser oberhalb der Checkboxen aufgehoben weil dort mehr Platz in der Breite ist. Hinzu kommt, dass er mehr einen einleitenden Charakter hat und es gewünscht ist, dass er deshalb in einer "Erklär-Box" über den Checkboxen steht. Außerdem ist er schon aufgrund der Tatsache, dass er für zwei "Pflichtbestätigungen" ist, etwas länger.


    Jetzt habe ich mehr beantwortet, als du gefragt hattest. Macht aber nix, denke ich. ;)



    Gruß,

    Frank

  • Tut mir leid. Muss ich passen. Finde auf die Schnelle keine einfache Möglichkeit.


    Wenn jemand eine Möglichkeit kennt, einem einzelnen JForm-Feld sein eigenes, spezifisches JLayout (im Moment joomla.form.field.checkboxes) unterzujubeln und zwar im Override, z.B. via $this->form oder so, mach ich vielleicht mit meiner Idee weiter. Geht mit darum, das Feld-Input isoliert zu rendern, ohne den Label bzw. hier den Checkbox Hinweis dann noch mal drin zu haben.

  • Tut mir leid. Muss ich passen.

    Schade, aber dann ist's halt so. Ich danke Dir für Deine Zeit und Mühe. Auch der Versuch ist ja definitiv etwas Wert! :thumbup:


    Ich habe verstanden, dass es bei Deinem Versuch um eine schnelle Lösung ging. Trotzdem wundere ich mich, dass es so umständlich zu sein scheint. Das hat natürlich nichts mit Dir zu tun!! Die Strukturen sind, wie sie nun mal eben sind, offenbar etwas kompliziert(er als nötig?). An anderer Stelle arbeite ich mit "Fabrik", was vllt der eine oder andere kennt. Da kann ich in Formulare einfügen, was immer ich will. ob das nun reiner Text, HTML-Code, Checkboxen, Textfelder oder -areas oder was auch immer ist / sind. So außergewöhnlich erscheint mir mein Bedarf auch nicht zu sein und es sieht mir ein wenig so aus, als wäre das in Joomla! selbst schlichtweg vergessen worden. Aber vllt täusche ich mich ja auch!?


    Wie dem auch sei... Es spuken nun ein paar andere Gedanken in meinem Kopf herum:


    Erstens verstehe ich Deinen Ansatz nur sehr sehr begrenzt. Ich kann nicht programmieren und dementsprechend sind meine Gedanken natürlich auch ganz anders, als die eines Programmierers, also eher abstrakter Natur. Du hast ja so prinzipiell, wie auch mein grundsätzlicher Denkansatz war versucht, über ein Override etwas zu erreichen, was offensichtlich komplexer ist, als anfangs gedacht (zumindest für eine schnelle Lösung).


    Nun ist mir auch inspiriert durch die Arbeit mit "Fabrik" eine andere Idee gekommen:

    Inidigo66's Plugin erfüllt ja die Aufgabe eine Checkbox an vorher definierter Stelle - also in einer bestimmten Gruppe an einem bestimmten Platz der Reihenfolge entsprechend - einzufügen. Für mich als Programmierlaie entsteht da die Frage: Kann man denn nicht mit verhältnismäßig wenig Aufwand "einfach" den Part, der die Checkbox einfügt, durch einen ersetzen, der stattdessen einfach nur Text und wenn es nicht zu aufwendig ist noch besser HTML-Code implementiert? Das Konstrukt wäre dann natürlich als neues, zusätzliches Plugin einzubinden, was vermutlich das einfachste (??) wäre.


    In dem Zusammenhang noch eine andere Sache, vor allem auch, weil es sich um eine möglichst einfache und schnelle Lösung handeln soll:

    Was ich nicht brauche, ist irgendwas mit Komfort. Heißt: Wenn ich an einer oder mehreren Stellen, die man mir dann halt benennen muss, im PHP-Code etwas ändern oder auch nur einfügen muss ohne, dass ich das irgendwo beispielsweise in der Administration schön in eine Eingabemaske oder gar einen Editor eingeben kann, ist mir vollauf gedient und ich bin superhappy!! Das ganze könnte ich ja dann im Falle von HTML einfach mittels CSS formatieren.


    Und noch etwas:

    Wenn es wenigstens halbwegs absehbar ist, dass eine nicht ganz so schnell erreichbare Lösung einen gewissen Zeitrahmen - über den zu reden wäre - nicht total sprengt, darf das ganze natürlich auch etwas kosten.



    Grüße,

    Frank