#FORMULAIRE_EDITER_ARTICLE_QUESTIONNAIRE ne s'affiche pas

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\[&#39;meta&#39;\];
 $config\[&#39;lignes&#39;\] = 8;
 $config\[&#39;langue&#39;\] = $spip\_lang;

 $config\[&#39;restreint&#39;\] = \($row\[&#39;statut&#39;\] == &#39;publie&#39;\);

 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\(
     &#39;article&#39;,
     $id\_article,
     $id\_rubrique,
     $lier\_trad,
     $retour,
     $config\_fonc,
     $row,
     $hidden
 \);

}

Le 22/02/2018 à 22:49, Renée Picard a écrit :

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

Tu as testé de bien vider tout le cache ?

Le 18-02-23 à 02:59, Chourak a écrit :

Tu as testé de bien vider tout le cache ?

OUI celle de spip, du navigateur et le dossier temp

Le 18-02-23 à 02:59, Chourak a écrit :

Tu as testé de bien vider tout le cache ?

J'ai refait le travail en intitulant le formulaire:

editer_article_q.html et .php

moins de risque d'erreur

Et HOP! Cela fonctionne

Dans le cas qui me préoccupe je veux que l'internaute puisse ajouter une
question (champ titre de l'article) et une réponse (champ texte de
l'article)

Comme par la suite il pourra modifier sa question et sa réponse avec le
plugin crayon j'essaie de mettre quelques mots pré-installés dans le
champ texte car si l'internaute ne met que la question il n'y a pas de
champ texte

Je ne sais pas comment faire cela.

Merci

Le 18-02-24 à 10:58, Renée Picard a écrit :

Comme par la suite il pourra modifier sa question et sa réponse avec le
plugin crayon j'essaie de mettre quelques mots pré-installés dans le
champ texte car si l'internaute ne met que la question il n'y a pas de
champ texte

J'ai fais ceci, ça fonctionne

J'imagine que je peux faire mieux ???

[(#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"></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'>Voici ma r&#233;ponse[(#ENV**{texte})]</textarea>
</div>]