" . _T('info_statut_auteur')."$label> " . $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
\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;
}
?>