diff --git a/ecrire/auteur_infos.php3 b/ecrire/auteur_infos.php3 index 8873e4874cedd4e0d7c5bfc8ae8f4799bf2671e8..674fbb1a26134419d69e6114109c6a1857566705 100644 --- a/ecrire/auteur_infos.php3 +++ b/ecrire/auteur_infos.php3 @@ -22,35 +22,6 @@ include_ecrire ("inc_abstract_sql.php3"); $id_auteur = floor($id_auteur); -// -// Auteurs a acces restreint -// -function afficher_auteur_rubriques($leparent){ - global $id_parent; - global $id_rubrique; - global $toutes_rubriques; - global $i; - - $i++; - $query="SELECT * FROM spip_rubriques WHERE id_parent=$leparent ORDER BY 0+titre, titre"; - $result=spip_query($query); - - while($row=spip_fetch_array($result)){ - $my_rubrique=$row['id_rubrique']; - $titre=typo($row['titre']); - - if (!ereg(",$my_rubrique,","$toutes_rubriques")){ - $espace = str_repeat(" ", $i*2) . "|"; - if ($i==1) - $espace = "*"; - - echo "<OPTION VALUE='$my_rubrique'>$espace ".supprimer_tags($titre)."\n"; - afficher_auteur_rubriques($my_rubrique); - } - } - $i=$i-1; -} - // securite if ($connect_statut != "0minirezo" AND $connect_id_auteur != $id_auteur) { gros_titre(_T('info_acces_interdit')); @@ -195,7 +166,7 @@ if (strval($nom)!='') { } // Appliquer des modifications de statut -modifier_statut_auteur($auteur, $_POST['statut'], $_POST['add_rub'], $_GET['supp_rub']); +modifier_statut_auteur($auteur, $_POST['statut'], $_POST['id_rubrique'], $_GET['supp_rub']); // Si on modifie la fiche auteur, reindexer et modifier htpasswd diff --git a/ecrire/auteurs_edit.php3 b/ecrire/auteurs_edit.php3 index 62938bbd38cdbae0e2c2c15a13ae0aa6138b2914..aba2513cece9be54152814848a99c9c5e5e173b2 100644 --- a/ecrire/auteurs_edit.php3 +++ b/ecrire/auteurs_edit.php3 @@ -21,36 +21,6 @@ function supp_auteur($id_auteur) { $result=spip_query($query); } - -function afficher_auteur_rubriques($leparent){ - global $id_parent; - global $id_rubrique; - global $toutes_rubriques; - global $i; - - $i++; - $query="SELECT * FROM spip_rubriques WHERE id_parent='$leparent' ORDER BY 0+titre, titre"; - $result=spip_query($query); - - while($row=spip_fetch_array($result)){ - $my_rubrique=$row["id_rubrique"]; - $titre=typo($row["titre"]); - - if (!ereg(",$my_rubrique,","$toutes_rubriques")){ - $espace=""; - for ($count=0;$count<$i;$count++){$espace.=" ";} - $espace .= "|"; - if ($i==1) - $espace = "*"; - - echo "<OPTION VALUE='$my_rubrique'>$espace ".supprimer_tags($titre)."\n"; - afficher_auteur_rubriques($my_rubrique); - } - } - $i=$i-1; -} - - if (!$id_auteur = intval($id_auteur)) { die ('erreur'); } @@ -77,7 +47,7 @@ if ($row = spip_fetch_array($result)) { // Appliquer des modifications de statut -modifier_statut_auteur($row, $_POST['statut'], $_POST['add_rub'], $_GET['supp_rub']); +modifier_statut_auteur($row, $_POST['statut'], $_POST['id_rubrique'], $_GET['supp_rub']); if ($connect_id_auteur == $id_auteur) debut_page($nom, "auteurs", "perso"); else debut_page($nom,"auteurs","redacteurs"); @@ -165,7 +135,7 @@ debut_droite(); // Afficher le formulaire de changement de statut (cf. inc_acces.php3) if ($options == 'avancees') - afficher_formulaire_statut_auteur ($id_auteur, + afficher_formulaire_statut_auteur ($id_auteur, $row['statut'], "auteurs_edit.php3?id_auteur=$id_auteur"); diff --git a/ecrire/inc_acces.php3 b/ecrire/inc_acces.php3 index 80e6a1a873c35bcc26328e68950d8d8956e12368..573215f7a99e1cc5deb8d21c11e62e61c5be4dce 100644 --- a/ecrire/inc_acces.php3 +++ b/ecrire/inc_acces.php3 @@ -88,6 +88,59 @@ function effacer_low_sec($id_auteur) { } + +function ajax_rubriques_acces($id_parent) +{ + $query = spip_query("SELECT titre FROM spip_rubriques WHERE id_rubrique=$id_parent"); + if ($row = spip_fetch_array($query)) { + $titre_parent = entites_html(typo($row["titre"])); + } else { + $titre_parent = entites_html(_T("info_racine_site")); + } + + return "<table width='100%'><tr width='100%'><td width='45'>" . + "<a href='#' onClick=\"javascript:if(findObj('selection_rubrique').style.display=='none') {charger_id_url_si_vide('ajax_page.php?fonction=aff_rubrique&id_rubrique=$id_rubrique','selection_rubrique');} else {findObj('selection_rubrique').style.display='none';} return true;\"><img src='img_pack/loupe.png' style='border: 0px; vertical-align: middle;' /></a> " . + "<img src='img_pack/searching.gif' id='img_selection_rubrique' style='visibility: hidden;' />" . + "</td><td>" . + "<input type='text' id='titreparent' name='titreparent' disabled='disabled' class='forml' value=\"$titre_parent\" />" . + "<input type='hidden' id='id_rubrique' name='id_rubrique' value='$id_rubrique' />" . + "</td></tr></table><div id='selection_rubrique' style='display: none;'></div>"; + +} + +function choix_statut_auteur($statut) +{ + global $connect_toutes_rubriques; + return "<select name='statut' size=1 class='fondl' + onChange=\"setvisibility('changer_statut_auteur', this.selectedIndex ? 'hidden' : 'visible');\">" . + + (!$connect_toutes_rubriques ? "" : + ("\n<option" . + mySel("0minirezo",$statut) . + ">" . + _T('item_administrateur_2') . + '</option>')) . + "\n<option" . + mySel("1comite",$statut) . + ">" . + _T('intem_redacteur') . + '</option>' . + (!(($statut == '6forum') + OR (lire_meta('accepter_visiteurs') == 'oui') + OR (lire_meta('forums_publics') == 'abo') + OR spip_num_rows(spip_query("SELECT statut FROM spip_auteurs WHERE statut='6forum'"))) ? "" : + ("\n<option" . + mySel("6forum",$statut) . + ">" . + _T('item_visiteur') . + '</option>')) . + "\n<option" . + mySel("5poubelle",$statut) . + " style='background:url(" . _DIR_IMG_PACK . "rayures-sup.gif)'>> "._T('texte_statut_poubelle') . + '</option>' . + "</select>\n"; +} + // Une fonction service qui 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; @@ -118,44 +171,28 @@ function afficher_formulaire_statut_auteur ($id_auteur, $statut, $post='') { debut_cadre_relief(); if ($droit) { - - if ($statut == '0minirezo') { - if ($admin_restreint) - echo bouton_block_visible("statut$id_auteur"); - else - echo bouton_block_invisible("statut$id_auteur"); - } - + /* 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 "<select name='statut' size=1 class='fondl'>"; - - if ($connect_toutes_rubriques) - echo "<OPTION".mySel("0minirezo",$statut).">"._T('item_administrateur_2'); - - echo "<OPTION".mySel("1comite",$statut).">"._T('intem_redacteur'); + echo choix_statut_auteur($statut); + } - if (($statut == '6forum') - OR (lire_meta('accepter_visiteurs') == 'oui') - OR (lire_meta('forums_publics') == 'abo') - OR spip_num_rows(spip_query("SELECT statut - FROM spip_auteurs WHERE statut='6forum'"))) - echo "<OPTION".mySel("6forum",$statut).">"._T('item_visiteur'); - echo "<OPTION".mySel("5poubelle",$statut). - " style='background:url(" . _DIR_IMG_PACK . "rayures-sup.gif)'>> "._T('texte_statut_poubelle'); + // si pas admin au chargement, rien a montrer. + echo "<div id='changer_statut_auteur'", + (($statut == '0minirezo') ? '' : " style='visibility: hidden'"), + '>'; - echo "</select>\n"; - } - // - // Gestion restreinte des rubriques - // - if ($statut == '0minirezo') { - echo debut_block_visible("statut$id_auteur"); - if (!$admin_restreint) { -# echo debut_block_invisible("statut$id_auteur"); - echo "<p /><div style='arial2'>\n"; + 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 "<p /><div style='arial2'>\n"; + } + } 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)) { @@ -174,32 +211,32 @@ function afficher_formulaire_statut_auteur ($id_auteur, $statut, $post='') { $toutes_rubriques = ",$toutes_rubriques"; echo "</ul>"; - } - if ($connect_toutes_rubriques - AND $connect_id_auteur != $id_auteur) { - echo "</div><br /><div class='arial1'>"; + } + echo "</div>\n"; + // si on a le droit de donner des droits, prevoir Ajax. + echo debut_block_visible("statut$id_auteur"); + if ($connect_toutes_rubriques AND $connect_id_auteur != $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 "<INPUT NAME='id_auteur' VALUE='$id_auteur' TYPE='hidden'>"; - echo "<SELECT NAME='add_rub' SIZE=1 CLASS='formo'>"; - echo "<OPTION VALUE='0'>\n"; - afficher_auteur_rubriques("0"); - echo "</SELECT>"; + echo "\n<input name='id_auteur' value='$id_auteur' TYPE='hidden' />"; + echo ajax_rubriques_acces(0); + echo "</div>\n"; } + echo fin_block(); - 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' name='Valider' - value=\""._T('bouton_valider')."\" /></div>"; - echo "</form>\n"; + echo "<div align='", + $spip_lang_right, + "'><input type='submit' class='fondo' value=\"", + _T('bouton_valider'), + "\" /></div>", + "</form>\n"; } fin_cadre_relief(); diff --git a/ecrire/inc_presentation.php3 b/ecrire/inc_presentation.php3 index 09985e6ebf48e25fc45376062243a51ccd6f3e2a..d8102927d9418ecc00dec37ffa40e822279eec7b 100644 --- a/ecrire/inc_presentation.php3 +++ b/ecrire/inc_presentation.php3 @@ -3400,13 +3400,9 @@ function afficher_hierarchie($id_rubrique, $parents="") { // Pour construire des menu avec SELECTED function mySel($varaut,$variable, $option = NULL) { - if (!isset($option)) - return ' value="'.$varaut.'"' - . (($variable==$varaut) ? ' selected' : ''); + $res = ' value="'.$varaut.'"' . (($variable==$varaut) ? ' selected="selected"' : ''); - return "<option value='$varaut'" - . (($variable==$varaut) ? ' selected' : '') - . ">$option\n"; + return (!isset($option) ? $res : "<option$res>$option</option>\n"); }