From 0d4dea6fdcb94e6a31e1f29dd661d5af800848fe Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Sat, 3 May 2008 21:56:25 +0000 Subject: [PATCH] #FORMULAIRE_EDITER_SITE, et unification de la verification des formulaires_editer_ article, rubrique, breve --- dist/formulaires/editer_article/verifier.php | 15 +------------ dist/formulaires/editer_breve/verifier.php | 17 ++------------- dist/formulaires/editer_rubrique/verifier.php | 15 +------------ ecrire/action/editer_site.php | 21 +++++++++++-------- ecrire/exec/sites_edit.php | 16 ++++++++++++-- ecrire/inc/editer.php | 19 +++++++++++++++++ 6 files changed, 49 insertions(+), 54 deletions(-) diff --git a/dist/formulaires/editer_article/verifier.php b/dist/formulaires/editer_article/verifier.php index 1738c7a539..7c6759828f 100644 --- a/dist/formulaires/editer_article/verifier.php +++ b/dist/formulaires/editer_article/verifier.php @@ -17,20 +17,7 @@ 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(); - 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>"); - } - } - } - foreach(array('titre') as $obli){ - if (!_request($obli)) - $erreurs[$obli] .= _L("Cette information est obligatoire");; - } - + $erreurs = formulaires_editer_objet_verifier('article',$id_article,array('titre')); return $erreurs; } diff --git a/dist/formulaires/editer_breve/verifier.php b/dist/formulaires/editer_breve/verifier.php index a5a2cc2825..d24d6b4912 100644 --- a/dist/formulaires/editer_breve/verifier.php +++ b/dist/formulaires/editer_breve/verifier.php @@ -16,21 +16,8 @@ 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");; - } - + + $erreurs = formulaires_editer_objet_verifier('breve',$id_breve,array('titre')); return $erreurs; } diff --git a/dist/formulaires/editer_rubrique/verifier.php b/dist/formulaires/editer_rubrique/verifier.php index b21fef9aa3..ac07693451 100644 --- a/dist/formulaires/editer_rubrique/verifier.php +++ b/dist/formulaires/editer_rubrique/verifier.php @@ -17,20 +17,7 @@ include_spip('inc/editer'); function formulaires_editer_rubrique_verifier_dist($id_rubrique='new', $id_parent=0, $lier_trad=0, $retour='', $config_fonc='rubriques_edit_config', $row=array(), $hidden=''){ - $erreurs = array(); - if (intval($id_article)) { - $conflits = controler_contenu('rubrique',$id_rubrique); - 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");; - } - + $erreurs = formulaires_editer_objet_verifier('rubrique',$id_rubrique,array('titre')); return $erreurs; } diff --git a/ecrire/action/editer_site.php b/ecrire/action/editer_site.php index 80219f17b8..4660ecfa99 100644 --- a/ecrire/action/editer_site.php +++ b/ecrire/action/editer_site.php @@ -49,9 +49,8 @@ function action_editer_site_dist() { $id_syndic = insert_syndic(_request('id_parent')); revisions_sites($id_syndic); } else { - redirige_par_entete( - generer_url_ecrire('sites_edit', 'id_rubrique='._request('id_parent'),'&') - ); + include_spip('inc/headers'); + return array(0,redirige_formulaire(generer_url_ecrire('sites_edit', 'id_rubrique='._request('id_parent'),'&'))); } } // Envoi depuis le formulaire d'analyse automatique d'un site @@ -67,10 +66,10 @@ function action_editer_site_dist() { @rename($auto['logo'], _DIR_IMG . 'siteon'.$id_syndic.'.'.$auto['format_logo']); } - else - redirige_par_entete( - generer_url_ecrire('sites_edit', 'id_rubrique='._request('id_parent'),'&') - ); + else{ + include_spip('inc/headers'); + return array(0,redirige_formulaire(generer_url_ecrire('sites_edit', 'id_rubrique='._request('id_parent'),'&'))); + } } // Erreur else { @@ -113,10 +112,14 @@ function action_editer_site_dist() { // (i.e. appeler la fct suivante avec gestion du verrou) cron(0, array('syndic' => -91)); } - // Rediriger le navigateur + if (_request('redirect')) { $redirect = parametre_url(urldecode(_request('redirect')), 'id_syndic', $id_syndic, '&'); - redirige_par_entete($redirect); + include_spip('inc/headers'); + redirige_par_entete($redirect); + } + else + return array($id_syndic,''); } // Cette fonction redefinit la tache standard de syndication diff --git a/ecrire/exec/sites_edit.php b/ecrire/exec/sites_edit.php index e7533d9f29..5b55d8f246 100644 --- a/ecrire/exec/sites_edit.php +++ b/ecrire/exec/sites_edit.php @@ -74,6 +74,18 @@ function exec_sites_edit_dist() echo debut_droite('', true); echo debut_cadre_formulaire("", true); + $contexte = array( + 'icone_retour'=>$new=='oui'?'':icone_inline(_T('icone_retour'), generer_url_ecrire("sites","id_syndic=$id_syndic"), "site-24.gif", "rien.gif",$GLOBALS['spip_lang_right']), + 'redirect'=>generer_url_ecrire("sites"), + 'titre'=>$nom_site, + 'new'=>$new == "oui"?$new:$id_syndic, + 'id_rubrique'=>$id_rubrique, + 'config_fonc'=>'sites_edit_config' + ); + $page = evaluer_fond("prive/editer/site", $contexte, $connect); + echo $page['texte']; + +/* if ($new != 'oui') { echo icone_inline(_T('icone_retour'), generer_url_ecrire("sites","id_syndic=$id_syndic"), 'site-24.gif', "rien.gif", $spip_lang_right); } @@ -213,8 +225,8 @@ function exec_sites_edit_dist() generer_url_ecrire('sites'), $form, " method='post'" - ); - + );*/ + echo fin_cadre_formulaire(true); echo pipeline('affiche_milieu',array('args'=>array('exec'=>'sites_edit','id_syndic'=>$id_syndic),'data'=>'')); diff --git a/ecrire/inc/editer.php b/ecrire/inc/editer.php index 00472eb3a1..4704144ce4 100644 --- a/ecrire/inc/editer.php +++ b/ecrire/inc/editer.php @@ -29,6 +29,23 @@ function formulaires_editer_objet_traiter($type, $id='new', $id_parent=0, $lier_ return $message; } +function formulaires_editer_objet_verifier($type,$id='new', $oblis = array()){ + $erreurs = array(); + if (intval($id)) { + $conflits = controler_contenu($type,$id); + 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($oblis as $obli){ + if (!_request($obli)) + $erreurs[$obli] .= _L("Cette information est obligatoire");; + } + return $erreurs; +} + // http://doc.spip.org/@formulaires_editer_objet_charger function formulaires_editer_objet_charger($type, $id='new', $id_parent=0, $lier_trad=0, $retour='', $config_fonc='articles_edit_config', $row=array(), $hidden=''){ $table_objet = table_objet($type); @@ -50,8 +67,10 @@ function formulaires_editer_objet_charger($type, $id='new', $id_parent=0, $lier_ // Gaffe: sans ceci, on ecrase systematiquement l'article d'origine // (et donc: pas de lien de traduction) $id = ($new OR $lier_trad) ? 'oui' : $row[$id_table_objet]; + $contexte = $row; + $contexte['new'] = $id; $contexte['config'] = $config = $config_fonc($row); $att_text = " class='formo' " . $GLOBALS['browser_caret'] -- GitLab