" . _T('info_statut_auteur')." " . $menu; if ($modif) $res .= editer_choix_webmestre($auteur); else $res .= afficher_webmestre($auteur); // Prepare le bloc des rubriques pour les admins eventuellement restreints ; // si l'auteur n'est pas '0minirezo', on le cache, pour pouvoir le reveler // en jquery lorsque le menu de statut change $vis = in_array($statut, explode(',', _STATUT_AUTEUR_RUBRIQUE)) ? '' : " style='display: none'"; if ($menu_restreints = choix_rubriques_admin_restreint($auteur, $modif)) $res .= "
" . $menu_restreints . "
"; return $res; } function afficher_webmestre($auteur){ if (autoriser('webmestre','',0,$auteur['id_auteur'])) return "

"._T("info_admin_webmestre")."

"; return ""; } function editer_choix_webmestre($auteur){ $res = ""; $style = ""; if (!autoriser('modifier', 'auteur', $auteur['id_auteur'], null, array('webmestre' => '?'))){ $res = afficher_webmestre($auteur); } else { $res = "" . ""; $res .= ""; // visible ou pas ? if ($auteur['statut']!='0minirezo') $style=" style='display:none;'"; } return "
$res
"; } // http://doc.spip.org/@traduire_statut_auteur function traduire_statut_auteur($statut){ $recom = array( "info_administrateurs" => 'item_administrateur_2', "info_redacteurs" => 'intem_redacteur', "info_visiteurs" => 'item_visiteur', "5poubelle" => 'texte_statut_poubelle', // bouh ); if (isset($recom[$statut])) return _T($recom[$statut]); // retrouver directement par le statut sinon if ($t = array_search($statut, $GLOBALS['liste_des_statuts'])){ if (isset($recom[$t])) return _T($recom[$t]); return _T($t); } return ''; } // Menu de choix d'un statut d'auteur // http://doc.spip.org/@choix_statut_auteur function choix_statut_auteur($statut, $id_auteur, $ancre) { // Le menu doit-il etre actif ? if (!autoriser('modifier', 'auteur', $id_auteur, null, array('statut' => '?'))) return ''; // A-t-on le droit de promouvoir cet auteur comme admin // et y a-t-il des visiteurs ? $droits = $GLOBALS['liste_des_statuts']; if (!autoriser('modifier', 'auteur', $id_auteur, null, array('statut' => '0minirezo'))) unset($droits["info_administrateurs"]); if (!avoir_visiteurs() AND $statut!==$droits['info_visiteurs']) unset($droits['info_visiteurs']); $menu = ''; foreach($droits as $k => $v) { if (($v != '5poubelle') && ($k = traduire_statut_auteur($v))) $menu .= mySel($v, $statut, $k); } // Chercher les statuts non standards $l = $GLOBALS['liste_des_statuts']; $l[]= 'nouveau'; $q = sql_allfetsel("statut", 'spip_auteurs', sql_in('statut', $l, 'NOT'), "statut"); $hstatut = htmlentities($statut); foreach ($q as $r) { $nom = htmlentities($r['statut']); $t = traduire_statut_auteur($nom); $t = !$t ? (_T('info_statut_auteur_autre') . ' ' . $nom) : $t; $menu .= mySel($nom, $hstatut, $t); } // Ajouter l'option "nouveau" si l'auteur n'est pas confirme if ($statut == 'nouveau') $menu .= mySel('nouveau',$statut,_T('info_statut_auteur_a_confirmer')); $statut_rubrique = str_replace(',', '|', _STATUT_AUTEUR_RUBRIQUE); return "\n"; } // http://doc.spip.org/@afficher_rubriques_admin_restreintes function afficher_rubriques_admin_restreintes($auteur, $modif = true){ global $spip_lang; $id_auteur = intval($auteur['id_auteur']); $result = sql_select("rubriques.id_rubrique, " . sql_multi ("titre", $spip_lang) . "", "spip_auteurs_rubriques AS lien LEFT JOIN spip_rubriques AS rubriques ON lien.id_rubrique=rubriques.id_rubrique", "lien.id_auteur=$id_auteur", "", "multi"); $menu = $restreint = ''; // L'autorisation de modifier les rubriques restreintes // est egale a l'autorisation de passer en admin $modif &= autoriser('modifier', 'auteur', $id_auteur, null, array('statut' => '0minirezo')); while ($row_admin = sql_fetch($result)) { $id_rubrique = $row_admin["id_rubrique"]; $h = generer_url_ecrire('naviguer', "id_rubrique=$id_rubrique"); $restreint .= "\n
  • " . ($modif ? "\n" : '' ) . "" . typo($row_admin["multi"]) . "" . '
  • '; } if (!$restreint) { $phrase = _T('info_admin_gere_toutes_rubriques')."\n"; } else { $menu = "\n"; // Il faut un element zero pour montrer qu'on a l'interface // sinon il est impossible de deslectionner toutes les rubriques if ($modif) $menu .= "\n"; $phrase = _T('info_admin_gere_rubriques'); } if ($auteur['statut'] != '0minirezo') $phrase = ''; return "

    $phrase

    \n$menu"; } // http://doc.spip.org/@choix_rubriques_admin_restreint function choix_rubriques_admin_restreint($auteur, $modif=true) { global $spip_lang; $id_auteur = intval($auteur['id_auteur']); $res = afficher_rubriques_admin_restreintes($auteur, $modif); // Ajouter une rubrique a un administrateur restreint if ($modif AND autoriser('modifier', 'auteur', $id_auteur, NULL, array('restreintes' => true)) AND $chercher_rubrique = charger_fonction('chercher_rubrique', 'inc') AND $a = $chercher_rubrique(0, 'auteur', false)) { $label = $restreint ? _T('info_ajouter_rubrique') : _T('info_restreindre_rubrique'); $res .= debut_block_depliable(true,"statut$id_auteur") . "\n
    \n" . "" . $label . "" . "\n" . $a . "
    \n" // onchange = pour le menu // l'evenement doit etre provoque a la main par le selecteur ajax . "\n" . fin_block(); } return $res; } ?>