it-swarm.com.de

Wie kann ich das Betrefffeld in com_contact vollständig und sicher entfernen?

Ich arbeite hauptsächlich mit Overrides, also benutze ich /templates/.../html/com_contact/contact/default_form.php

Ich weiß, dass ich nur den Code entfernen kann, der die Betreffzeile anzeigt:

<div class="control-group">
    <div class="control-label"><?php echo $this->form->getLabel('contact_subject'); ?></div>
    <div class="controls"><?php echo $this->form->getInput('contact_subject'); ?></div>
</div>

Das Problem ist jedoch, dass beim Ausfüllen des Formulars die Validierung zur Überprüfung der Betreffzeile noch vorhanden ist.

Dies zu entfernen, würde einen Core-Hack erfordern, aber gibt es trotzdem eine Möglichkeit, dies mithilfe von Overrides zu tun? Oder sicher, dass es nicht zurückgesetzt wird, wenn es aktualisiert wird?

Ich möchte nach Möglichkeit weiterhin com_contact verwenden, um die Anzahl der auf meiner Installation ausgeführten Plugins zu begrenzen.

4
user1889

Das Betrefffeld muss in der XML-Datei angegeben werden, aus der das Kontaktformular besteht. Sie können dies sehen, indem Sie hier gehen:

components/com_contact/models/forms/contact.xml

Dann Zeile ~ 23:

<field name="contact_subject"
    type="text"
    id="contact-emailmsg"
    size="60"
    description="COM_CONTACT_CONTACT_MESSAGE_SUBJECT_DESC"
    label="COM_CONTACT_CONTACT_MESSAGE_SUBJECT_LABEL"
    filter="string"
    validate="contactemailsubject"
    required="true"
/>

Was Sie wahrscheinlich brauchen, ist diese XML-Datei zu überschreiben. Zu Ihrer Information: Eine ähnliche Frage finden Sie hier: Überschreiben von Kernkomponenten-Modellform-XML

Am einfachsten und unkompliziertesten erreichen Sie dies mit dem Form XML Overrides Plugin .

Wenn das Plugin installiert und aktiviert ist, können Sie eine Kopie der Datei contact.xml erstellen und in folgende Datei einfügen: templates/system/forms/com_contact/contact.xml

***** Den Ordner Formulare müssen Sie erstellen.

Entfernen Sie das erforderliche = "true" aus dem Betrefffeld oder entfernen Sie das Betrefffeld vollständig. Entfernen Sie auch den Aufruf des Felds aus Ihrer Vorlagenüberschreibungsdatei, wie Sie in Ihrer Frage beschrieben haben.

Dann müssen Sie auf der Plugin-Verwaltungsseite die Komponente angeben, die Sie für die Site überschreiben möchten.

Plugin-Hilfeseite

2
FFrewin