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