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
\);
}