web-dev-qa-db-fra.com

Comment puis-je supprimer complètement et en toute sécurité le champ sujet dans com_contact?

Je travaille principalement dans les substitutions autant que possible, donc j'utilise /templates/.../html/com_contact/contact/default_form.php

Je sais que je peux simplement supprimer le code qui indique la ligne d'objet:

<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>

Mais le problème est que lorsque le formulaire est rempli, la validation pour vérifier la ligne d'objet est toujours là.

Supprimer cela nécessiterait un piratage de base, mais est-il possible de le faire en utilisant des substitutions? Ou en toute sécurité, afin qu'il ne revienne pas lorsqu'il est mis à jour?

J'aimerais continuer à utiliser com_contact chaque fois que possible, afin de limiter le nombre de plugins en cours d'exécution sur mon installation.

4
user1889

Le champ sujet est défini pour être requis par le fichier XML constituant le formulaire de contact. Vous pouvez le voir en allant ici:

components/com_contact/models/forms/contact.xml

Puis ligne ~ 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"
/>

Ce dont vous avez probablement besoin, c’est de remplacer ce fichier XML. FYI: Vous pouvez trouver une question similaire ici: Remplacer les composants de base du modèle de formulaire XML

Le moyen le plus simple et le plus simple d’y parvenir consiste à utiliser le plugin Form XML Overrides .

Avec le plugin installé et activé, vous pouvez créer une copie du fichier contact.xml et le placer dans: templates/system/forms/com_contact/contact.xml

***** Le dossier Forms dont vous aurez besoin pour le créer.

Supprimez le champ required = "true" du champ sujet ou supprimez-le complètement. Supprimez également l'appel au champ de votre fichier de substitution de modèle, comme vous l'avez décrit dans votre question.

Ensuite, dans la page d'administration du plug-in, vous devez spécifier le composant que vous souhaitez remplacer pour le site.

Page d'aide du plugin

2
FFrewin