diff --git a/.gitattributes b/.gitattributes index f15d5ae2f79c48af1459d3e8b54700d0032bacab..ca0fe1fb5d7bd05e49432e738305b083acaece27 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12,6 +12,10 @@ dist/formulaires/editer_article/charger.php -text dist/formulaires/editer_article/traiter.php -text dist/formulaires/editer_article/verifier.php -text dist/formulaires/editer_article_fonctions.php -text +dist/formulaires/editer_breve.html -text +dist/formulaires/editer_breve/charger.php -text +dist/formulaires/editer_breve/traiter.php -text +dist/formulaires/editer_breve/verifier.php -text dist/formulaires/editer_rubrique.html -text dist/formulaires/editer_rubrique/charger.php -text dist/formulaires/editer_rubrique/traiter.php -text @@ -306,6 +310,7 @@ 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/breve.html -text dist/prive/editer/rubrique.html -text dist/prive/infos/article.html -text dist/prive/infos/article_fonctions.php -text diff --git a/dist/formulaires/editer_article_fonctions.php b/dist/formulaires/editer_article_fonctions.php index c43ef7fb4317a75120398aa29f26ed80ca323a7a..dc10d563346f39f58a736ed6bf9960cb11622d4e 100644 --- a/dist/formulaires/editer_article_fonctions.php +++ b/dist/formulaires/editer_article_fonctions.php @@ -1,8 +1,4 @@ <?php -function barre_typo($id,$lang=''){ - include_spip('inc/barre'); - return '<div>' . afficher_barre("document.getElementById('$id')",false,$lang) . '</div>'; -} ?> \ No newline at end of file diff --git a/dist/formulaires/editer_breve.html b/dist/formulaires/editer_breve.html new file mode 100644 index 0000000000000000000000000000000000000000..750b6b6e63fdc6e52791189f865707794cd5f486 --- /dev/null +++ b/dist/formulaires/editer_breve.html @@ -0,0 +1,59 @@ +<div class='formfx editer_breve'> + <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' class='noajax'> + [(#REM) declarer les hidden qui declencheront le service du formulaire + parametre : url d'action ] + #ACTION_FORMULAIRE{#ENV{action}} + <input type='hidden' name='id_breve' value='#ENV{id_breve}' /> + <fieldset> + <ol class="formfx"> + <li class="gauche obligatoire champ_titre"> + <label for="titre"><:info_titre:></label> + <input type='text' name='titre' id='titre' class='formo' value="[(#ENV**{titre,#REM|concat{info_nouvel_article}|_T})]" + [(#ENV{titre,''}|?{'',' '})onfocus="if(!antifocus){this.value='';antifocus=true;}"]/> + [<span class='erreur'>(#ENV**{erreurs}|table_valeur{titre})</span>] + </li> + + [<li>(#VAL{entree_interieur_rubrique}|_T|concat{' ',#AIDER{brevesrub}} + |chercher_rubrique{#ENV{id_rubrique},'breve',#ENV{id_secteur},#ENV**{config}|table_valeur{restreint}})</li>] + + <li class="haut champ_texte"> + <label for="text_area"><:entree_texte_breve:></label> + [(#ENV**{_texte_trop_long,''})] + [(#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})]</textarea> + [<span class='erreur'>(#ENV**{erreurs}|table_valeur{texte})</span> + </li>] + <li> + <fieldset> + <legend><:entree_liens_sites:>#AIDER{breveslien}</legend><ol> + <li class="gauche champ_lien_titre"> + <label for="lien_titre"><:info_titre:></label> + <input type='text' name='lien_titre' id='lien_titre' class='forml' value="[(#ENV**{lien_titre})]" /> + [<span class='erreur'>(#ENV**{erreurs}|table_valeur{lien_titre})</span>] + </li> + <li class="gauche champ_lien_url"> + <label for="lien_url"><:info_url:></label> + <input type='text' name='lien_url' id='lien_url' class='forml' value="[(#ENV**{lien_url})]" /> + [<span class='erreur'>(#ENV**{erreurs}|table_valeur{lien_url})</span>] + </li></ol> + </fieldset></li> + <li class="gauche champ_statut"><label for='statut'><:entree_breve_publiee:></label> + <select name='statut' id='statut' size='1' class='fondl'> + <option value='prop'[(#ENV**{statut}|=={prop}|?{' selected="selected"'})] style='background-color: white'><:item_breve_proposee:></option> + <option value='refuse'[(#ENV**{statut}|=={refuse}|?{' selected="selected"'})] " class='danger'><:item_breve_refusee:></option> + <option value='publie'[(#ENV**{statut}|=={publie}|?{' selected="selected"'})] style='background-color: #B4E8C5'><:item_breve_validee:></option> + </select>#AIDER{brevesstatut} + </li> + </ol> + </fieldset> + [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ] + <!--extra--> + <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_breve/charger.php b/dist/formulaires/editer_breve/charger.php new file mode 100644 index 0000000000000000000000000000000000000000..3e42dc02d58f260e27b92b00bc1bbf1629fa031c --- /dev/null +++ b/dist/formulaires/editer_breve/charger.php @@ -0,0 +1,35 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2008 * + * 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. * +\***************************************************************************/ + +if (!defined("_ECRIRE_INC_VERSION")) return; + +include_spip('inc/actions'); +include_spip('inc/editer'); + +function formulaires_editer_breve_charger_dist($id_breve='new', $id_rubrique=0, $lier_trad=0, $retour='', $config_fonc='breves_edit_config', $row=array(), $hidden=''){ + return formulaires_editer_objet_charger('breve',$id_breve,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden); +} + +// Choix par defaut des options de presentation +function breves_edit_config($row) +{ + global $spip_ecran, $spip_lang, $spip_display; + + $config = $GLOBALS['meta']; + $config['lignes'] = ($spip_ecran == "large")? 8 : 5; + $config['afficher_barre'] = $spip_display != 4; + $config['langue'] = $spip_lang; + + $config['restreint'] = ($row['statut'] == 'publie'); + return $config; +} +?> \ No newline at end of file diff --git a/dist/formulaires/editer_breve/traiter.php b/dist/formulaires/editer_breve/traiter.php new file mode 100644 index 0000000000000000000000000000000000000000..86e3da96bb359391adce2cb7b54813613fed37ad --- /dev/null +++ b/dist/formulaires/editer_breve/traiter.php @@ -0,0 +1,23 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2008 * + * 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. * +\***************************************************************************/ + +if (!defined("_ECRIRE_INC_VERSION")) return; + +include_spip('inc/actions'); +include_spip('inc/editer'); + +// http://doc.spip.org/@inc_editer_article_dist +function formulaires_editer_breve_traiter_dist($id_breve='new', $id_rubrique=0, $lier_trad=0, $retour='', $config_fonc='breves_edit_config', $row=array(), $hidden=''){ + return formulaires_editer_objet_traiter('breve',$id_breve,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden); +} + +?> \ No newline at end of file diff --git a/dist/formulaires/editer_breve/verifier.php b/dist/formulaires/editer_breve/verifier.php new file mode 100644 index 0000000000000000000000000000000000000000..a5a2cc28251dfdd95d79b2210aff645c091fe2a9 --- /dev/null +++ b/dist/formulaires/editer_breve/verifier.php @@ -0,0 +1,37 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2008 * + * 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. * +\***************************************************************************/ + +if (!defined("_ECRIRE_INC_VERSION")) return; + +include_spip('inc/actions'); +include_spip('inc/editer'); + +function formulaires_editer_breve_verifier_dist($id_breve='new', $id_rubrique=0, $lier_trad=0, $retour='', $config_fonc='breves_edit_config', $row=array(), $hidden=''){ + + $erreurs = array(); + if (intval($id_breve)) { + $conflits = controler_contenu('breve',$id_breve); + 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>"); + } + } + } + foreach(array('titre') as $obli){ + if (!_request($obli)) + $erreurs[$obli] .= _L("Cette information est obligatoire");; + } + + return $erreurs; +} + +?> \ No newline at end of file diff --git a/dist/prive/editer/breve.html b/dist/prive/editer/breve.html new file mode 100644 index 0000000000000000000000000000000000000000..5eb72b2206653bb7995390d4edcb41d41d57ca34 --- /dev/null +++ b/dist/prive/editer/breve.html @@ -0,0 +1,5 @@ +#ENV**{icone_retour} +[<:info_modifier_breve:> +<h1>(#ENV{titre})</h1>] +<hr class='fin_article_presentation' /> +#FORMULAIRE_EDITER_BREVE{#ENV{new},#ENV{id_rubrique},#ENV{lier_trad},#ENV{redirect},#ENV{config_fonc}} \ No newline at end of file diff --git a/dist/style_prive.html b/dist/style_prive.html index 3ff9f5202ed001cab0a5a281741290c7e59af897..3d10af51ce47997f9d5a9223800bebc2a88494f2 100644 --- a/dist/style_prive.html +++ b/dist/style_prive.html @@ -240,7 +240,8 @@ table.spip_barre a img { table.spip_barre a:hover img { background: #FFF; border: 1px solid #CC9; } table.spip_barre input.barre { width: 99%; background: transparent; border: 0; color: #F57900; } - +/* cas particuliers */ +.formfx.editer_breve fieldset li.champ_statut label {width:250px;} select.fondl { padding: 0; } .maj-debut:first-letter { text-transform: uppercase; } diff --git a/ecrire/action/editer_article.php b/ecrire/action/editer_article.php index 90381765c21a0013dd27f5172c99f130aebf36a6..50ecb8641b82abf6b00939ab6b873154c116d687 100644 --- a/ecrire/action/editer_article.php +++ b/ecrire/action/editer_article.php @@ -41,6 +41,7 @@ function action_editer_article_dist() { $redirect = parametre_url(urldecode(_request('redirect')), 'id_article', $id_article, '&') . $err; + include_spip('inc/headers'); redirige_par_entete($redirect); } else diff --git a/ecrire/action/editer_breve.php b/ecrire/action/editer_breve.php index 39a1ac8a6c15b488b793d42603ecfb21498932da..7ebf2e3a2735d64c9204edca498188ec1cce7581 100644 --- a/ecrire/action/editer_breve.php +++ b/ecrire/action/editer_breve.php @@ -42,11 +42,15 @@ function action_editer_breve_dist() { redirige_url_ecrire(); } - // Rediriger le navigateur - $redirect = parametre_url(urldecode(_request('redirect')), - 'id_breve', $id_breve, '&'); - - redirige_par_entete($redirect); + if (_request('redirect')) { + $redirect = parametre_url(urldecode(_request('redirect')), + 'id_breve', $id_breve, '&'); + include_spip('inc/headers'); + + redirige_par_entete($redirect); + } + else + return array($id_breve,''); } // http://doc.spip.org/@insert_breve diff --git a/ecrire/action/editer_rubrique.php b/ecrire/action/editer_rubrique.php index 8e545bd567826883bc7abf493f7fa51c4e596c83..de0f0de617152787071b1579f92d3ef214fb63f2 100644 --- a/ecrire/action/editer_rubrique.php +++ b/ecrire/action/editer_rubrique.php @@ -33,6 +33,7 @@ function action_editer_rubrique_dist() { urldecode(_request('redirect')), 'id_rubrique', $id_rubrique, '&'); + include_spip('inc/headers'); redirige_par_entete($redirect); } else diff --git a/ecrire/exec/breves_edit.php b/ecrire/exec/breves_edit.php index 68fa0cfaba12fa58e027fc82a1ff3c5d22fff00e..cfeb00bfdce907a750433040e8d84ce93c0a5d4d 100644 --- a/ecrire/exec/breves_edit.php +++ b/ecrire/exec/breves_edit.php @@ -35,7 +35,7 @@ function exec_breves_edit_args($id_breve, $id_rubrique, $new) if (!$id_rubrique) { $in = !$connect_id_rubrique ? '' : (' AND id_rubrique IN (' . join(',', $connect_id_rubrique) . ')'); - $id_rubrique = sql_getfetsel('id_rubrique','spip_rubriques', "id_parent=0$in",'', "id_rubrique DESC", 1); + $id_rubrique = sql_getfetsel('id_rubrique','spip_rubriques', "id_parent=0$in",'', "id_rubrique DESC", 1); if (!autoriser('creerbrevedans','rubrique',$id_rubrique )){ // manque de chance, la rubrique n'est pas autorisee, on cherche un des secteurs autorises @@ -50,7 +50,7 @@ function exec_breves_edit_args($id_breve, $id_rubrique, $new) $row = false; if (!( ($new!='oui' AND (!autoriser('voir','breve',$id_breve) OR !autoriser('modifier','breve', $id_breve))) OR ($new=='oui' AND !autoriser('creerbrevedans','rubrique',$id_rubrique)) )) { - if ($new != "oui") + if ($new != "oui") $row = sql_fetsel("*", "spip_breves", "id_breve=$id_breve"); else $row = true; } @@ -104,13 +104,23 @@ function breves_edit_ok($row, $id_breve, $id_rubrique, $new) traiter_modeles("$titre$texte", true); echo afficher_documents_colonne($id_breve, "breve"); } -echo pipeline('affiche_gauche',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>'')); -echo creer_colonne_droite('', true); -echo pipeline('affiche_droite',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>'')); -echo debut_droite('', true); -echo debut_cadre_formulaire("", true); - - + echo pipeline('affiche_gauche',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>'')); + echo creer_colonne_droite('', true); + echo pipeline('affiche_droite',array('args'=>array('exec'=>'breves_edit','id_breve'=>$id_breve),'data'=>'')); + echo debut_droite('', true); + echo debut_cadre_formulaire("", true); + + $contexte = array( + 'icone_retour'=>$new=='oui'?'':icone_inline(_T('icone_retour'), generer_url_ecrire("breves_voir","id_breve=$id_breve"), "breve-24.gif", "rien.gif",$GLOBALS['spip_lang_right']), + 'redirect'=>generer_url_ecrire("breves_voir"), + 'titre'=>$titre, + 'new'=>$new == "oui"?$new:$id_breve, + 'id_rubrique'=>$id_rubrique, + 'config_fonc'=>'breves_edit_config' + ); + $page = evaluer_fond("prive/editer/breve", $contexte, $connect); + echo $page['texte']; + /* if ($new != "oui") { echo icone_inline(_T('icone_retour'), generer_url_ecrire("breves_voir","id_breve=$id_breve"), "breve-24.gif", "rien.gif",$spip_lang_right); echo _T('info_modifier_breve'); @@ -194,6 +204,7 @@ if ($connect_statut=="0minirezo" OR $statut=="prop" OR $new == "oui") { } else echo "<h2>"._T('info_page_interdite')."</h2>"; + */ echo fin_cadre_formulaire(true); echo fin_gauche(), fin_page(); diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index b4f0358130fd8d84b7461d6d041e0decca662df2..4487ba206af1d3c66d707347cc99da5675f34408 100644 --- a/ecrire/inc/filtres.php +++ b/ecrire/inc/filtres.php @@ -2478,4 +2478,9 @@ function chercher_rubrique($msg, $id_rubrique, $type, $id_secteur, $restreint){ return debut_cadre_couleur($logo, true, "", $msg) . $opt . $confirm .fin_cadre_couleur(true); } +function barre_typo($id,$lang=''){ + include_spip('inc/barre'); + return '<div>' . afficher_barre("document.getElementById('$id')",false,$lang) . '</div>'; +} + ?> \ No newline at end of file diff --git a/ecrire/index.php b/ecrire/index.php index 4a0a9de348350ee41384eb53fdbd69f1bca6d0d8..1b89eb6ce22455fd376907ba13ce8ef43cce5edc 100644 --- a/ecrire/index.php +++ b/ecrire/index.php @@ -25,8 +25,7 @@ include_spip('inc/cookie'); // $exec = _request('exec'); -$reinstall = _request('reinstall'); - +$reinstall = _request('reinstall')?_request('reinstall'):($exec=='install'?'oui':NULL); // // Authentification, redefinissable // @@ -126,8 +125,7 @@ define('_TRANCHES', 10); // // Controle de la version, sauf si on est deja en train de s'en occuper -if ($exec!='install' -AND !_request('reinstall') +if (!$reinstall=='oui' AND !_request('var_ajaxcharset') AND isset($GLOBALS['meta']['version_installee']) AND ($GLOBALS['spip_version'] != (str_replace(',','.',$GLOBALS['meta']['version_installee']))))