From dfd4a0481880670735f85b1e789a1b64f9ec8d80 Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Mon, 16 Jan 2006 23:10:24 +0000 Subject: [PATCH] eclatement de inc_auteur_infos pour qu'il soit exclusivement inclus par include_fonction, tandis que le nouveau venu est exclusivement inclus explicitement --- .gitattributes | 1 + ecrire/inc_auteur_infos.php | 245 +---------------------------------- ecrire/inc_auteur_voir.php | 251 ++++++++++++++++++++++++++++++++++++ ecrire/inc_auteurs_edit.php | 2 +- 4 files changed, 254 insertions(+), 245 deletions(-) create mode 100644 ecrire/inc_auteur_voir.php diff --git a/.gitattributes b/.gitattributes index 8b1bceeb58..301462e8b6 100644 --- a/.gitattributes +++ b/.gitattributes @@ -273,6 +273,7 @@ ecrire/inc_articles_page.php -text ecrire/inc_articles_tous.php -text ecrire/inc_articles_versions.php -text ecrire/inc_auteur_infos.php -text +ecrire/inc_auteur_voir.php -text ecrire/inc_auteurs.php3 -text ecrire/inc_auteurs_edit.php -text ecrire/inc_barre.php3 -text diff --git a/ecrire/inc_auteur_infos.php b/ecrire/inc_auteur_infos.php index f2d61df512..ee831a10f8 100644 --- a/ecrire/inc_auteur_infos.php +++ b/ecrire/inc_auteur_infos.php @@ -12,10 +12,8 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_ecrire("inc_presentation"); -include_ecrire("inc_urls"); -include_ecrire("inc_rubriques"); +include_ecrire("inc_auteur_voir"); include_ecrire ("inc_acces"); -include_ecrire ("inc_logos"); include_ecrire ("inc_abstract_sql"); function auteur_infos_dist() @@ -243,34 +241,6 @@ function affiche_auteur_info_dist($id_auteur, $auteur, $echec, $redirect, $ajou } -function cadre_auteur_infos($id_auteur, $auteur) -{ - global $connect_statut; - - if ($id_auteur) { - debut_boite_info(); - echo "<CENTER>"; - echo "<FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=1><B>"._T('titre_cadre_numero_auteur')." :</B></FONT>"; - echo "<BR><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=6><B>$id_auteur</B></FONT>"; - echo "</CENTER>"; - - -// "Voir en ligne" si l'auteur a un article publie -// seuls les admins peuvent "previsualiser" une page auteur -if (spip_num_rows(spip_query("SELECT lien.id_article -FROM spip_auteurs_articles AS lien, -spip_articles AS articles -WHERE lien.id_auteur=$id_auteur -AND lien.id_article=articles.id_article -AND articles.statut='publie'"))) - voir_en_ligne ('auteur', $id_auteur, 'publie'); -else if ($connect_statut == '0minirezo') - voir_en_ligne ('auteur', $id_auteur, 'prop'); - - fin_boite_info(); - } -} - function formulaire_auteur_infos($id_auteur, $auteur, $onfocus, $redirect, $ajouter_id_article) { @@ -447,217 +417,4 @@ function apparait_auteur_infos($id_auteur, $auteur) echo "<p />"; } } - - -// Menu de choix d'un statut d'auteur -function choix_statut_auteur($statut) { - global $connect_toutes_rubriques; - - $menu = "<select name='statut' size=1 class='fondl' - onChange=\"setvisibility('changer_statut_auteur', this.selectedIndex ? 'hidden' : 'visible');\">"; - - // Si on est admin restreint, on n'a pas le droit de modifier un admin - if ($connect_toutes_rubriques) - $menu .= "\n<option" . - mySel("0minirezo",$statut) . - ">" . _T('item_administrateur_2') - . '</option>'; - - // Ajouter le choix "comite" - $menu .= - "\n<option" . - mySel("1comite",$statut) . - ">" . - _T('intem_redacteur') . - '</option>'; - - // Ajouter le choix "visiteur" si : - // - l'auteur est visiteur - // - OU, on accepte les visiteurs (ou forums sur abonnement) - // - OU il y a des visiteurs dans la base - if (($statut == '6forum') - OR ($GLOBALS['meta']['accepter_visiteurs'] == 'oui') - OR ($GLOBALS['meta']['forums_publics'] == 'abo') - OR spip_num_rows(spip_query("SELECT statut FROM spip_auteurs - WHERE statut='6forum'"))) - $menu .= "\n<option" . - mySel("6forum",$statut) . - ">" . - _T('item_visiteur') . - '</option>'; - - // Ajouter l'option "nouveau" si l'auteur n'est pas confirme - if ($statut == 'nouveau') - $menu .= "\n<option" . - mySel('nouveau',$statut) . - ">" . - _L('Inscription à confirmer') . - '</option>'; - - // Ajouter l'option "autre" si le statut est inconnu - if (!in_array($statut, array('nouveau', '0minirezo', '1comite', '6forum'))) - $menu .= "\n<option" . - mySel('autre','autre') . - ">" . - _L('Autre statut : ').htmlentities($statut). - '</option>'; - - - - $menu .= "\n<option" . - mySel("5poubelle",$statut) . - " style='background:url(" . _DIR_IMG_PACK . "rayures-sup.gif)'>> " - ._T('texte_statut_poubelle') . - '</option>' . - "</select>\n"; - - return $menu; -} - -// affiche le statut de l'auteur dans l'espace prive - -function afficher_formulaire_statut_auteur ($id_auteur, $statut, $post='') { - global $connect_statut, $connect_toutes_rubriques, $connect_id_auteur; - global $spip_lang_right; - - - // S'agit-il d'un admin restreint ? - if ($statut == '0minirezo') { - $query_admin = "SELECT lien.id_rubrique, titre FROM spip_auteurs_rubriques AS lien, spip_rubriques AS rubriques WHERE lien.id_auteur=$id_auteur AND lien.id_rubrique=rubriques.id_rubrique GROUP BY lien.id_rubrique"; - $result_admin = spip_query($query_admin); - $admin_restreint = (spip_num_rows($result_admin) > 0); - } - - $droit = ( ($connect_toutes_rubriques OR $statut != "0minirezo") - && ($connect_id_auteur != $id_auteur)); - - if ($post && $droit) { - $url_self = $post; - echo "<p />"; - echo generer_url_post_ecrire($post, "id_auteur=$id_auteur"); - } else - $url_self = "auteur_infos"; - - // les admins voient et peuvent modifier les droits - // les admins restreints les voient mais - // ne peuvent les utiliser que pour mettre un auteur a la poubelle - if ($connect_statut == "0minirezo") { - debut_cadre_relief(); - - if ($droit) { - /* Neutralisation momentanee des couches. A revoir. - $couches = $admin_restreint ? - bouton_block_visible("statut$id_auteur") : - bouton_block_invisible("statut$id_auteur"); - echo $couches; - */ - echo "<b>"._T('info_statut_auteur')." </b> "; - echo choix_statut_auteur($statut); - } - - // si pas admin au chargement, rien a montrer. - echo "<div id='changer_statut_auteur'", - (($statut == '0minirezo') ? '' : " style='visibility: hidden'"), - '>'; - - echo "\n<p /><div style='arial2'>"; - // si pas admin restreint au chargement, rien a calculer - if (!$admin_restreint) { - if ($statut == '0minirezo') { - echo _T('info_admin_gere_toutes_rubriques'); - } - } else { - echo _T('info_admin_gere_rubriques')."\n"; - echo "<ul style='list-style-image: url(" . _DIR_IMG_PACK . "rubrique-12.gif)'>"; - while ($row_admin = spip_fetch_array($result_admin)) { - $id_rubrique = $row_admin["id_rubrique"]; - echo "<li><a href='" . generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") . "'>", typo($row_admin["titre"]), "</a>"; - - if ($connect_toutes_rubriques - AND $connect_id_auteur != $id_auteur) { - echo " <font size='1'>[<a href='", generer_url_ecrire($url_self, "id_auteur=$id_auteur&supp_rub=$id_rubrique"), '">', - _T('lien_supprimer_rubrique'), - "</a>]</font>"; - } - echo '</li>'; - $toutes_rubriques .= "$id_rubrique,"; - } - $toutes_rubriques = ",$toutes_rubriques"; - - echo "</ul>"; - } - echo "</div>\n"; - - // Ajouter une rubrique a un administrateur restreint - if ($connect_toutes_rubriques AND $connect_id_auteur != $id_auteur) { - echo debut_block_visible("statut$id_auteur"); - echo "\n<div id='ajax_rubrique' class='arial1'><br />\n"; - if (spip_num_rows($result_admin) == 0) - echo "<b>"._T('info_restreindre_rubrique')."</b><br />"; - else - echo "<b>"._T('info_ajouter_rubrique')."</b><br />"; - echo "\n<input name='id_auteur' value='$id_auteur' TYPE='hidden' />"; - - // selecteur de rubrique - include_ecrire('inc_rubriques'); - echo selecteur_rubrique(0, 'auteur', false); - - echo "</div>\n"; - echo fin_block(); - } - - echo '</div>'; // fin de la balise a visibilite conditionnelle - - if ($post && $droit) { - echo "<div align='", - $spip_lang_right, - "'><input type='submit' class='fondo' value=\"", - _T('bouton_valider'), - "\" /></div>", - "</form>\n"; - } - - fin_cadre_relief(); - } -} - -function statut_modifiable_auteur($id_auteur, $auteur) -{ - global $connect_statut, $connect_toutes_rubriques, $connect_id_auteur; - -// on peut se changer soi-meme - return (($connect_id_auteur == $id_auteur) || - // sinon on doit etre admin - // et pas admin restreint pour changer un autre admin - (($connect_statut == "0minirezo") && - ($connect_toutes_rubriques OR - ($auteur['statut'] != "0minirezo")))); -} - -function modifier_statut_auteur (&$auteur, $statut, $add_rub='', $supp_rub='') { - global $connect_statut, $connect_toutes_rubriques; - // changer le statut ? - $id_auteur= $auteur['id_auteur']; - if (statut_modifiable_auteur($id_auteur, $auteur) && - ereg("^(0minirezo|1comite|5poubelle|6forum)$",$statut)) { - $auteur['statut'] = $statut; - spip_query("UPDATE spip_auteurs SET statut='".$statut."' - WHERE id_auteur=". intval($id_auteur)); - } - - // modif auteur restreint, seulement pour les admins - if ($connect_toutes_rubriques) { - if ($add_rub=intval($add_rub)) - spip_query("INSERT INTO spip_auteurs_rubriques - (id_auteur,id_rubrique) - VALUES(".$auteur['id_auteur'].", $add_rub)"); - - if ($supp_rub=intval($supp_rub)) - spip_query("DELETE FROM spip_auteurs_rubriques - WHERE id_auteur=".$auteur['id_auteur']." - AND id_rubrique=$supp_rub"); - } -} - - ?> diff --git a/ecrire/inc_auteur_voir.php b/ecrire/inc_auteur_voir.php new file mode 100644 index 0000000000..1222774d5c --- /dev/null +++ b/ecrire/inc_auteur_voir.php @@ -0,0 +1,251 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2006 * + * 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; +function cadre_auteur_infos($id_auteur, $auteur) +{ + global $connect_statut; + + if ($id_auteur) { + debut_boite_info(); + echo "<CENTER>"; + echo "<FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=1><B>"._T('titre_cadre_numero_auteur')." :</B></FONT>"; + echo "<BR><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=6><B>$id_auteur</B></FONT>"; + echo "</CENTER>"; + + +// "Voir en ligne" si l'auteur a un article publie +// seuls les admins peuvent "previsualiser" une page auteur +if (spip_num_rows(spip_query("SELECT lien.id_article +FROM spip_auteurs_articles AS lien, +spip_articles AS articles +WHERE lien.id_auteur=$id_auteur +AND lien.id_article=articles.id_article +AND articles.statut='publie'"))) + voir_en_ligne ('auteur', $id_auteur, 'publie'); +else if ($connect_statut == '0minirezo') + voir_en_ligne ('auteur', $id_auteur, 'prop'); + + fin_boite_info(); + } +} + +// affiche le statut de l'auteur dans l'espace prive + +function afficher_formulaire_statut_auteur ($id_auteur, $statut, $post='') { + global $connect_statut, $connect_toutes_rubriques, $connect_id_auteur; + global $spip_lang_right; + + + // S'agit-il d'un admin restreint ? + if ($statut == '0minirezo') { + $query_admin = "SELECT lien.id_rubrique, titre FROM spip_auteurs_rubriques AS lien, spip_rubriques AS rubriques WHERE lien.id_auteur=$id_auteur AND lien.id_rubrique=rubriques.id_rubrique GROUP BY lien.id_rubrique"; + $result_admin = spip_query($query_admin); + $admin_restreint = (spip_num_rows($result_admin) > 0); + } + + $droit = ( ($connect_toutes_rubriques OR $statut != "0minirezo") + && ($connect_id_auteur != $id_auteur)); + + if ($post && $droit) { + $url_self = $post; + echo "<p />"; + echo generer_url_post_ecrire($post, "id_auteur=$id_auteur"); + } else + $url_self = "auteur_infos"; + + // les admins voient et peuvent modifier les droits + // les admins restreints les voient mais + // ne peuvent les utiliser que pour mettre un auteur a la poubelle + if ($connect_statut == "0minirezo") { + debut_cadre_relief(); + + if ($droit) { + /* Neutralisation momentanee des couches. A revoir. + $couches = $admin_restreint ? + bouton_block_visible("statut$id_auteur") : + bouton_block_invisible("statut$id_auteur"); + echo $couches; + */ + echo "<b>"._T('info_statut_auteur')." </b> "; + echo choix_statut_auteur($statut); + } + + // si pas admin au chargement, rien a montrer. + echo "<div id='changer_statut_auteur'", + (($statut == '0minirezo') ? '' : " style='visibility: hidden'"), + '>'; + + echo "\n<p /><div style='arial2'>"; + // si pas admin restreint au chargement, rien a calculer + if (!$admin_restreint) { + if ($statut == '0minirezo') { + echo _T('info_admin_gere_toutes_rubriques'); + } + } else { + echo _T('info_admin_gere_rubriques')."\n"; + echo "<ul style='list-style-image: url(" . _DIR_IMG_PACK . "rubrique-12.gif)'>"; + while ($row_admin = spip_fetch_array($result_admin)) { + $id_rubrique = $row_admin["id_rubrique"]; + echo "<li><a href='" . generer_url_ecrire("naviguer","id_rubrique=$id_rubrique") . "'>", typo($row_admin["titre"]), "</a>"; + + if ($connect_toutes_rubriques + AND $connect_id_auteur != $id_auteur) { + echo " <font size='1'>[<a href='", generer_url_ecrire($url_self, "id_auteur=$id_auteur&supp_rub=$id_rubrique"), '">', + _T('lien_supprimer_rubrique'), + "</a>]</font>"; + } + echo '</li>'; + $toutes_rubriques .= "$id_rubrique,"; + } + $toutes_rubriques = ",$toutes_rubriques"; + + echo "</ul>"; + } + echo "</div>\n"; + + // Ajouter une rubrique a un administrateur restreint + if ($connect_toutes_rubriques AND $connect_id_auteur != $id_auteur) { + echo debut_block_visible("statut$id_auteur"); + echo "\n<div id='ajax_rubrique' class='arial1'><br />\n"; + if (spip_num_rows($result_admin) == 0) + echo "<b>"._T('info_restreindre_rubrique')."</b><br />"; + else + echo "<b>"._T('info_ajouter_rubrique')."</b><br />"; + echo "\n<input name='id_auteur' value='$id_auteur' TYPE='hidden' />"; + + // selecteur de rubrique + include_ecrire('inc_rubriques'); + echo selecteur_rubrique(0, 'auteur', false); + + echo "</div>\n"; + echo fin_block(); + } + + echo '</div>'; // fin de la balise a visibilite conditionnelle + + if ($post && $droit) { + echo "<div align='", + $spip_lang_right, + "'><input type='submit' class='fondo' value=\"", + _T('bouton_valider'), + "\" /></div>", + "</form>\n"; + } + + fin_cadre_relief(); + } +} + +function statut_modifiable_auteur($id_auteur, $auteur) +{ + global $connect_statut, $connect_toutes_rubriques, $connect_id_auteur; + +// on peut se changer soi-meme + return (($connect_id_auteur == $id_auteur) || + // sinon on doit etre admin + // et pas admin restreint pour changer un autre admin + (($connect_statut == "0minirezo") && + ($connect_toutes_rubriques OR + ($auteur['statut'] != "0minirezo")))); +} + +function modifier_statut_auteur (&$auteur, $statut, $add_rub='', $supp_rub='') { + global $connect_statut, $connect_toutes_rubriques; + // changer le statut ? + $id_auteur= $auteur['id_auteur']; + if (statut_modifiable_auteur($id_auteur, $auteur) && + ereg("^(0minirezo|1comite|5poubelle|6forum)$",$statut)) { + $auteur['statut'] = $statut; + spip_query("UPDATE spip_auteurs SET statut='".$statut."' + WHERE id_auteur=". intval($id_auteur)); + } + + // modif auteur restreint, seulement pour les admins + if ($connect_toutes_rubriques) { + if ($add_rub=intval($add_rub)) + spip_query("INSERT INTO spip_auteurs_rubriques + (id_auteur,id_rubrique) + VALUES(".$auteur['id_auteur'].", $add_rub)"); + + if ($supp_rub=intval($supp_rub)) + spip_query("DELETE FROM spip_auteurs_rubriques + WHERE id_auteur=".$auteur['id_auteur']." + AND id_rubrique=$supp_rub"); + } +} + +// Menu de choix d'un statut d'auteur +function choix_statut_auteur($statut) { + global $connect_toutes_rubriques; + + $menu = "<select name='statut' size=1 class='fondl' + onChange=\"setvisibility('changer_statut_auteur', this.selectedIndex ? 'hidden' : 'visible');\">"; + + // Si on est admin restreint, on n'a pas le droit de modifier un admin + if ($connect_toutes_rubriques) + $menu .= "\n<option" . + mySel("0minirezo",$statut) . + ">" . _T('item_administrateur_2') + . '</option>'; + + // Ajouter le choix "comite" + $menu .= + "\n<option" . + mySel("1comite",$statut) . + ">" . + _T('intem_redacteur') . + '</option>'; + + // Ajouter le choix "visiteur" si : + // - l'auteur est visiteur + // - OU, on accepte les visiteurs (ou forums sur abonnement) + // - OU il y a des visiteurs dans la base + if (($statut == '6forum') + OR ($GLOBALS['meta']['accepter_visiteurs'] == 'oui') + OR ($GLOBALS['meta']['forums_publics'] == 'abo') + OR spip_num_rows(spip_query("SELECT statut FROM spip_auteurs + WHERE statut='6forum'"))) + $menu .= "\n<option" . + mySel("6forum",$statut) . + ">" . + _T('item_visiteur') . + '</option>'; + + // Ajouter l'option "nouveau" si l'auteur n'est pas confirme + if ($statut == 'nouveau') + $menu .= "\n<option" . + mySel('nouveau',$statut) . + ">" . + _L('Inscription à confirmer') . + '</option>'; + + // Ajouter l'option "autre" si le statut est inconnu + if (!in_array($statut, array('nouveau', '0minirezo', '1comite', '6forum'))) + $menu .= "\n<option" . + mySel('autre','autre') . + ">" . + _L('Autre statut : ').htmlentities($statut). + '</option>'; + + + + $menu .= "\n<option" . + mySel("5poubelle",$statut) . + " style='background:url(" . _DIR_IMG_PACK . "rayures-sup.gif)'>> " + ._T('texte_statut_poubelle') . + '</option>' . + "</select>\n"; + + return $menu; +} +?> diff --git a/ecrire/inc_auteurs_edit.php b/ecrire/inc_auteurs_edit.php index e492b2fd59..bcdd825478 100644 --- a/ecrire/inc_auteurs_edit.php +++ b/ecrire/inc_auteurs_edit.php @@ -14,7 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_ecrire("inc_presentation"); include_ecrire("inc_logos"); -include_ecrire("inc_auteur_infos"); +include_ecrire("inc_auteur_voir"); function auteurs_edit_dist() { -- GitLab