X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Fbandeau.php;fp=www%2Fecrire%2Finc%2Fbandeau.php;h=b6c1828600b17eacadd4731e829109f283acb151;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/inc/bandeau.php b/www/ecrire/inc/bandeau.php new file mode 100644 index 0000000..b6c1828 --- /dev/null +++ b/www/ecrire/inc/bandeau.php @@ -0,0 +1,479 @@ + 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 = "