forcement admin complet (ou webmestre) if (autoriser('configurer')) { $boutons_admin['configuration']= new Bouton('administration-48.png', 'icone_configuration_site'); } // autres admins (restreints ou non webmestres) peuvent aller sur les backups else if (autoriser('sauvegarder', 'admin_tech')) { $boutons_admin['admin_tech']= new Bouton('administration-48.png', 'texte_sauvegarde_base'); } $boutons_admin['espacement']=null; $urlAide= generer_url_ecrire('aide_index')."&var_lang=$spip_lang"; $boutons_admin['aide_index']= new Bouton('aide-48'.$spip_lang_rtl.'.png', 'icone_aide_ligne', $urlAide, null, "javascript:window.open('$urlAide', 'spip_aide', 'scrollbars=yes,resizable=yes,width=740,height=580');", 'aide_spip'); $boutons_admin['visiter']= new Bouton("visiter-48$spip_lang_rtl.png", 'icone_visiter_site', url_de_base()); // les sous menu des boutons, que si on est admin if ($GLOBALS['connect_statut'] == '0minirezo' AND $GLOBALS['connect_toutes_rubriques']) { // sous menu edition $sousmenu=array(); $nombre_articles = sql_fetsel('id_article', 'spip_auteurs_articles', "id_auteur=".$GLOBALS['connect_id_auteur']); if ($nombre_articles > 0) { $sousmenu['articles_page']= new Bouton('article-24.gif', 'icone_tous_articles'); } if ($GLOBALS['meta']["activer_breves"] != "non") { $sousmenu['breves']= new Bouton('breve-24.gif', 'icone_breves'); } $articles_mots = $GLOBALS['meta']['articles_mots']; if ($articles_mots != "non") { $sousmenu['mots_tous']= new Bouton('mot-cle-24.gif', 'icone_mots_cles'); } $activer_sites = $GLOBALS['meta']['activer_sites']; if ($activer_sites<>'non') $sousmenu['sites_tous']= new Bouton('site-24.gif', 'icone_sites_references'); $n = sql_countsel('spip_documents_liens', 'id_objet>0 AND objet=\'rubrique\''); if ($n) { $sousmenu['documents_liste']= new Bouton('doc-24.gif', 'icone_doc_rubrique'); } $boutons_admin['naviguer']->sousmenu= $sousmenu; // sous menu forum $sousmenu=array(); if ($GLOBALS['meta']['forum_prive_admin'] == 'oui' AND autoriser('forum_admin')) $sousmenu['forum_admin']= new Bouton('forum-admin-24.gif', 'icone_forum_administrateur'); if (sql_countsel('spip_forum')) $sousmenu['controle_forum']= new Bouton("suivi-forum-24.gif", "icone_suivi_forums"); if (sql_countsel('spip_signatures')) $sousmenu['controle_petition']= new Bouton("suivi-petition-24.gif", "icone_suivi_pettions"); // Si le forum a ete desactive, mais qu'il y a un sous-menu de suivi // des forums ou des petitions, on colle ce suivi sous le menu "a suivre" if ($sousmenu) { if (isset($boutons_admin['forum'])) $boutons_admin['forum']->sousmenu= $sousmenu; else $boutons_admin['accueil']->sousmenu= $sousmenu; } // sous menu auteurs $sousmenu=array(); if (avoir_visiteurs(true)) { include_spip('exec/auteurs'); $sousmenu['auteurs'] = new Bouton("fiche-perso.png", 'icone_afficher_visiteurs', null, "statut=!".AUTEURS_MIN_REDAC); } $sousmenu['auteur_infos']= new Bouton("auteur-24.gif", "icone_creer_nouvel_auteur", null, 'new=oui'); $boutons_admin['auteurs']->sousmenu= $sousmenu; // sous menu statistiques if (isset($boutons_admin['statistiques_visites'])) { $sousmenu=array( //'espacement' => null,// les espacements debloquent si on a des icones sur 2 lignes 'statistiques_repartition' => new Bouton("rubrique-24.gif", "icone_repartition_visites") ); if ($GLOBALS['meta']['multi_articles'] == 'oui' OR $GLOBALS['meta']['multi_rubriques'] == 'oui') $sousmenu['statistiques_lang']= new Bouton("langues-24.gif", "onglet_repartition_lang"); $sousmenu['statistiques_referers']= new Bouton("referers-24.gif", "titre_liens_entrants"); $boutons_admin['statistiques_visites']->sousmenu= $sousmenu; } // sous menu configuration if (autoriser('configurer')) { $sousmenu = array(); if (autoriser('configurer', 'lang')) { $sousmenu['config_lang'] = new Bouton("langues-24.gif", "icone_gestion_langues"); //$sousmenu['espacement'] = null; // les espacements debloquent si on a des icones sur 2 lignes } if (autoriser('sauvegarder')) { $sousmenu['admin_tech']= new Bouton("base-24.gif", "icone_maintenance_site"); } if (autoriser('configurer', 'admin_vider')) { $sousmenu['admin_vider']= new Bouton("cache-24.gif", "onglet_vider_cache"); } // Si _DIR_PLUGINS est definie a '', pas de bouton if (_DIR_PLUGINS AND autoriser('configurer', 'admin_plugin')) { $sousmenu['admin_plugin']= new Bouton("plugin-24.gif", "icone_admin_plugin"); } if ($sousmenu) $boutons_admin['configuration']->sousmenu= $sousmenu; } } // fin si admin // ajouter les boutons issus des plugin via plugin.xml if (function_exists('boutons_plugins') AND is_array($liste_boutons_plugins = boutons_plugins())){ foreach($liste_boutons_plugins as $id => $infos){ if (autoriser('bouton',$id)){ if (($parent = $infos['parent']) && isset($boutons_admin[$parent])) $boutons_admin[$parent]->sousmenu[$id]= new Bouton( find_in_path($infos['icone']), // icone $infos['titre'], // titre $infos['url']?$infos['url']:null, $infos['args']?$infos['args']:null ); if (!$parent) { $b = array(); foreach($boutons_admin as $k=>$v){ if ($k=='espacement') $b = $b + array($id=> new Bouton( find_in_path($infos['icone']), // icone $infos['titre'], // titre $infos['url']?generer_url_ecrire($infos['url'],$infos['args']?$infos['args']:''):null )); $b = $b + array($k=>$v); } $boutons_admin = $b; } } } } $boutons_admin = pipeline('ajouter_boutons', $boutons_admin); } // http://doc.spip.org/@bandeau_creer_url function bandeau_creer_url($url, $args=""){ if (preg_match(',[\/\?],',$url)) return $url; else return generer_url_ecrire($url,$args); } // http://doc.spip.org/@bandeau_principal function bandeau_principal($rubrique, $sous_rubrique, $largeur) { $res = ''; $decal = 0; //cherche les espacement pour determiner leur largeur $num_espacements = 0; foreach($GLOBALS['boutons_admin'] as $page => $detail) { if ($page=='espacement') $num_espacements++; } $larg_espacements = ($largeur-(count($GLOBALS['boutons_admin'])-$num_espacements)*_LARGEUR_ICONES_BANDEAU)/$num_espacements; foreach($GLOBALS['boutons_admin'] as $page => $detail) { if ($page=='espacement') { $res .= "
  •  
  • "; } else { if ($detail->url) $lien_noscript = bandeau_creer_url($detail->url); else $lien_noscript = generer_url_ecrire($page); if ($detail->url2) $lien = bandeau_creer_url($detail->url2); else $lien = $lien_noscript; $res .= icone_bandeau_principal( $detail, $lien, $page, $rubrique, $lien_noscript, $page, $sous_rubrique, $largeur,$decal); } $decal += _LARGEUR_ICONES_BANDEAU; } return "
    "; } // http://doc.spip.org/@icone_bandeau_principal function icone_bandeau_principal($detail, $lien, $rubrique_icone = "vide", $rubrique = "", $lien_noscript = "", $sous_rubrique_icone = "", $sous_rubrique = "",$largeur,$decal){ global $spip_display, $menu_accesskey, $compteur_survol; $alt = $accesskey = $title = ''; $texte = _T($detail->libelle); if ($spip_display == 3){ $title = " title=\"$texte\""; } if (!$menu_accesskey = intval($menu_accesskey)) $menu_accesskey = 1; if ($menu_accesskey < 10) { $accesskey = " accesskey='$menu_accesskey'"; $menu_accesskey++; } else if ($menu_accesskey == 10) { $accesskey = " accesskey='0'"; $menu_accesskey++; } $class_select = " style='width:"._LARGEUR_ICONES_BANDEAU."px' class='menu-item boutons_admin".($sous_rubrique_icone == $sous_rubrique ? " selection" : "")."'"; if (strncasecmp("javascript:",$lien,11)==0) { $a_href = "\nonclick=\"$lien; return false;\" href='$lien_noscript' "; } else { $a_href = "\nhref=\"$lien\""; } $compteur_survol ++; if ($spip_display != 1 AND $spip_display != 4) { $class ='cellule48'; $texte = "icone).">".($spip_display == 3 ? '' : "$texte"); } else { $class = 'cellule-texte'; } return "
  • " . $texte . "\n" . bandeau_principal2($detail->sousmenu,$rubrique, $sous_rubrique, $largeur, $decal) . "
  • \n"; } // http://doc.spip.org/@bandeau_principal2 function bandeau_principal2($sousmenu,$rubrique, $sous_rubrique, $largeur, $decal) { $res = ''; $coeff_decalage = 0; if ($GLOBALS['browser_name']=="MSIE") $coeff_decalage = 1.0; $largeur_maxi_menu = $largeur-100; $largitem_moy = 85; // if (($rubrique == $page) AND (!_SPIP_AJAX)) { $page ?????? if ((!_SPIP_AJAX)) { $class = "visible_au_chargement"; } else { $class = "invisible_au_chargement"; } if($sousmenu) { //offset is not necessary when javascript is active. It can be usefull when js is disabled $offset = (int)round($decal-$coeff_decalage*max(0,($decal+count($sousmenu)*$largitem_moy-$largeur_maxi_menu))); if ($offset<0){ $offset = 0; } $width=0; $max_width=0; foreach($sousmenu as $souspage => $sousdetail) { if ($width+1.25*$largitem_moy>$largeur_maxi_menu){ $res .= "\n"; $res = "