Personnaliser le modal "Contacter par mail"

Salut la jolie troupe,
Dans une fiche bazar, on peut choisir de remplacer le mail par bouton de type « formulaire de contact ». J’aurai besoin de personnaliser le texte de ce formulaire et je ne trouve où ça se trouve !

J’ai trouvé comment personnaliser le formulaire de contact basique (celui qui s’affiche via l’action {{contact mail="my@email.com" }}, mais impossible de trouver celui qui s’affiche dans une fiche bazar…

Any idea ?

Bonjour @nicolasgeiger ,

il est possible de personnaliser le texte de ce formulaire de contact pour l’ensemble du site en ajoutant les clés de traductions suivantes dans le fichier custom/lang/custom_fr.inc.php puis en les modifiant.

<?php

return [
    'CONTACT_YOUR_MAIL' => 'Votre adresse mail',
    'CONTACT_SUBJECT' => 'Sujet du message',
    'CONTACT_YOUR_MESSAGE' => 'Votre message',
    'CONTACT_SEND_MESSAGE' => 'Envoyer le message',
    
    'BAZ_CONTACT_BY_MAIL' => 'Contacter par mail',
];

Bonne personnalisation

Explications plus en détail :

  • j’ai récupéré les clés depuis le fichier tools/contact/lang/contact_fr.inc.php.
  • Il existe un fichier pour chaque langue supportée dans le même dossier.
  • Pour changer le texte pour les autres langues, il faut créer un fichier custom/lang/custom_en.inc.php (en pour l’Anglais, es pour l’Espagnol, …) et y recopier et modifier les traductions nécessaires.

Une des clés provient du fichier tools/bazar/lang/bazar_fr.inc.php

Super merci @j9rem !! je vais pouvoir commencer à bricoler :slight_smile:

J’aimerai surtout insérer un message d’avertissement à cet endroit :

Quel fichier dois-je bidouiller pour ajouter un texte simple ?

Le fichier qui génère ce html est encore en code legacy : yeswiki/tools/contact/handlers/page/mail.php at doryphore-dev · YesWiki/yeswiki · GitHub

Pour pouvoir faire une personnalisation, tu peux faire ceci:

  • créer le fichier custom/handlers/MailHandler__.php
  • y mettre ceci
<?php

namespace YesWiki\Custom;

use YesWiki\Core\YesWikiHandler;
class MailHandler__ extends YesWikiHandler
{
    public function run()
    {
        $anchor = '<form id="ajax-mail-form-handler" class="ajax-mail-form" action="';
        $newHtml = '<div class="une-classe-sympa">MON NOUVEAU TEXTE</div>';
            $this->output = str_replace(
                $anchor ,
                $newHtml . $anchor ,
                $this->output
            );
    }
}

Bons tests

1 « J'aime »

Génial, c’est exactement ça !!
Un grand merci @j9rem !!