Formulaire de contact avancé - ajout d'un champs

Bonjour,

Je réalise actuellement un site sous SPIP 2.0.10 [14698]. Je me permets de vous adresser ce message pour vous demander votre aide car je rencontre une difficulté à ajouter un champs à mon formulaire.

J’ai installé le plugin « Formulaire de contact avançé » ces jours-ci afin de proposer un formulaire plus complet. J’aurais toutefois besoin d’y ajouter deux champs : date d’arrivée et date de départ.

J’ai lu la documentation complète (http://www.spip-contrib.net/Formulaire-de-contact-avance) et ai cherché des explications sur ce qu’est un pipeline (http://programmer.spip.org/Qu-est-ce-qu-un-pipeline) (http://doc.spip.org/@Les-points-d-entree-pipelines#liste-points-entree), mais je dois avouer que je ne suis pas très à l’aise avec cette notion de pipeline. Aussi, je ne parviens pas à ajouter les 2 champs…

Voici la procédure que j’ai suivi…

ajout dans le fichier plugin.xml du dossier contact contenant les fichiers du plugin « formulaire de contact avançé » :

contact_infos_supplementaires
contact_datearri.php

création d’un fichier contact_datearri.php dans le dossier contact (donc au même niveau que le fichier plugin.xml

<?php function datearri_contact_infos_supplementaires($champs){ // Le paramètre contient tous les champs par défaut avec : // clé = le "name" du champ // valeur = le titre du champ $champs['contact_datearri'] = 'Date arrivee'; // Si votre site est multilingue, il faut utiliser une chaine de langue $champs['civilite'] = _T('une_chaine_de_langue_pour_civilite'); return $champs; } ?>

Or, il ne se passe rien de nouveau… malgré le fait que j’ai vidé le cache… N’étant pas du tout spécialiste en php, j’ai recopié le code sans le comprendre, je l’avoue… et mes recherches sur internet ne m’ont pas plus éclairé…

Pourriez-vous avoir la gentillesse de m’accorder un instant pour m’apporter votre aide ? Je vous en remercie par avance.

Cordialement,

Le 23/03/2010 13:39, Happy Mama a écrit :

(...)
J'ai installé le plugin "Formulaire de contact avançé" ces jours-ci afin de proposer un formulaire plus complet. J'aurais toutefois besoin d'y ajouter deux champs : date d'arrivée et date de départ.

J'ai lu la documentation complète (Formulaire de contact avancé - SPIP-Contrib) et ai cherché des explications sur ce qu'est un pipeline (http://programmer.spip.org/Qu-est-ce-qu-un-pipeline) (http://doc.spip.org/@Les-points-d-entree-pipelines#liste-points-entree), mais je dois avouer que je ne suis pas très à l'aise avec cette notion de pipeline. Aussi, je ne parviens pas à ajouter les 2 champs...

Voici la procédure que j'ai suivi...
_
*ajout dans le fichier plugin.xml* du dossier contact contenant les fichiers du plugin "formulaire de contact avançé" :_
<pipeline>
<nom>contact_infos_supplementaires</nom>
<inclure>contact_datearri.php</inclure>
</pipeline>

Cette procédure est indiquée si tu désires écrire un plugin utilisant le plugin contact avancé, pas pour modifier le plugin lui même.

Dans ton cas, il vaudrait mieux écrire dans ton fichier config/mes_options.php (à créer s'il n'existe pas ) :
$GLOBALS['spip_pipeline']['contact_infos_supplementaires'] .= '|mesdates_contact_infos_supplementaires';

_*création d'un fichier contact_datearri.php* dans le dossier contact (donc au même niveau que le fichier plugin.xml_
<?php
function datearri_contact_infos_supplementaires($champs){
    // Le paramètre contient tous les champs par défaut avec :
    // clé = le "name" du champ
    // valeur = le titre du champ
    $champs['contact_datearri'] = 'Date arrivee';

    // Si votre site est multilingue, il faut utiliser une chaine de langue
    $champs['civilite'] = _T('une_chaine_de_langue_pour_civilite');

    return $champs;
}
?>

Or, il ne se passe rien de nouveau... malgré le fait que j'ai vidé le cache...

Après avoir modifié un plugin vider le cache ne suffit pas, il faudrait a minima le désactiver puis le réactiver pour que soit pris en compte tes modifications.

Mais pour ton cas toujours, ajoutes dans ton fichier squelettes/mes_fonctions.php (à créer s'il n'existe pas ) :

function mesdates_contact_infos_supplementaires($champs){
     // Le paramètre contient tous les champs par défaut avec :
     // clé = le "name" du champ
     // valeur = le titre du champ
     $champs['datearrivee'] = _T('date_arrivee');
     $champs['datedepart'] = _T('date_depart');
     return $champs;
}

puis, dans ton fichier squelettes/lang/local_fr.php (à créer s'il n'existe pas ) :

<?php

// This is a SPIP language file -- Ceci est un fichier langue de SPIP

$GLOBALS[$GLOBALS['idx_lang']] = array(

'date_arrivee' => 'Date d\'arriv&eacute;e',
'date_depart' => 'Date de d&eacute;part',

);

?>

puis vide le cache et... ça devrait le faire !

Éric

Merci beaucoup Eric d’avoir pris le temps de me répondre. Malheureusement, il ne se passe rien.
Je résume mes actions pour m’assurer d’avoir bien compris.

Création d’un fichier config/mes_options.php

<?php $GLOBALS['spip_pipeline']['contact_infos_supplementaires'] .= '|mesdates_contact_infos_supplementaires'; ?>

Création d’un fichier squelettes/mes_fonctions.php

<?php function mesdates_contact_infos_supplementaires($champs){ // Le paramètre contient tous les champs par défaut avec : // clé = le "name" du champ // valeur = le titre du champ $champs['datearrivee'] = _T('date_arrivee'); $champs['datedepart'] = _T('date_depart'); return $champs; } ?>

Création d’un fichier squelettes/lang/local_fr.php (peut-être dois-je les intégrer directement au fichier langue du plugin contact/lang/contact_fr.php ?)

<?php $GLOBALS[$GLOBALS['idx_lang']] = array( 'date_arrivee' => 'Date d\'arrivée', 'date_depart' => 'Date de départ', ); ?>

J’ai désactivé et réactivé le cache bien que j’ai fait ses changement sur une sauvegarde en local sur laquelle je n’avais pas modifié le plugin auparavant… et vidé le cache mais rien ne se passe…

Merci encore pour votre aide.

Le 23 mars 2010 14:55, Eric L <elurand@free.fr> a écrit :

Le 23/03/2010 13:39, Happy Mama a écrit :

(…)

J’ai installé le plugin « Formulaire de contact avançé » ces jours-ci afin de proposer un formulaire plus complet. J’aurais toutefois besoin d’y ajouter deux champs : date d’arrivée et date de départ.

J’ai lu la documentation complète (http://www.spip-contrib.net/Formulaire-de-contact-avance) et ai cherché des explications sur ce qu’est un pipeline (http://programmer.spip.org/Qu-est-ce-qu-un-pipeline) (http://doc.spip.org/@Les-points-d-entree-pipelines#liste-points-entree), mais je dois avouer que je ne suis pas très à l’aise avec cette notion de pipeline. Aussi, je ne parviens pas à ajouter les 2 champs…

Voici la procédure que j’ai suivi…
_
ajout dans le fichier plugin.xml du dossier contact contenant les fichiers du plugin « formulaire de contact avançé » :_

contact_infos_supplementaires
contact_datearri.php

Cette procédure est indiquée si tu désires écrire un plugin utilisant le plugin contact avancé, pas pour modifier le plugin lui même.

Dans ton cas, il vaudrait mieux écrire dans ton fichier config/mes_options.php (à créer s’il n’existe pas ) :
$GLOBALS[‹ spip_pipeline ›][‹ contact_infos_supplementaires ›] .= ‹ |mesdates_contact_infos_supplementaires ›;

création d’un fichier contact_datearri.php dans le dossier contact (donc au même niveau que le fichier plugin.xml

<?php function datearri_contact_infos_supplementaires($champs){ // Le paramètre contient tous les champs par défaut avec : // clé = le "name" du champ // valeur = le titre du champ $champs['contact_datearri'] = 'Date arrivee'; // Si votre site est multilingue, il faut utiliser une chaine de langue $champs['civilite'] = _T('une_chaine_de_langue_pour_civilite'); return $champs; } ?>

Or, il ne se passe rien de nouveau… malgré le fait que j’ai vidé le cache…

Après avoir modifié un plugin vider le cache ne suffit pas, il faudrait a minima le désactiver puis le réactiver pour que soit pris en compte tes modifications.

Mais pour ton cas toujours, ajoutes dans ton fichier squelettes/mes_fonctions.php (à créer s’il n’existe pas ) :

function mesdates_contact_infos_supplementaires($champs){

// Le paramètre contient tous les champs par défaut avec :
// clé = le « name » du champ
// valeur = le titre du champ

$champs[‹ datearrivee ›] = _T(‹ date_arrivee ›);
$champs[‹ datedepart ›] = _T(‹ date_depart ›);
return $champs;
}

puis, dans ton fichier squelettes/lang/local_fr.php (à créer s’il n’existe pas ) :

<?php // This is a SPIP language file -- Ceci est un fichier langue de SPIP $GLOBALS[$GLOBALS['idx_lang']] = array( 'date_arrivee' => 'Date d\'arrivée', 'date_depart' => 'Date de départ', ); ?>

puis vide le cache et… ça devrait le faire !

Éric


liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
http://archives.rezo.net/spip.mbox/

Documentation de SPIP : http://www.spip.net/

Irc : de l’aide à toute heure : http://spip.net/irc

Essayes de mettre la fonction mesdates_contact_infos_supplementaires() dans mes_options.php
(j'avais un doute tout à l'heure)
Si tu modifies un fichier du plugin ( comme contact_fr.php ) tu prends le risque de perdre tes modifs lors d'une mise à jour du plugin.
Le dossier squelettes te permet de faire toutes les modifs ou surcharges que tu souhaites sans risque.

Eric

Le 23/03/2010 15:37, Happy Mama a écrit :

Merci beaucoup Eric d'avoir pris le temps de me répondre. Malheureusement, il ne se passe rien.
Je résume mes actions pour m'assurer d'avoir bien compris.

Création d'un fichier config/mes_options.php
<?php
$GLOBALS['spip_pipeline']['contact_infos_supplementaires'] .= '|mesdates_contact_infos_supplementaires';
?>

Création d'un fichier squelettes/mes_fonctions.php
<?php
function mesdates_contact_infos_supplementaires($champs){
   // Le paramètre contient tous les champs par défaut avec :
   // clé = le "name" du champ
   // valeur = le titre du champ
   $champs['datearrivee'] = _T('date_arrivee');
   $champs['datedepart'] = _T('date_depart');
   return $champs;
}
?>

Création d'un fichier squelettes/lang/local_fr.php (_peut-être dois-je les intégrer directement au fichier langue du plugin contact/lang/contact_fr.php ?_)
<?php

$GLOBALS[$GLOBALS['idx_lang']] = array(

'date_arrivee' => 'Date d\'arriv&eacute;e',
'date_depart' => 'Date de d&eacute;part',

);

?>

J'ai désactivé et réactivé le cache bien que j'ai fait ses changement sur une sauvegarde en local sur laquelle je n'avais pas modifié le plugin auparavant... et vidé le cache mais rien ne se passe...

Merci encore pour votre aide.

Le 23 mars 2010 14:55, Eric L <elurand@free.fr <mailto:elurand@free.fr>> a écrit :

    Le 23/03/2010 13:39, Happy Mama a écrit :

        (...)

        J'ai installé le plugin "Formulaire de contact avançé" ces
        jours-ci afin de proposer un formulaire plus complet. J'aurais
        toutefois besoin d'y ajouter deux champs : date d'arrivée et
        date de départ.

        J'ai lu la documentation complète
        (Formulaire de contact avancé - SPIP-Contrib) et
        ai cherché des explications sur ce qu'est un pipeline
        (http://programmer.spip.org/Qu-est-ce-qu-un-pipeline)
        (http://doc.spip.org/@Les-points-d-entree-pipelines#liste-points-entree),
        mais je dois avouer que je ne suis pas très à l'aise avec
        cette notion de pipeline. Aussi, je ne parviens pas à ajouter
        les 2 champs...

        Voici la procédure que j'ai suivi...
        _
        *ajout dans le fichier plugin.xml* du dossier contact
        contenant les fichiers du plugin "formulaire de contact avançé" :_
        <pipeline>
        <nom>contact_infos_supplementaires</nom>
        <inclure>contact_datearri.php</inclure>
        </pipeline>

    Cette procédure est indiquée si tu désires écrire un plugin
    utilisant le plugin contact avancé, pas pour modifier le plugin
    lui même.

    Dans ton cas, il vaudrait mieux écrire dans ton fichier
    config/mes_options.php (à créer s'il n'existe pas ) :
    $GLOBALS['spip_pipeline']['contact_infos_supplementaires'] .=
    '|mesdates_contact_infos_supplementaires';

        _*création d'un fichier contact_datearri.php* dans le dossier
        contact (donc au même niveau que le fichier plugin.xml_

        <?php
        function datearri_contact_infos_supplementaires($champs){
           // Le paramètre contient tous les champs par défaut avec :
           // clé = le "name" du champ
           // valeur = le titre du champ
           $champs['contact_datearri'] = 'Date arrivee';

           // Si votre site est multilingue, il faut utiliser une
        chaine de langue
           $champs['civilite'] = _T('une_chaine_de_langue_pour_civilite');

           return $champs;
        }
        ?>

        Or, il ne se passe rien de nouveau... malgré le fait que j'ai
        vidé le cache...

    Après avoir modifié un plugin vider le cache ne suffit pas, il
    faudrait a minima le désactiver puis le réactiver pour que soit
    pris en compte tes modifications.

    Mais pour ton cas toujours, ajoutes dans ton fichier
    squelettes/mes_fonctions.php (à créer s'il n'existe pas ) :

    function mesdates_contact_infos_supplementaires($champs){

       // Le paramètre contient tous les champs par défaut avec :
       // clé = le "name" du champ
       // valeur = le titre du champ
       $champs['datearrivee'] = _T('date_arrivee');
       $champs['datedepart'] = _T('date_depart');
       return $champs;
    }

    puis, dans ton fichier squelettes/lang/local_fr.php (à créer s'il
    n'existe pas ) :

    <?php

    // This is a SPIP language file -- Ceci est un fichier langue de
    SPIP

    $GLOBALS[$GLOBALS['idx_lang']] = array(

    'date_arrivee' => 'Date d\'arriv&eacute;e',
    'date_depart' => 'Date de d&eacute;part',

    );

    ?>

    puis vide le cache et... ça devrait le faire !

    Éric

    _______________________________________________
    liste spip
    spip@rezo.net <mailto:spip@rezo.net> - désabonnement : envoyer un
    mail à spip-off@rezo.net <mailto:spip-off@rezo.net>

    Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
    Discuter chez rezo.net

    Documentation de SPIP : http://www.spip.net/

    Irc : de l'aide à toute heure : http://spip.net/irc

Je ne parviens pas à ajouter les champs… Dois-je obligatoirement passer par le pipeline ? N’est-il pas possible de modifier le code dans tous les fichiers utilisées pour ajouter ces deux champs ?

Ou peut-être existe-t-il un plugin plus adapté pour une formulaire de réservation ?

Merci encore pour votre aide.

Le 23 mars 2010 20:15, Happy Mama <happy3mama@gmail.com> a écrit :

Merci encore, mais cela ne change rien… Qu’entends-tu par désactiver et réactiver le plugin ? Je l’ai fait uniquement à partir de l’interface privée en décochant le plugin, nettoyant le cache et recochant le plugin. Dois-je supprimer les tables créées pour voir si le problème vient de là ?
Par ailleurs, j’ai pris note de la raison pour laquelle il est préférable de faire les modifs dans le dossier squelette. Merci pour l’info.

Le 23 mars 2010 15:54, Eric L <elurand@free.fr> a écrit :

Essayes de mettre la fonction mesdates_contact_infos_supplementaires() dans mes_options.php
(j’avais un doute tout à l’heure)
Si tu modifies un fichier du plugin ( comme contact_fr.php ) tu prends le risque de perdre tes modifs lors d’une mise à jour du plugin.
Le dossier squelettes te permet de faire toutes les modifs ou surcharges que tu souhaites sans risque.

Eric

Le 23/03/2010 15:37, Happy Mama a écrit :

Merci beaucoup Eric d’avoir pris le temps de me répondre. Malheureusement, il ne se passe rien.
Je résume mes actions pour m’assurer d’avoir bien compris.

Création d’un fichier config/mes_options.php

<?php $GLOBALS['spip_pipeline']['contact_infos_supplementaires'] .= '|mesdates_contact_infos_supplementaires'; ?>

Création d’un fichier squelettes/mes_fonctions.php

<?php function mesdates_contact_infos_supplementaires($champs){ // Le paramètre contient tous les champs par défaut avec : // clé = le "name" du champ // valeur = le titre du champ $champs['datearrivee'] = _T('date_arrivee'); $champs['datedepart'] = _T('date_depart'); return $champs; } ?>

Création d’un fichier squelettes/lang/local_fr.php (peut-être dois-je les intégrer directement au fichier langue du plugin contact/lang/contact_fr.php ?)

<?php $GLOBALS[$GLOBALS['idx_lang']] = array( 'date_arrivee' => 'Date d\'arrivée', 'date_depart' => 'Date de départ', ); ?>

J’ai désactivé et réactivé le cache bien que j’ai fait ses changement sur une sauvegarde en local sur laquelle je n’avais pas modifié le plugin auparavant… et vidé le cache mais rien ne se passe…

Merci encore pour votre aide.

Le 23 mars 2010 14:55, Eric L <elurand@free.fr mailto:[elurand@free.fr](mailto:elurand@free.fr)> a écrit :

Le 23/03/2010 13:39, Happy Mama a écrit :

(…)

J’ai installé le plugin « Formulaire de contact avançé » ces
jours-ci afin de proposer un formulaire plus complet. J’aurais
toutefois besoin d’y ajouter deux champs : date d’arrivée et
date de départ.

J’ai lu la documentation complète
(http://www.spip-contrib.net/Formulaire-de-contact-avance) et
ai cherché des explications sur ce qu’est un pipeline
(http://programmer.spip.org/Qu-est-ce-qu-un-pipeline)
(http://doc.spip.org/@Les-points-d-entree-pipelines#liste-points-entree),
mais je dois avouer que je ne suis pas très à l’aise avec
cette notion de pipeline. Aussi, je ne parviens pas à ajouter
les 2 champs…

Voici la procédure que j’ai suivi…
_
ajout dans le fichier plugin.xml du dossier contact
contenant les fichiers du plugin « formulaire de contact avançé » :_

contact_infos_supplementaires
contact_datearri.php

Cette procédure est indiquée si tu désires écrire un plugin
utilisant le plugin contact avancé, pas pour modifier le plugin
lui même.

Dans ton cas, il vaudrait mieux écrire dans ton fichier
config/mes_options.php (à créer s’il n’existe pas ) :
$GLOBALS[‹ spip_pipeline ›][‹ contact_infos_supplementaires ›] .=
‹ |mesdates_contact_infos_supplementaires ›;

création d’un fichier contact_datearri.php dans le dossier
contact (donc au même niveau que le fichier plugin.xml

<?php function datearri_contact_infos_supplementaires($champs){ // Le paramètre contient tous les champs par défaut avec : // clé = le "name" du champ // valeur = le titre du champ $champs['contact_datearri'] = 'Date arrivee'; // Si votre site est multilingue, il faut utiliser une chaine de langue $champs['civilite'] = _T('une_chaine_de_langue_pour_civilite'); return $champs; } ?>

Or, il ne se passe rien de nouveau… malgré le fait que j’ai
vidé le cache…

Après avoir modifié un plugin vider le cache ne suffit pas, il
faudrait a minima le désactiver puis le réactiver pour que soit
pris en compte tes modifications.

Mais pour ton cas toujours, ajoutes dans ton fichier
squelettes/mes_fonctions.php (à créer s’il n’existe pas ) :

function mesdates_contact_infos_supplementaires($champs){

// Le paramètre contient tous les champs par défaut avec :
// clé = le « name » du champ
// valeur = le titre du champ
$champs[‹ datearrivee ›] = _T(‹ date_arrivee ›);
$champs[‹ datedepart ›] = _T(‹ date_depart ›);
return $champs;
}

puis, dans ton fichier squelettes/lang/local_fr.php (à créer s’il
n’existe pas ) :

<?php // This is a SPIP language file -- Ceci est un fichier langue de SPIP $GLOBALS[$GLOBALS['idx_lang']] = array( 'date_arrivee' => 'Date d\'arrivée', 'date_depart' => 'Date de départ', ); ?>

puis vide le cache et… ça devrait le faire !

Éric


liste spip

spip@rezo.net mailto:[spip@rezo.net](mailto:spip@rezo.net) - désabonnement : envoyer un
mail à spip-off@rezo.net mailto:[spip-off@rezo.net](mailto:spip-off@rezo.net)

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
http://archives.rezo.net/spip.mbox/

Documentation de SPIP : http://www.spip.net/

Irc : de l’aide à toute heure : http://spip.net/irc