Bonjour

J'aimerais personnaliser le formulaire d'édition d'article en espace public

J'ai donc essayé de faire ce qu'il faut pour faire afficher:

             [(#SESSION{id_auteur}|oui)
#FORMULAIRE_EDITER_ARTICLE_QUESTIONNAIRE{#ID_ARTICLE, #ID_RUBRIQUE, #SELF}
  ]

Rien ne s'affiche alors qu'avec #FORMULAIRE_EDITER_ARTICLE c'est correct ???

J'aimerais comprendre ce qui ne va pas ??? Merci

J'ai copié les fichiers editer_article.html et editer_article.php dans 
le dossier formulaires de squelettes

J'ai changé pour editer_article_questionnaire.html et 
editer_article_questionnaire.php

et j'ai changé les occurences comme ceci:

pour editer_article_questionnaire.html

<div class="formulaire_spip formulaire_editer 
formulaire_editer_article_questionnaire 
formulaire_editer_article_questionnaire-#ENV{id_article,nouveau}">
     [<p class="reponse_formulaire 
reponse_formulaire_ok">(#ENV**{message_ok})</p>]
     [<p class="reponse_formulaire 
reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
     [(#ENV{editable})
     <form method='post' action='#ENV{action}'><div>
         [(#REM) declarer les hidden qui declencheront le service du 
formulaire
         parametre : url d'action ]
         #ACTION_FORMULAIRE
         <input type='hidden' name='id_article' value='#ENV{id_article}' />
         <div class="editer-groupe">
[(#ENV**{config}|table_valeur{articles_surtitre}|=={non}|?{#ENV**{surtitre,''},'
 
'}|oui)
             <div class="editer editer_surtitre[ 
(#ENV**{erreurs}|table_valeur{surtitre}|oui)erreur]">
                 <label for="surtitre"><:texte_sur_titre:><em 
class="aide">#AIDER{surtitre}</em></label>[
                 <span 
class='erreur_message'>(#ENV**{erreurs}|table_valeur{surtitre})</span>
                 ]<input type='text' class='text' name='surtitre' 
id='surtitre'[ lang='(#LANGUE)'] value="[(#ENV**{surtitre})]" />
             </div>]
             <div class="editer editer_titre obligatoire[ 
(#ENV**{erreurs}|table_valeur{titre}|oui)erreur]">
                 <label for="titre"><:info_titre:><em 
class="aide">#AIDER{titre}</em></label>[
                 <span 
class='erreur_message'>(#ENV**{erreurs}|table_valeur{titre})</span>
                 ]<input type='text' class='text' name='titre' 
id='titre'[ lang='(#LANGUE)'] value="[(#ENV**{titre,''})]"
placeholder="<:info_nouvel_article|attribut_html:>" />
             </div>
[(#ENV**{config}|table_valeur{articles_soustitre}|=={non}|?{#ENV**{soustitre,''},'
 
'}|oui)
             <div class="editer editer_soustitre[ 
(#ENV**{erreurs}|table_valeur{soustitre}|oui)erreur]">
                 <label for="soustitre"><:texte_sous_titre:><em 
class="aide">#AIDER{soustitre}</em></label>[
                 <span 
class='erreur_message'>(#ENV**{erreurs}|table_valeur{soustitre})</span>
                 ]<input type='text' class='text' name='soustitre' 
id='soustitre'[ lang='(#LANGUE)'] value="[(#ENV**{soustitre})]" />
             </div>]
             [<div class="editer editer_parent[ 
(#ENV**{erreurs}|table_valeur{id_parent}|oui)erreur]">
                 <label 
for="id_parent"><:titre_cadre_interieur_rubrique:><em 
class="aide">#AIDER{id_parent}</em></label>[
                 <span 
class='erreur_message'>(#ENV**{erreurs}|table_valeur{id_parent})</span>
                 ]
(#VAL|chercher_rubrique{#ENV{id_article},#ENV{id_parent},'article',#ENV{id_secteur},#ENV**{config}|table_valeur{restreint},0,form_simple})
             </div>]

[(#ENV**{config}|table_valeur{articles_descriptif}|=={non}|?{#ENV**{descriptif,''},'
 
'}|oui)
             <div class="editer editer_descriptif[ 
(#ENV**{erreurs}|table_valeur{descriptif}|oui)erreur]">
                 <label for="descriptif"><:texte_descriptif_rapide:><em 
class="aide">#AIDER{descriptif}</em></label>[
                 <span 
class='erreur_message'>(#ENV**{erreurs}|table_valeur{descriptif})</span>
                 ]<textarea name='descriptif' id='descriptif'[ 
lang='(#LANGUE)'] rows='2' cols='40'>[(#ENV**{descriptif})]</textarea>
             </div>]
[(#ENV**{config}|table_valeur{articles_chapeau}|=={non}|?{#ENV**{chapo,''},' 
'}|oui)
             <div class="editer editer_chapo[ 
(#ENV**{erreurs}|table_valeur{chapo}|oui)erreur]">
                 <label for="chapo"><:info_chapeau:><em 
class="aide">#AIDER{chapo}</em></label>[
                 <span 
class='erreur_message'>(#ENV**{erreurs}|table_valeur{chapo})</span>
                 ]<textarea name='chapo' id='chapo'[ lang='(#LANGUE)'][ 
rows='(#ENV**{config}|table_valeur{lignes})'] 
cols='40'>[(#ENV**{chapo})]</textarea>
             </div>]

[(#ENV**{config}|table_valeur{articles_urlref}|=={non}|?{#ENV**{url_site,#ENV**{nom_site,''}},'
 
'}|oui)
             <div class="editer editer_liens_sites fieldset">
                 <fieldset>
                     <h3 class="legend"><:entree_liens_sites:></h3>
                     <div class="editer-groupe">
                         <div class="editer editer_nom_site[ 
(#ENV**{erreurs}|table_valeur{nom_site}|oui)erreur]">
                             <label for="nom_site"><:info_titre:></label>[
                             <span 
class='erreur_message'>(#ENV**{erreurs}|table_valeur{nom_site})</span>
                             ]<input type='text' class='text' 
name='nom_site' id='nom_site'[ lang='(#LANGUE)'] 
value="[(#ENV**{nom_site})]" />
                         </div>
                         <div class="editer editer_url_site[ 
(#ENV**{erreurs}|table_valeur{url_site}|oui)erreur]">
                             <label for="url_site"><:info_url:></label>[
                             <span 
class='erreur_message'>(#ENV**{erreurs}|table_valeur{url_site})</span>
                             ]<input type='text' class='text' 
name='url_site' id='url_site' value="[(#ENV**{url_site})]" />
                         </div>
                     </div>
                 </fieldset>
             </div>]

[(#ENV**{config}|table_valeur{articles_texte}|=={non}|?{#ENV**{texte,''},' 
'}|oui)
             <div class="editer editer_texte obligatoire[ 
(#ENV**{erreurs}|table_valeur{texte}|oui)erreur]">
                 <label for="text_area"><:info_texte:><em 
class="aide">#AIDER{text_area}</em></label>[
                 <span 
class='erreur_message'>(#ENV**{erreurs}|table_valeur{texte})</span>
                 ][(#ENV**{_texte_trop_long,''})]
                 <textarea name='texte' id='text_area'[ 
lang='(#LANGUE)'] rows='[(#ENV**{config}|table_valeur{lignes}|plus{2})]' 
cols='40'>[(#ENV**{texte})]</textarea>
             </div>]
[(#ENV**{config}|table_valeur{articles_ps}|=={non}|?{#ENV**{ps,''},' '}|oui)
             <div class="editer editer_ps[ 
(#ENV**{erreurs}|table_valeur{ps}|oui)erreur]">
                 <label for="ps"><:info_post_scriptum:></label>[
                 <span 
class='erreur_message'>(#ENV**{erreurs}|table_valeur{ps})</span>
                 ]<textarea name='ps' id='ps'[ lang='(#LANGUE)'] 
rows='5' cols='40'>[(#ENV**{ps})]</textarea>
             </div>]
         </div>

         [(#REM) ajouter les saisies supplementaires : extra et autre, a 
cet endroit ]
         <!--extra-->
         <p class='boutons'><input type='submit' name="save" 
class='submit' value='<:bouton_enregistrer:>' /></p>
     </div></form>
     ]
</div>


POUR editer_article_questionnaire.php

<?php

/***************************************************************************\
  *  SPIP, Systeme de publication pour 
l'internet                           *
  * *
  *  Copyright (c) 
2001-2017                                                *
  *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel 
Saint-James  *
  * *
  *  Ce programme est un logiciel libre distribue sous licence 
GNU/GPL.     *
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en 
ligne.   *
\***************************************************************************/

/**
  * Gestion du formulaire de d'édition d'article
  *
  * @package SPIP\Core\Articles\Formulaires
  **/

if (!defined('_ECRIRE_INC_VERSION')) {
     return;
}

include_spip('inc/actions');
include_spip('inc/editer');

/**
  * Chargement du formulaire d'édition d'article
  *
  * @uses formulaires_editer_objet_charger()
  *
  * @param int|string $id_article
  *     Identifiant de l'article. 'new' pour une nouvel article.
  * @param int $id_rubrique
  *     Identifiant de la rubrique parente
  * @param string $retour
  *     URL de redirection après le traitement
  * @param int $lier_trad
  *     Identifiant éventuel d'un article source de traduction
  * @param string $config_fonc
  *     Nom de la fonction ajoutant des configurations particulières au 
formulaire
  * @param array $row
  *     Valeurs de la ligne SQL de l'article, si connu
  * @param string $hidden
  *     Contenu HTML ajouté en même temps que les champs cachés du 
formulaire.
  * @return array
  *     Environnement du formulaire
  **/
function formulaires_editer_article_questionnaire_charger_dist(
     $id_article = 'new',
     $id_rubrique = 0,
     $retour = '',
     $lier_trad = 0,
     $config_fonc = 'articles_edit_config',
     $row = array(),
     $hidden = ''
) {
     $valeurs = formulaires_editer_objet_charger(
         'article',
         $id_article,
         $id_rubrique,
         $lier_trad,
         $retour,
         $config_fonc,
         $row,
         $hidden
     );
     // il faut enlever l'id_rubrique car la saisie se fait sur id_parent
     // et id_rubrique peut etre passe dans l'url comme rubrique parent 
initiale
     // et sera perdue si elle est supposee saisie
     return $valeurs;
}

/**
  * Identifier le formulaire en faisant abstraction des paramètres qui
  * ne représentent pas l'objet édité
  *
  * @param int|string $id_article
  *     Identifiant de l'article. 'new' pour une nouvel article.
  * @param int $id_rubrique
  *     Identifiant de la rubrique parente
  * @param string $retour
  *     URL de redirection après le traitement
  * @param int $lier_trad
  *     Identifiant éventuel d'un article source de traduction
  * @param string $config_fonc
  *     Nom de la fonction ajoutant des configurations particulières au 
formulaire
  * @param array $row
  *     Valeurs de la ligne SQL de l'article, si connu
  * @param string $hidden
  *     Contenu HTML ajouté en même temps que les champs cachés du 
formulaire.
  * @return string
  *     Hash du formulaire
  */
function formulaires_editer_article_questionnaire_identifier_dist(
     $id_article = 'new',
     $id_rubrique = 0,
     $retour = '',
     $lier_trad = 0,
     $config_fonc = 'articles_edit_config',
     $row = array(),
     $hidden = ''
) {
     return serialize(array(intval($id_article), $lier_trad));
}

/**
  * Choix par défaut des options de présentation
  *
  * @param array $row
  *     Valeurs de la ligne SQL d'un article, si connu
  * return array
  *     Configuration pour le formulaire
  */
function articles_edit_config($row) {
     global $spip_lang;

     $config = $GLOBALS['meta'];
     $config['lignes'] = 8;
     $config['langue'] = $spip_lang;

     $config['restreint'] = ($row['statut'] == 'publie');

     return $config;
}

/**
  * Vérifications du formulaire d'édition d'article
  *
  * @uses formulaires_editer_objet_verifier()
  *
  * @param int|string $id_article
  *     Identifiant de l'article. 'new' pour une nouvel article.
  * @param int $id_rubrique
  *     Identifiant de la rubrique parente
  * @param string $retour
  *     URL de redirection après le traitement
  * @param int $lier_trad
  *     Identifiant éventuel d'un article source de traduction
  * @param string $config_fonc
  *     Nom de la fonction ajoutant des configurations particulières au 
formulaire
  * @param array $row
  *     Valeurs de la ligne SQL de l'article, si connu
  * @param string $hidden
  *     Contenu HTML ajouté en même temps que les champs cachés du 
formulaire.
  * @return array
  *     Erreurs du formulaire
  **/
function formulaires_editer_article_questionnaire_verifier_dist(
     $id_article = 'new',
     $id_rubrique = 0,
     $retour = '',
     $lier_trad = 0,
     $config_fonc = 'articles_edit_config',
     $row = array(),
     $hidden = ''
) {
     // auto-renseigner le titre si il n'existe pas
     titre_automatique('titre', array('descriptif', 'chapo', 'texte'));
     // on ne demande pas le titre obligatoire : il sera rempli a la 
volee dans editer_article_questionnaire
     si vide
     $erreurs = formulaires_editer_objet_verifier('article', 
$id_article, array('id_parent'));
     // si on utilise le formulaire dans le public
     if (!function_exists('autoriser')) {
         include_spip('inc/autoriser');
     }
     if (!isset($erreurs['id_parent'])
         and !autoriser('creerarticledans', 'rubrique', 
_request('id_parent'))
     ) {
         $erreurs['id_parent'] = _T('info_creerdansrubrique_non_autorise');
     }

     return $erreurs;
}

/**
  * Traitements du formulaire d'édition d'article
  *
  * @uses formulaires_editer_objet_traiter()
  *
  * @param int|string $id_article
  *     Identifiant de l'article. 'new' pour une nouvel article.
  * @param int $id_rubrique
  *     Identifiant de la rubrique parente
  * @param string $retour
  *     URL de redirection après le traitement
  * @param int $lier_trad
  *     Identifiant éventuel d'un article source de traduction
  * @param string $config_fonc
  *     Nom de la fonction ajoutant des configurations particulières au 
formulaire
  * @param array $row
  *     Valeurs de la ligne SQL de l'article, si connu
  * @param string $hidden
  *     Contenu HTML ajouté en même temps que les champs cachés du 
formulaire.
  * @return array
  *     Retours des traitements
  **/
function formulaires_editer_article_questionnaire_traiter_dist(
     $id_article = 'new',
     $id_rubrique = 0,
     $retour = '',
     $lier_trad = 0,
     $config_fonc = 'articles_edit_config',
     $row = array(),
     $hidden = ''
) {
     // ici on ignore changer_lang qui est poste en cas de trad,
     // car l'heuristique du choix de la langue est pris en charge par 
article_inserer
     // en fonction de la config du site et de la rubrique choisie
     set_request('changer_lang');

     return formulaires_editer_objet_traiter(
         'article',
         $id_article,
         $id_rubrique,
         $lier_trad,
         $retour,
         $config_fonc,
         $row,
         $hidden
     );
}

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

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : http://listes.rezo.net/mailman/listinfo/spip

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

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

Répondre à