| [ Index ] |
|
Code source de SPIP 1.9.2c |
1 <?php 2 3 /***************************************************************************\ 4 * SPIP, Systeme de publication pour l'internet * 5 * * 6 * Copyright (c) 2001-2007 * 7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * 8 * * 9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * 10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * 11 \***************************************************************************/ 12 13 if (!defined("_ECRIRE_INC_VERSION")) return; 14 15 include_spip('inc/actions'); 16 include_spip('inc/texte'); 17 include_spip('inc/layer'); 18 include_spip('inc/presentation'); 19 include_spip('inc/message_select'); 20 21 // affiche le statut de l'auteur dans l'espace prive 22 // les admins voient et peuvent modifier les droits d'un auteur 23 // les admins restreints les voient mais 24 // ne peuvent les utiliser que pour mettre un auteur a la poubelle 25 26 // http://doc.spip.org/@inc_instituer_auteur_dist 27 function inc_instituer_auteur_dist($auteur) { 28 global $connect_toutes_rubriques, $connect_id_auteur, $connect_statut, $spip_lang_right, $spip_lang; 29 30 if ($connect_statut != '0minirezo') return ''; 31 32 $statut = $auteur['statut']; 33 34 if (!$id_auteur = $auteur['id_auteur']) { 35 $new = true; 36 $statut = '1comite'; 37 } 38 39 $ancre = "instituer_auteur-" . intval($id_auteur); 40 41 if ($menu = choix_statut_auteur($statut, $id_auteur, "$ancre-aff")) 42 $res = "<b>"._T('info_statut_auteur')."</b> " . $menu; 43 44 // Prepare le bloc des rubriques restreintes ; 45 // si l'auteur n'est pas admin, on le cache 46 $vis = ($statut == '0minirezo') ? '' : " style='display: none'"; 47 if ($menu_restreints = choix_rubriques_admin_restreint($auteur)) 48 $res .= "<div id='$ancre-aff'$vis>" 49 . $menu_restreints 50 . "</div>"; 51 52 return debut_cadre_relief('',true) 53 . "<div id='" 54 . $ancre 55 . "'>" 56 . $res 57 . '</div>' 58 . fin_cadre_relief(true); 59 } 60 61 62 // Menu de choix d'un statut d'auteur 63 // http://doc.spip.org/@choix_statut_auteur 64 function choix_statut_auteur($statut, $id_auteur, $ancre) { 65 66 // Le menu doit-il etre actif ? 67 if (!autoriser('modifier', 'auteur', $id_auteur, 68 null, array('statut' => '?'))) 69 return ''; 70 71 // Calculer le menu 72 $menu = "<select name='statut' size='1' class='fondl' 73 onchange=\"(this.options[this.selectedIndex].value == '0minirezo')?jQuery('#$ancre').slideDown():jQuery('#$ancre:visible').slideUp();\">"; 74 75 // A-t-on le droit de promouvoir cet auteur comme admin ? 76 if (autoriser('modifier', 'auteur', intval($id_auteur), 77 null, array('statut' => '0minirezo'))) { 78 $menu .= "\n<option" . 79 mySel("0minirezo",$statut) . 80 ">" . _T('item_administrateur_2') 81 . '</option>'; 82 } 83 84 // Ajouter le choix "comite" 85 $menu .= 86 "\n<option" . 87 mySel("1comite",$statut) . 88 ">" . 89 _T('intem_redacteur') . 90 '</option>'; 91 92 // Ajouter le choix "visiteur" si : 93 // - l'auteur est visiteur 94 // - OU, on accepte les visiteurs (ou forums sur abonnement) 95 // - OU il y a des visiteurs dans la base 96 $x = (($statut == '6forum') 97 OR ($GLOBALS['meta']['accepter_visiteurs'] == 'oui') 98 OR ($GLOBALS['meta']['forums_publics'] == 'abo')); 99 if (!$x) { 100 $x = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_auteurs WHERE statut='6forum' LIMIT 1")); 101 $x = $x['n']; 102 } 103 if ($x) 104 $menu .= "\n<option" . 105 mySel("6forum",$statut) . 106 ">" . 107 _T('item_visiteur') . 108 '</option>'; 109 110 // Ajouter l'option "nouveau" si l'auteur n'est pas confirme 111 if ($statut == 'nouveau') 112 $menu .= "\n<option" . 113 mySel('nouveau',$statut) . 114 ">" . 115 _T('info_statut_auteur_a_confirmer') . 116 '</option>'; 117 118 // Ajouter l'option "autre" si le statut est inconnu 119 if (!in_array($statut, array('nouveau', '0minirezo', '1comite', '5poubelle', '6forum'))) 120 $menu .= "\n<option" . 121 mySel('autre','autre') . 122 ">" . 123 _T('info_statut_auteur_autre').' '.htmlentities($statut). 124 '</option>'; 125 126 $menu .= "\n<option" . 127 mySel("5poubelle",$statut) . 128 " style='background:url(" . _DIR_IMG_PACK . "rayures-sup.gif)'>> " 129 ._T('texte_statut_poubelle') . 130 '</option>' . 131 "</select>\n"; 132 133 return $menu; 134 } 135 136 137 // http://doc.spip.org/@choix_rubriques_admin_restreint 138 function choix_rubriques_admin_restreint($auteur) { 139 global $connect_toutes_rubriques, $connect_id_auteur, $connect_statut, $spip_lang_right, $spip_lang; 140 141 $id_auteur = intval($auteur['id_auteur']); 142 143 $result_admin = spip_query("SELECT rubriques.id_rubrique, " . creer_objet_multi ("titre", $spip_lang) . " FROM spip_auteurs_rubriques AS lien, spip_rubriques AS rubriques WHERE lien.id_auteur=$id_auteur AND lien.id_rubrique=rubriques.id_rubrique ORDER BY multi"); 144 145 146 if (spip_num_rows($result_admin) == 0) { 147 $phrase = _T('info_admin_gere_toutes_rubriques')."\n"; 148 $menu = ''; 149 } else { 150 // L'autorisation de modifier les rubriques restreintes 151 // est egale a l'autorisation de passer en admin 152 $modif = autoriser('modifier', 'auteur', $id_auteur, null, array('statut' => '0minirezo')); 153 154 // Il faut un element zero pour montrer qu'on a l'interface 155 // sinon il est impossible de deslectionner toutes les rubriques 156 $menu = $modif 157 ? "<input type='hidden' name='restreintes[]' value='0' />\n" 158 : ''; 159 160 while ($row_admin = spip_fetch_array($result_admin)) { 161 $id_rubrique = $row_admin["id_rubrique"]; 162 163 $menu .= "\n<li id='rubrest_$id_rubrique'>" 164 . ($modif 165 ? "<input type='checkbox' checked='checked' name='restreintes[]' value='$id_rubrique' />\n" 166 : '' 167 ) 168 . "<a href='?exec=naviguer&id_rubrique=$id_rubrique'>" 169 . typo($row_admin["multi"]) 170 . "</a>" 171 . '</li>'; 172 } 173 174 $phrase = _T('info_admin_gere_rubriques'); 175 } 176 177 if ($auteur['statut'] != '0minirezo') 178 $phrase = ''; 179 180 $res = "<p>$phrase</p>\n" 181 . "<ul id='liste_rubriques_restreintes' style='list-style-image: url(" 182 . _DIR_IMG_PACK 183 . "rubrique-12.gif)'>" 184 . $menu 185 . "</ul>\n"; 186 187 // Ajouter une rubrique a un administrateur restreint 188 if ($connect_toutes_rubriques AND $connect_id_auteur != $id_auteur) { 189 190 $label = $restreint 191 ? _T('info_ajouter_rubrique') 192 : _T('info_restreindre_rubrique'); 193 194 $chercher_rubrique = charger_fonction('chercher_rubrique', 'inc'); 195 196 $res .= debut_block_visible("statut$id_auteur") 197 . "\n<div id='ajax_rubrique' class='arial1'><br />\n" 198 . "<b>" 199 . $label 200 . "</b><br />" 201 . "\n<input name='id_auteur' value='" 202 . $id_auteur 203 . "' type='hidden' />" 204 . $chercher_rubrique(0, 'auteur', false) 205 . "</div>\n" 206 207 // onchange = pour le menu 208 // l'evenement doit etre provoque a la main par le selecteur ajax 209 . "<script type='text/javascript'><!-- 210 jQuery('#id_parent') 211 .bind('change', function(){ 212 var id_parent = this.value; 213 var titre = jQuery('#titreparent').attr('value') || this.options[this.selectedIndex].text; 214 // Ajouter la rubrique selectionnee au formulaire, 215 // sous la forme d'un input name='rubriques[]' 216 var el = '<input type=\'checkbox\' checked=\'checked\' name=\'restreintes[]\' value=\''+id_parent+'\' /> ' + '<a href=\'?exec=naviguer&id_rubrique='+id_parent+'\'>'+titre+'</a>'; 217 if (jQuery('#rubrest_'+id_parent).size() == 0) { 218 jQuery('#liste_rubriques_restreintes') 219 .append('<li id=\'rubrest_'+id_parent+'\'>'+el+'</li>'); 220 } 221 }); //--></script>\n" 222 223 . fin_block(); 224 } 225 226 return $res; 227 } 228 229 230 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Wed Nov 21 10:20:27 2007 | par Balluche grâce à PHPXref 0.7 |
|