diff --git a/.gitattributes b/.gitattributes index b9f80700f29e2f0411578ec46d24bef2eb103b38..0029dcc879e7cbac0f1f38dbf3d88977cf69f687 100644 --- a/.gitattributes +++ b/.gitattributes @@ -303,7 +303,6 @@ dist/prive/contenu/breve.html -text dist/prive/contenu/rubrique.html -text dist/prive/contenu/site.html -text dist/prive/editer/article.html -text -dist/prive/editer/article_fonctions.php -text dist/prive/infos/article.html -text dist/prive/infos/article_fonctions.php -text dist/prive/infos/auteur.html -text diff --git a/dist/formulaires/editer_article.html b/dist/formulaires/editer_article.html index 19385cfce02d154a1cc9243704a780822c7ac966..dce1eac011caa837de2be631cab7e21dc85eefce 100644 --- a/dist/formulaires/editer_article.html +++ b/dist/formulaires/editer_article.html @@ -1,94 +1,101 @@ - <form method='post' action='#ENV{action}' enctype='multipart/form-data'> - [(#REM) declarer les hidden qui declencheront le service du formulaire - parametre : url d'action ] - #ACTION_FORMULAIRE{#ENV{action}} - <input type='hidden' name='id_article' value='#ENV{id_article}' /> - <fieldset> - <ol class="formfx"> - [(#ENV**{config}|table_valeur{articles_surtitre}|=={non}|?{#ENV**{surtitre,''},' '}|?{' '}) - <li class="gauche"> - <label for="surtitre"><:texte_sur_titre:><em>#AIDER{arttitre}</em></label> - <input type='text' name='surtitre' id='surtitre' class='forml' value="[(#ENV**{surtitre}|entites_html)]" /> - [<span class='erreur'>(#ENV**{erreurs}|table_valeur{surtitre})</span>] - </li>] - <li class="gauche gauche_obligatoire"> - <label for="titre"><:info_titre:><em>#AIDER{arttitre}</em></label> - <input type='text' name='titre' id='titre' class='formo' value="[(#ENV**{titre,#REM|concat{info_nouvel_article}|_T}|entites_html)]" - [(#ENV{titre,''}|?{'',' '})onfocus="if(!antifocus){this.value='';antifocus=true;}"]/> - [<span class='erreur'>(#ENV**{erreurs}|table_valeur{titre})</span>] - </li> - [(#ENV**{config}|table_valeur{articles_soustitre}|=={non}|?{#ENV**{soustitre,''},' '}|?{' '}) - <li class="gauche"> - <label for="soustitre"><:texte_sous_titre:><em>#AIDER{arttitre}</em></label> - <input type='text' name='soustitre' id='soustitre' class='forml' value="[(#ENV**{soustitre}|entites_html)]" /> - [<span class='erreur'>(#ENV**{erreurs}|table_valeur{soustitre})</span>] - </li>] - - [(#REM|sinon{titre_cadre_interieur_rubrique}|_T|concat{' ',#AIDER{artrub}} - |chercher_rubrique{#ENV{id_rubrique}, #ENV{id_secteur},#ENV**{config}|table_valeur{restreint}})] - - [(#ENV**{config}|table_valeur{articles_descriptif}|=={non}|?{#ENV**{descriptif,''},' '}|?{' '}) - <li class="haut"> - <label for="descriptif"><:texte_descriptif_rapide:><em>#AIDER{artdesc}</em></label> - <textarea name='descriptif' id='descriptif' class='forml' rows='2' cols='40'>[(#ENV**{descriptif}|entites_html)]</textarea> - [<span class='erreur'>(#ENV**{erreurs}|table_valeur{desctiptid})</span>] - </li>] - [(#ENV**{config}|table_valeur{articles_chapeau}|=={non}|?{#ENV**{chapo,''},' '}|?{' '}) - [<li class='haut redirection'>(#ENV**{chapo}|match{^=}|?{' '}) - <label for='virtuel'><:info_redirection:></label> - <input type='text' name='virtuel' id='virtuel' class='forml' value="[(#ENV**{chapo}|replace{^=,''}|entites_html)]" /> - <input type='hidden' name='changer_virtuel' value='oui' /> - <div class='commentaire_bas'><:texte_article_virtuel_reference:>#AIDER{artvirt}</div> - </li>] - [<li class="haut">(#ENV**{chapo}|match{^=}|?{'',' '}) - <label for="chapo"><:info_chapeau:><em>#AIDER{arttitre}</em></label> - <textarea name='chapo' id='chapo' class='forml'[ rows='(#ENV**{config}|table_valeur{lignes})'] cols='40'>[(#ENV**{chapo}|entites_html)]</textarea> - [<span class='erreur'>(#ENV**{erreurs}|table_valeur{chapo})</span>] - </li>] - ] - [(#ENV**{config}|table_valeur{articles_urlref}|=={non}|?{#ENV**{url_site,#ENV**{nom_site,''}},' '}|?{' '}) - <fieldset> - <legend><:entree_liens_sites:></legend><ol> - <li class="gauche"> - <label for="nom_site"><:info_titre:></label> - <input type='text' name='nom_site' id='nom_site' class='forml' value="[(#ENV**{nom_site}|entites_html)]" /> - [<span class='erreur'>(#ENV**{erreurs}|table_valeur{nom_site})</span>] - </li> - <li class="gauche"> - <label for="url_site"><:info_url:></label> - <input type='text' name='url_site' id='url_site' class='forml' value="[(#ENV**{url_site}|entites_html)]" /> - [<span class='erreur'>(#ENV**{erreurs}|table_valeur{url_site})</span>] - </li></ol> - </fieldset>] - [(#ENV**{config}|table_valeur{articles_texte}|=={non}|?{#ENV**{texte,''},' '}|?{' '}) - <li class="haut"> - <label for="text_area"><:info_texte:><em>#AIDER{arttexte}</em></label> - <div class="commentaire"><:texte_enrichir_mise_a_jour:><em>#AIDER{raccourcis}</em></div> - [(#ENV**{config}|table_valeur{afficher_barre}|?{#VAL{text_area}|barre_typo{#LANG}})] - <textarea name='texte' id='text_area' class='formo barre_inserer' rows='[(#ENV**{config}|table_valeur{lignes}|plus{2})]' cols='40'[ - (#ENV**{browser_caret,''})]>[(#ENV**{texte}|entites_html)]</textarea> - [<span class='erreur'>(#ENV**{erreurs}|table_valeur{texte})</span>] - - <script type='text/javascript'><!-- - jQuery(function(){ - jQuery('#text_area') - .height((jQuery(window).height()-80)+'px'); - }); - //--></script> - - </li>] - [(#ENV**{config}|table_valeur{articles_ps}|=={non}|?{#ENV**{ps,''},' '}|?{' '}) - <li class="haut"> - <label for="ps"><:info_post_scriptum:></label> - <textarea name='ps' id='ps' class='forml' rows='5' cols='40'>[(#ENV**{ps}|entites_html)]</textarea> - [<span class='erreur'>(#ENV**{erreurs}|table_valeur{ps})</span>] - </li>] - </ol> - </fieldset> - [(#ENV**{config}|table_valeur{extra}|?{ - - [(#ENV**{extra}|editer_extra{#ENV{id_secteur}})] - - })] - <div style='text-align: right'><input class='fondo' type='submit' value='<:bouton_enregistrer:>' /></div> -</form> \ No newline at end of file +<div class='formfx'> + <br class='spacer' /> + [<p class="formulaire_message">(#ENV*{message_ok})</p>] + [<p class='formulaire_erreur'>(#ENV*{message_erreur})</p>] + [(#ENV{editable}) + <form method='post' action='#ENV{action}' enctype='multipart/form-data' > + [(#REM) declarer les hidden qui declencheront le service du formulaire + parametre : url d'action ] + #ACTION_FORMULAIRE{#ENV{action}} + <input type='hidden' name='id_article' value='#ENV{id_article}' /> + <fieldset> + <ol class="formfx"> + [(#ENV**{config}|table_valeur{articles_surtitre}|=={non}|?{#ENV**{surtitre,''},' '}|?{' '}) + <li class="gauche"> + <label for="surtitre"><:texte_sur_titre:><em>#AIDER{arttitre}</em></label> + <input type='text' name='surtitre' id='surtitre' class='forml' value="[(#ENV**{surtitre}|entites_html)]" /> + [<span class='erreur'>(#ENV**{erreurs}|table_valeur{surtitre})</span>] + </li>] + <li class="gauche gauche_obligatoire"> + <label for="titre"><:info_titre:><em>#AIDER{arttitre}</em></label> + <input type='text' name='titre' id='titre' class='formo' value="[(#ENV**{titre,#REM|concat{info_nouvel_article}|_T}|entites_html)]" + [(#ENV{titre,''}|?{'',' '})onfocus="if(!antifocus){this.value='';antifocus=true;}"]/> + [<span class='erreur'>(#ENV**{erreurs}|table_valeur{titre})</span>] + </li> + [(#ENV**{config}|table_valeur{articles_soustitre}|=={non}|?{#ENV**{soustitre,''},' '}|?{' '}) + <li class="gauche"> + <label for="soustitre"><:texte_sous_titre:><em>#AIDER{arttitre}</em></label> + <input type='text' name='soustitre' id='soustitre' class='forml' value="[(#ENV**{soustitre}|entites_html)]" /> + [<span class='erreur'>(#ENV**{erreurs}|table_valeur{soustitre})</span>] + </li>] + + [(#REM|sinon{titre_cadre_interieur_rubrique}|_T|concat{' ',#AIDER{artrub}} + |chercher_rubrique{#ENV{id_rubrique}, #ENV{id_secteur},#ENV**{config}|table_valeur{restreint}})] + + [(#ENV**{config}|table_valeur{articles_descriptif}|=={non}|?{#ENV**{descriptif,''},' '}|?{' '}) + <li class="haut"> + <label for="descriptif"><:texte_descriptif_rapide:><em>#AIDER{artdesc}</em></label> + <textarea name='descriptif' id='descriptif' class='forml' rows='2' cols='40'>[(#ENV**{descriptif}|entites_html)]</textarea> + [<span class='erreur'>(#ENV**{erreurs}|table_valeur{desctiptid})</span>] + </li>] + [(#ENV**{config}|table_valeur{articles_chapeau}|=={non}|?{#ENV**{chapo,''},' '}|?{' '}) + [<li class='haut redirection'>(#ENV**{chapo}|match{^=}|?{' '}) + <label for='virtuel'><:info_redirection:></label> + <input type='text' name='virtuel' id='virtuel' class='forml' value="[(#ENV**{chapo}|replace{^=,''}|entites_html)]" /> + <input type='hidden' name='changer_virtuel' value='oui' /> + <div class='commentaire_bas'><:texte_article_virtuel_reference:>#AIDER{artvirt}</div> + </li>] + [<li class="haut">(#ENV**{chapo}|match{^=}|?{'',' '}) + <label for="chapo"><:info_chapeau:><em>#AIDER{arttitre}</em></label> + <textarea name='chapo' id='chapo' class='forml'[ rows='(#ENV**{config}|table_valeur{lignes})'] cols='40'>[(#ENV**{chapo}|entites_html)]</textarea> + [<span class='erreur'>(#ENV**{erreurs}|table_valeur{chapo})</span>] + </li>] + ] + [(#ENV**{config}|table_valeur{articles_urlref}|=={non}|?{#ENV**{url_site,#ENV**{nom_site,''}},' '}|?{' '}) + <fieldset> + <legend><:entree_liens_sites:></legend><ol> + <li class="gauche"> + <label for="nom_site"><:info_titre:></label> + <input type='text' name='nom_site' id='nom_site' class='forml' value="[(#ENV**{nom_site}|entites_html)]" /> + [<span class='erreur'>(#ENV**{erreurs}|table_valeur{nom_site})</span>] + </li> + <li class="gauche"> + <label for="url_site"><:info_url:></label> + <input type='text' name='url_site' id='url_site' class='forml' value="[(#ENV**{url_site}|entites_html)]" /> + [<span class='erreur'>(#ENV**{erreurs}|table_valeur{url_site})</span>] + </li></ol> + </fieldset>] + [(#ENV**{config}|table_valeur{articles_texte}|=={non}|?{#ENV**{texte,''},' '}|?{' '}) + <li class="haut"> + <label for="text_area"><:info_texte:><em>#AIDER{arttexte}</em></label> + <div class="commentaire"><:texte_enrichir_mise_a_jour:><em>#AIDER{raccourcis}</em></div> + [(#ENV**{config}|table_valeur{afficher_barre}|?{#VAL{text_area}|barre_typo{#LANG}})] + <textarea name='texte' id='text_area' class='formo barre_inserer' rows='[(#ENV**{config}|table_valeur{lignes}|plus{2})]' cols='40'[ + (#ENV**{browser_caret,''})]>[(#ENV**{texte}|entites_html)]</textarea> + [<span class='erreur'>(#ENV**{erreurs}|table_valeur{texte})</span>] + + <script type='text/javascript'><!-- + jQuery(function(){ + jQuery('#text_area') + .height((jQuery(window).height()-80)+'px'); + }); + //--></script> + + </li>] + [(#ENV**{config}|table_valeur{articles_ps}|=={non}|?{#ENV**{ps,''},' '}|?{' '}) + <li class="haut"> + <label for="ps"><:info_post_scriptum:></label> + <textarea name='ps' id='ps' class='forml' rows='5' cols='40'>[(#ENV**{ps}|entites_html)]</textarea> + [<span class='erreur'>(#ENV**{erreurs}|table_valeur{ps})</span>] + </li>] + </ol> + </fieldset> + [(#ENV**{config}|table_valeur{extra}|?{ + + [(#ENV**{extra}|editer_extra{#ENV{id_secteur}})] + + })] + <div style='text-align: right'><input class='fondo' type='submit' value='<:bouton_enregistrer:>' /></div> + </form> + ] +</div> \ No newline at end of file diff --git a/dist/formulaires/editer_article/verifier.php b/dist/formulaires/editer_article/verifier.php index 974bc2588fd1eba9553003c7000ddacacefef724..e455899fcfdfa14f2d727d3c738ac55293737d17 100644 --- a/dist/formulaires/editer_article/verifier.php +++ b/dist/formulaires/editer_article/verifier.php @@ -18,10 +18,12 @@ include_spip('inc/editer'); function formulaires_editer_article_verifier_dist($id_article='new', $id_rubrique=0, $lier_trad=0, $retour='', $config_fonc='articles_edit_config', $row=array(), $hidden=''){ $erreurs = array(); - $conflits = controler_contenu('article',$id_article); - if (count($conflits)) { - foreach($conflits as $champ=>$conflit){ - $erreurs[$champ] .= _L("ATTENTION : Ce champ a été modifié par ailleurs. La valeur actuelle est :<br />".$conflit['base']); + if (intval($id_article)) { + $conflits = controler_contenu('article',$id_article); + if (count($conflits)) { + foreach($conflits as $champ=>$conflit){ + $erreurs[$champ] .= _L("ATTENTION : Ce champ a été modifié par ailleurs. La valeur actuelle est :<br /><textarea readonly='readonly' class='forml'>".$conflit['base']."</textarea>"); + } } } diff --git a/dist/prive/editer/article.html b/dist/prive/editer/article.html index ac60df829df3cbce6d777583de9cc1d02fd1e758..6151c6631d4e030b05aa72e2c34a03d11755ddd9 100644 --- a/dist/prive/editer/article.html +++ b/dist/prive/editer/article.html @@ -1,94 +1,5 @@ -<script type="text/javascript"><!-- -/* -$(function(){ - $('div.cadre-formulaire form') - .hide() - .find('ol li label:not(.nocmx)') -// .css('display','-moz-inline-box') - .wrap('<span style="display:block;width:463px;"><\/span>') - .end() - .show(); -}); -*/ -//--></script> - - - - <ol class="formfx"> - [(#ENV**{config}|table_valeur{articles_surtitre}|=={non}|?{#ENV**{surtitre,''},' '}|?{' '}) - <li class="gauche"> - <label for="surtitre"><:texte_sur_titre:><em>#AIDER{arttitre}</em></label> - <input type='text' name='surtitre' id='surtitre' class='forml' value="[(#ENV**{surtitre}|entites_html)]" /> - </li>] - <li class="gauche gauche_obligatoire"> - <label for="titre"><:info_titre:><em>#AIDER{arttitre}</em></label> - <input type='text' name='titre' id='titre' class='formo' value="[(#ENV**{titre,#REM|concat{info_nouvel_article}|_T}|entites_html)]" - [(#ENV{titre,''}|?{'',' '})onfocus="if(!antifocus){this.value='';antifocus=true;}"]/> - </li> - [(#ENV**{config}|table_valeur{articles_soustitre}|=={non}|?{#ENV**{soustitre,''},' '}|?{' '}) - <li class="gauche"> - <label for="soustitre"><:texte_sous_titre:><em>#AIDER{arttitre}</em></label> - <input type='text' name='soustitre' id='soustitre' class='forml' value="[(#ENV**{soustitre}|entites_html)]" /> - </li>] - - [(#REM|sinon{titre_cadre_interieur_rubrique}|_T|concat{' ',#AIDER{artrub}} - |chercher_rubrique{#ENV{id_rubrique}, #ENV{id_secteur},#ENV**{config}|table_valeur{restreint}})] - - [(#ENV**{config}|table_valeur{articles_descriptif}|=={non}|?{#ENV**{descriptif,''},' '}|?{' '}) - <li class="haut"> - <label for="descriptif"><:texte_descriptif_rapide:><em>#AIDER{artdesc}</em></label> - <textarea name='descriptif' id='descriptif' class='forml' rows='2' cols='40'>[(#ENV**{descriptif}|entites_html)]</textarea> - </li>] - [(#ENV**{config}|table_valeur{articles_chapeau}|=={non}|?{#ENV**{chapo,''},' '}|?{' '}) - [<li class='haut redirection'>(#ENV**{chapo}|match{^=}|?{' '}) - <label for='virtuel'><:info_redirection:></label> - <input type='text' name='virtuel' id='virtuel' class='forml' value="[(#ENV**{chapo}|replace{^=,''}|entites_html)]" /> - <input type='hidden' name='changer_virtuel' value='oui' /> - <div class='commentaire_bas'><:texte_article_virtuel_reference:>#AIDER{artvirt}</div> - </li>] - [<li class="haut">(#ENV**{chapo}|match{^=}|?{'',' '}) - <label for="chapo"><:info_chapeau:><em>#AIDER{arttitre}</em></label> - <textarea name='chapo' id='chapo' class='forml'[ rows='(#ENV**{config}|table_valeur{lignes})'] cols='40'>[(#ENV**{chapo}|entites_html)]</textarea> - </li>] - ] - [(#ENV**{config}|table_valeur{articles_urlref}|=={non}|?{#ENV**{url_site,#ENV**{nom_site,''}},' '}|?{' '}) - <fieldset> - <legend><:entree_liens_sites:></legend><ol> - <li class="gauche"> - <label><:info_titre:></label> - <input type='text' name='nom_site' id='nom_site' class='forml' value="[(#ENV**{nom_site}|entites_html)]" /> - </li> - <li class="gauche"> - <label for="url_site"><:info_url:></label> - <input type='text' name='url_site' id='url_site' class='forml' value="[(#ENV**{url_site}|entites_html)]" /> - </li></ol> - </fieldset>] - [(#ENV**{config}|table_valeur{articles_texte}|=={non}|?{#ENV**{texte,''},' '}|?{' '}) - <li class="haut"> - <label for="text_area"><:info_texte:><em>#AIDER{arttexte}</em></label> - <div class="commentaire"><:texte_enrichir_mise_a_jour:><em>#AIDER{raccourcis}</em></div> - [(#ENV**{config}|table_valeur{afficher_barre}|?{#VAL{text_area}|barre_typo{#LANG}})] - <textarea name='texte' id='text_area' class='formo barre_inserer' rows='[(#ENV**{config}|table_valeur{lignes}|plus{2})]' cols='40'[ - (#ENV**{browser_caret,''})]>[(#ENV**{texte}|entites_html)]</textarea> - - <script type='text/javascript'><!-- - jQuery(function(){ - jQuery('#text_area') - .height((jQuery(window).height()-80)+'px'); - }); - //--></script> - - </li>] - [(#ENV**{config}|table_valeur{articles_ps}|=={non}|?{#ENV**{ps,''},' '}|?{' '}) - <li class="haut"> - <label for="ps"><:info_post_scriptum:></label> - <textarea name='ps' id='ps' class='forml' rows='5' cols='40'>[(#ENV**{ps}|entites_html)]</textarea> - </li>] - </ol> - - [(#ENV**{config}|table_valeur{extra}|?{ - - [(#ENV**{extra}|editer_extra{#ENV{id_secteur}})] - - })] - +#ENV**{icone_retour} +[<:texte_modifier_article:> +<h1>(#ENV{titre})</h1>] +<hr class='fin_article_presentation' /> +#FORMULAIRE_EDITER_ARTICLE{#ENV{new},#ENV{id_rubrique},#ENV{lier_trad},#ENV{redirect},#ENV{config_fonc}} \ No newline at end of file diff --git a/dist/prive/editer/article_fonctions.php b/dist/prive/editer/article_fonctions.php deleted file mode 100644 index e783d474e9b87e0a9e4cde4e4ba0dc8ea9d8b435..0000000000000000000000000000000000000000 --- a/dist/prive/editer/article_fonctions.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php - -function chercher_rubrique($msg, $id_rubrique, $id_secteur, $restreint){ - $chercher_rubrique = charger_fonction('chercher_rubrique', 'inc'); - $opt = $chercher_rubrique($id_rubrique, 'article', $restreint); - - if ($id_rubrique == 0) $logo = "racine-site-24.gif"; - elseif ($id_secteur == $id_rubrique) $logo = "secteur-24.gif"; - else $logo = "rubrique-24.gif"; - - return debut_cadre_couleur($logo, true, "", $msg) . $opt .fin_cadre_couleur(true); -} - -function barre_typo($id,$lang=''){ - include_spip('inc/barre'); - return '<div>' . afficher_barre("document.getElementById('$id')",false,$lang) . '</div>'; -} - -function editer_extra($extra,$id_secteur) { - include_spip('inc/extra'); - return extra_saisie($extra, 'articles', $id_secteur); -} - -?> \ No newline at end of file diff --git a/dist/style_prive.html b/dist/style_prive.html index fd4a51e04b53187a0be2713177d751bcf59afbe5..a757b93bb13fa4692407020e35efedfc47616072 100644 --- a/dist/style_prive.html +++ b/dist/style_prive.html @@ -99,6 +99,8 @@ hr.fin_article_presentation { } +.formfx fieldset {border:0;margin:0;padding:0;} +.formfx span.erreur {color:red;font-weight:bold;} ol.formfx { line-height: auto; padding: 0px; diff --git a/ecrire/exec/articles_edit.php b/ecrire/exec/articles_edit.php index 924aa803d83418810bdaf5bf834d49819570f6b8..b903ae50958da66863a99611c3793532bb8c014e 100644 --- a/ecrire/exec/articles_edit.php +++ b/ecrire/exec/articles_edit.php @@ -88,9 +88,9 @@ function articles_edit($id_article, $id_rubrique, $lier_trad, $id_version, $new, echo debut_droite("",true); echo debut_cadre_formulaire("", true); - echo articles_edit_presentation($new, $row['id_rubrique'], $lier_trad, $row['id_article'], $row['titre']); - $editer_article = charger_fonction('editer_article', 'inc'); - echo $editer_article($new, $id_rubrique, $lier_trad, generer_url_ecrire("articles"), $config_fonc, $row); + echo articles_edit_presentation($new, $row['id_rubrique'], $lier_trad, $row['id_article'], $row['titre'],$config_fonc); + /*$editer_article = charger_fonction('editer_article', 'inc'); + echo $editer_article($new, $id_rubrique, $lier_trad, generer_url_ecrire("articles"), $config_fonc, $row);*/ echo fin_cadre_formulaire(true); echo pipeline('affiche_milieu',array('args'=>array('exec'=>'articles_edit','id_article'=>$id_article),'data'=>'')); @@ -99,20 +99,24 @@ function articles_edit($id_article, $id_rubrique, $lier_trad, $id_version, $new, } // http://doc.spip.org/@articles_edit_presentation -function articles_edit_presentation($new, $id_rubrique, $lier_trad, $id_article, $titre) -{ - global $spip_lang_right; +function articles_edit_presentation($new, $id_rubrique, $lier_trad, $id_article, $titre, $config_fonc){ $oups = ($lier_trad ? generer_url_ecrire("articles","id_article=$lier_trad") : ($new ? generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") : generer_url_ecrire("articles","id_article=$id_article") )); - - return - icone_inline(_T('icone_retour'), $oups, "article-24.gif", "rien.gif",$spip_lang_right) . - _T('texte_modifier_article') . - gros_titre($titre,'',false) . - "<hr class='fin_article_presentation' />\n"; + $contexte = array( + 'icone_retour'=>icone_inline(_T('icone_retour'), $oups, "article-24.gif", "rien.gif",$GLOBALS['spip_lang_right']), + 'redirect'=>generer_url_ecrire("articles"), + 'titre'=>$titre, + 'new'=>$new?$new:$id_article, + 'id_rubrique'=>$id_rubrique, + 'lier_trad'=>$lier_trad, +# 'id_article'=>$id_article, + 'config_fonc'=>$config_fonc + ); + $page = evaluer_fond("prive/editer/article", $contexte, $connect); + return $page['texte']; } ?> diff --git a/ecrire/index.php b/ecrire/index.php index 3205af5379cf4fa901277e558aaa128bde509b5b..95d7ed146c755273cabf441e03b65c2890e6b63e 100644 --- a/ecrire/index.php +++ b/ecrire/index.php @@ -170,6 +170,11 @@ AND $l = @unserialize($l)) { } } +if (_request('var_ajax') OR _request('formulaire_action')){ + include_spip('public/assembler'); + traiter_formulaires_dynamiques(); +} + // Passer la main aux outils XML a la demande (meme les redac s'ils veulent). if ($var_f = _request('transformer_xml')) { set_request('var_url', $exec); diff --git a/ecrire/public/assembler.php b/ecrire/public/assembler.php index f1412528fb9784e32b6c4a3f39f6c3aa0e48c0c3..f2df2a92e3f8c68e69ca7b63385d4eed28f6769c 100644 --- a/ecrire/public/assembler.php +++ b/ecrire/public/assembler.php @@ -74,6 +74,62 @@ function init_var_mode(){ } } +function traiter_formulaires_dynamiques(){ + static $done = false; + if (!$done) { + // traiter les appels de bloc ajax + if (($v=_request('var_ajax')) + AND ($v!=='form') + AND ($args = _request('var_ajax_env')) + AND ($cle = _request('var_ajax_cle')) ){ + if ((include_spip('inc/securiser_action')) + AND ($cle == calculer_cle_action($args))) { + $args = unserialize(base64_decode($args)); + if ($fond = $args['fond_ajax']){ + include_spip('public/parametrer'); + $contexte = calculer_contexte(); + $contexte = array_merge($args, $contexte); + $page = evaluer_fond($fond,$contexte); + include_spip('inc/actions'); + ajax_retour($page['texte']); + exit(); + } + } + include_spip('inc/actions'); + ajax_retour('signature ajax incorrecte'); + exit(); + } + // traiter les formulaires dynamiques simplifies en charger/verifier/traiter + if (($form = _request('formulaire_action')) + AND ($cle = _request('formulaire_action_cle')) + AND (($args = _request('formulaire_action_args'))!==NULL) + AND (include_spip('inc/securiser_action')) + AND ($cle == calculer_cle_action($form . $args))) { + $args = unserialize(base64_decode($args)); + if ( + (!($verifier = charger_fonction("verifier","formulaires/$form/",true)) + || (count($_POST["erreurs_$form"] = call_user_func_array($verifier,$args))==0)) + && ($traiter = charger_fonction("traiter","formulaires/$form/",true)) + ) { + $_POST["message_ok_$form"] = call_user_func_array($traiter,$args); + // traiter peut retourner soit un message, soit un array(editable,message) + if (is_array($_POST["message_ok_$form"])) + list($_POST["editable_$form"],$_POST["message_ok_$form"]) = $_POST["message_ok_$form"]; + } + // si le formulaire a ete soumis en ajax, on le renvoie direct ! + if (_request('var_ajax')){ + if (find_in_path('formulaire_.php','balise/',true)) { + include_spip('inc/actions'); + array_unshift($args,$form); + ajax_retour(inclure_balise_dynamique(call_user_func_array('balise_formulaire__dyn',$args),false),false); + exit; + } + } + } + $done = true; + } +} + // fonction principale declenchant tout le service // elle-meme ne fait que traiter les cas particuliers, puis passe la main. // http://doc.spip.org/@public_assembler_dist @@ -97,55 +153,7 @@ function public_assembler_dist($fond, $connect='') { redirige_par_entete($forum_insert()); } - // traiter les appels de bloc ajax - if (($v=_request('var_ajax')) - AND ($v!=='form') - AND ($args = _request('var_ajax_env')) - AND ($cle = _request('var_ajax_cle')) ){ - if ((include_spip('inc/securiser_action')) - AND ($cle == calculer_cle_action($args))) { - $args = unserialize(base64_decode($args)); - if ($fond = $args['fond_ajax']){ - include_spip('public/parametrer'); - $contexte = calculer_contexte(); - $contexte = array_merge($args, $contexte); - $page = evaluer_fond($fond,$contexte); - include_spip('inc/actions'); - ajax_retour($page['texte']); - exit(); - } - } - include_spip('inc/actions'); - ajax_retour('signature ajax incorrecte'); - exit(); - } - // traiter les formulaires dynamiques simplifies en charger/verifier/traiter - if (($form = _request('formulaire_action')) - AND ($cle = _request('formulaire_action_cle')) - AND (($args = _request('formulaire_action_args'))!==NULL) - AND (include_spip('inc/securiser_action')) - AND ($cle == calculer_cle_action($form . $args))) { - $args = unserialize(base64_decode($args)); - if ( - (!($verifier = charger_fonction("verifier","formulaires/$form/",true)) - || (count($_POST["erreurs_$form"] = call_user_func_array($verifier,$args))==0)) - && ($traiter = charger_fonction("traiter","formulaires/$form/",true)) - ) { - $_POST["message_ok_$form"] = call_user_func_array($traiter,$args); - // traiter peut retourner soit un message, soit un array(editable,message) - if (is_array($_POST["message_ok_$form"])) - list($_POST["editable_$form"],$_POST["message_ok_$form"]) = $_POST["message_ok_$form"]; - } - // si le formulaire a ete soumis en ajax, on le renvoie direct ! - if (_request('var_ajax')){ - if (find_in_path('formulaire_.php','balise/',true)) { - include_spip('inc/actions'); - array_unshift($args,$form); - ajax_retour(inclure_balise_dynamique(call_user_func_array('balise_formulaire__dyn',$args),false),false); - exit; - } - } - } + traiter_formulaires_dynamiques(); // si signature de petition, l'enregistrer avant d'afficher la page // afin que celle-ci contienne la signature