[ 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 14 define('_LARGEUR_ICONES_BANDEAU', 15 (($GLOBALS['spip_display'] == 3) ? 60 : 80) 16 + (($GLOBALS['spip_ecran'] == 'large') ? 30 : 0) 17 + (($GLOBALS['connect_toutes_rubriques']) ? 0 : 30)); 18 19 /** 20 * une classe definissant un bouton dans la barre du haut de l'interface 21 * privee ou dans un de ses sous menus 22 */ 23 // http://doc.spip.org/@Bouton 24 class Bouton { 25 var $icone; /* l'icone a mettre dans le bouton */ 26 var $libelle; /* le nom de l'entree d'i18n associe */ 27 var $url= null; /* l'url de la page (null => ?exec=nom) */ 28 var $urlArg= null; /* arguments supplementaires de l'url */ 29 var $url2= null; /* url jscript */ 30 var $target= null; /* pour ouvrir dans une fenetre a part */ 31 var $sousmenu= null;/* sous barre de boutons / onglets */ 32 33 // http://doc.spip.org/@Bouton 34 function Bouton($icone, $libelle, $url=null, $urlArg=null, 35 $url2=null, $target=null) { 36 $this->icone = $icone; 37 $this->libelle= $libelle; 38 $this->url = $url; 39 $this->urlArg = $urlArg; 40 $this->url2 = $url2; 41 $this->target = $target; 42 } 43 } 44 45 /** 46 * definir la liste des boutons du haut et de ses sous-menus 47 * On defini les boutons a metrtre selon les droits de l'utilisateur 48 * puis on balance le tout au pipeline "ajouter_boutons" pour que des plugins 49 * puissent y mettre leur grain de sel 50 */ 51 // http://doc.spip.org/@definir_barre_boutons 52 function definir_barre_boutons() { 53 global $boutons_admin; 54 55 global $REQUEST_URI, $HTTP_HOST; 56 global $spip_lang, $spip_lang_rtl, $spip_lang_left, $spip_lang_right; 57 58 $boutons_admin=array( 59 'accueil' => new Bouton('asuivre-48.png', 'icone_a_suivre'), 60 'naviguer' => new Bouton("documents-48$spip_lang_rtl.png", 61 'icone_edition_site'), 62 'forum' => new Bouton('messagerie-48.png', 'titre_forum'), 63 'auteurs' => new Bouton('redacteurs-48.png', 'icone_auteurs') 64 ); 65 66 if ($GLOBALS['connect_statut'] == "0minirezo" 67 AND $GLOBALS['meta']["activer_statistiques"] != 'non') { 68 $boutons_admin['statistiques_visites']= 69 new Bouton('statistiques-48.png', 'icone_statistiques_visites'); 70 } 71 72 if ($GLOBALS['connect_statut'] == '0minirezo') { 73 $boutons_admin['configuration']= 74 new Bouton('administration-48.png', 'icone_configuration_site'); 75 } 76 77 $boutons_admin['espacement']=null; 78 79 $urlAide= generer_url_ecrire('aide_index')."&var_lang=$spip_lang"; 80 $boutons_admin['aide_index']= 81 new Bouton('aide-48'.$spip_lang_rtl.'.png', 'icone_aide_ligne', 82 $urlAide, null, "javascript:window.open('$urlAide', 'spip_aide', 'scrollbars=yes,resizable=yes,width=740,height=580');", 'aide_spip'); 83 84 $boutons_admin['visiter']= 85 new Bouton("visiter-48$spip_lang_rtl.png", 'icone_visiter_site', 86 url_de_base()); 87 88 // les sous menu des boutons, que si on est admin 89 if ($GLOBALS['connect_statut'] == '0minirezo' 90 AND $GLOBALS['connect_toutes_rubriques']) { 91 92 // sous menu edition 93 94 $sousmenu=array(); 95 96 $nombre_articles = spip_num_rows(spip_query("SELECT art.id_article FROM spip_articles AS art, spip_auteurs_articles AS lien WHERE lien.id_auteur = '".$GLOBALS['connect_id_auteur']."' AND art.id_article = lien.id_article LIMIT 1")); 97 if ($nombre_articles > 0) { 98 $sousmenu['articles_page']= 99 new Bouton('article-24.gif', 'icone_tous_articles'); 100 } 101 102 if ($GLOBALS['meta']["activer_breves"] != "non") { 103 $sousmenu['breves']= 104 new Bouton('breve-24.gif', 'icone_breves'); 105 } 106 107 if ($GLOBALS['options'] == "avancees"){ 108 $articles_mots = $GLOBALS['meta']['articles_mots']; 109 if ($articles_mots != "non") { 110 $sousmenu['mots_tous']= 111 new Bouton('mot-cle-24.gif', 'icone_mots_cles'); 112 } 113 114 $activer_sites = $GLOBALS['meta']['activer_sites']; 115 if ($activer_sites<>'non') 116 $sousmenu['sites_tous']= 117 new Bouton('site-24.gif', 'icone_sites_references'); 118 119 $n = spip_num_rows(spip_query("SELECT id_document FROM spip_documents_rubriques LIMIT 1")); 120 if ($n) { 121 $sousmenu['documents_liste']= 122 new Bouton('doc-24.gif', 'icone_doc_rubrique'); 123 } 124 } 125 $boutons_admin['naviguer']->sousmenu= $sousmenu; 126 127 // sous menu forum 128 129 $sousmenu=array(); 130 131 if ($GLOBALS['meta']['forum_prive_admin'] == 'oui') 132 $sousmenu['forum_admin']= 133 new Bouton('forum-admin-24.gif', 'icone_forum_administrateur'); 134 135 if (spip_num_rows(spip_query("SELECT id_forum FROM spip_forum LIMIT 1"))) 136 $sousmenu['controle_forum']= 137 new Bouton("suivi-forum-24.gif", "icone_suivi_forums"); 138 if (spip_num_rows(spip_query("SELECT id_signature FROM spip_signatures LIMIT 1"))) 139 $sousmenu['controle_petition']= 140 new Bouton("suivi-petition-24.gif", "icone_suivi_pettions"); 141 142 if ($sousmenu) 143 $boutons_admin['forum']->sousmenu= $sousmenu; 144 145 146 // sous menu auteurs 147 148 $sousmenu=array(); 149 150 $n = spip_num_rows(spip_query("SELECT id_auteur FROM spip_auteurs WHERE statut='6forum' LIMIT 1")); 151 152 if ($n) 153 $sousmenu['auteurs'] = 154 new Bouton("fiche-perso.png", 'icone_afficher_visiteurs', null, "statut=6forum"); 155 156 $sousmenu['auteur_infos']= 157 new Bouton("auteur-24.gif", "icone_creer_nouvel_auteur", null, 'new=oui'); 158 159 $boutons_admin['auteurs']->sousmenu= $sousmenu; 160 161 // sous menu statistiques 162 if (isset($boutons_admin['statistiques_visites'])) { 163 $sousmenu=array( 164 'espacement' => null, 165 'statistiques_repartition' => 166 new Bouton("rubrique-24.gif", "icone_repartition_visites") 167 ); 168 169 if ($GLOBALS['meta']['multi_articles'] == 'oui' 170 OR $GLOBALS['meta']['multi_rubriques'] == 'oui') 171 $sousmenu['statistiques_lang']= 172 new Bouton("langues-24.gif", "onglet_repartition_lang"); 173 174 $sousmenu['statistiques_referers']= 175 new Bouton("referers-24.gif", "titre_liens_entrants"); 176 177 $boutons_admin['statistiques_visites']->sousmenu= $sousmenu; 178 } 179 180 // sous menu configuration 181 182 $sousmenu=array( 183 'config_lang' => 184 new Bouton("langues-24.gif", "icone_gestion_langues"), 185 'espacement' => null 186 ); 187 188 if ($GLOBALS['options'] == "avancees") { 189 $sousmenu['admin_tech']= 190 new Bouton("base-24.gif", "icone_maintenance_site"); 191 $sousmenu['admin_vider']= 192 new Bouton("cache-24.gif", "onglet_vider_cache"); 193 if ((@file_exists(_DIR_PLUGINS))&&(is_dir(_DIR_PLUGINS))) 194 $sousmenu['admin_plugin']= 195 new Bouton("plugin-24.gif", "icone_admin_plugin"); 196 } else { 197 $sousmenu['admin_tech']= 198 new Bouton("base-24.gif", "icone_sauver_site"); 199 } 200 201 $boutons_admin['configuration']->sousmenu= $sousmenu; 202 203 } // fin si admin 204 205 $boutons_admin = pipeline('ajouter_boutons', $boutons_admin); 206 } 207 208 /** 209 * definir la liste des onglets dans une page de l'interface privee 210 * on passe la main au pipeline "ajouter_onglets". 211 */ 212 // http://doc.spip.org/@definir_barre_onglets 213 function definir_barre_onglets($rubrique) { 214 global $id_auteur, $connect_id_auteur, $connect_statut, $statut_auteur; 215 216 $onglets=array(); 217 218 switch($rubrique) { 219 case 'statistiques_repartition': 220 case 'repartition': 221 if ($GLOBALS['meta']['multi_articles'] == 'oui' OR $GLOBALS['meta']['multi_rubriques'] == 'oui') { 222 $onglets['rubriques']= 223 new Bouton('rubrique-24.gif', 'onglet_repartition_rubrique'); 224 $onglets['langues']= 225 new Bouton('langues-24.gif', 'onglet_repartition_lang'); 226 } 227 break; 228 229 case 'rep_depuis': 230 $onglets['statistiques_lang']= 231 new Bouton(null, 'icone_repartition_actuelle'); 232 $onglets['debut']= 233 new Bouton(null, 'onglet_repartition_debut', 234 generer_url_ecrire("statistiques_lang","critere=debut")); 235 break; 236 237 case 'stat_depuis': 238 $onglets['popularite']= 239 new Bouton(null, 'icone_repartition_actuelle', 240 generer_url_ecrire("statistiques_repartition","")); 241 $onglets['debut']= 242 new Bouton(null, 'onglet_repartition_debut', 243 generer_url_ecrire("statistiques_repartition","critere=debut")); 244 break; 245 246 case 'stat_referers': 247 $onglets['jour']= 248 new Bouton(null, 'date_aujourdhui', 249 generer_url_ecrire("statistiques_referers","")); 250 $onglets['veille']= 251 new Bouton(null, 'date_hier', 252 generer_url_ecrire("statistiques_referers","jour=veille")); 253 break; 254 255 case 'administration': 256 $onglets['sauver']= 257 new Bouton('base-24.gif', 'onglet_save_restaur_base', 258 generer_url_ecrire("admin_tech","")); 259 $onglets['effacer']= 260 new Bouton('supprimer.gif', 'onglet_affacer_base', 261 generer_url_ecrire("admin_effacer","")); 262 break; 263 264 case 'auteur': 265 $onglets['auteur']= 266 new Bouton('auteur-24.gif', 'onglet_auteur', 267 generer_url_ecrire("auteur_infos","id_auteur=$id_auteur")); 268 $onglets['infos']= 269 new Bouton('fiche-perso-24.gif', 'icone_informations_personnelles', 270 generer_url_ecrire("auteur_infos","id_auteur=$id_auteur")); 271 break; 272 273 case 'configuration': 274 $onglets['contenu']= 275 new Bouton('racine-site-24.gif', 'onglet_contenu_site', 276 generer_url_ecrire("configuration")); 277 $onglets['interactivite']= 278 new Bouton('forum-interne-24.gif', 'onglet_interactivite', 279 generer_url_ecrire("config_contenu")); 280 $onglets['fonctions']= 281 new Bouton('image-24.gif', 'onglet_fonctions_avances', 282 generer_url_ecrire("config_fonctions")); 283 break; 284 285 case 'config_lang': 286 $onglets['langues']= 287 new Bouton('langues-24.gif', 'info_langue_principale', 288 generer_url_ecrire("config_lang")); 289 $onglets['multi']= 290 new Bouton('traductions-24.gif', 'info_multilinguisme', 291 generer_url_ecrire("config_multilang")); 292 $onglets['fichiers']= 293 new Bouton('traductions-24.gif', 'module_fichiers_langues', 294 generer_url_ecrire("lang_raccourcis")); 295 break; 296 297 // inutilise 298 case 'suivi_forum': 299 break; 300 301 } 302 303 $onglets = pipeline('ajouter_onglets', array('data'=>$onglets,'args'=>$rubrique)); 304 305 return $onglets; 306 } 307 308 // http://doc.spip.org/@barre_onglets 309 function barre_onglets($rubrique, $ongletCourant){ 310 $onglets= definir_barre_onglets($rubrique); 311 if(count($onglets)==0) return ''; 312 313 $res = debut_onglet(); 314 315 foreach($onglets as $exec => $onglet) { 316 $url= $onglet->url ? $onglet->url : generer_url_ecrire($exec); 317 $res .= onglet(_T($onglet->libelle), $url, $exec, $ongletCourant, $onglet->icone); 318 } 319 $res .= fin_onglet(); 320 return $res; 321 } 322 323 // http://doc.spip.org/@definir_barre_gadgets 324 function definir_barre_gadgets() { 325 global $barre_gadgets; 326 $barre_gadgets= array( 327 // ????????? 328 ); 329 } 330 331 332 // http://doc.spip.org/@bandeau_principal 333 function bandeau_principal($rubrique, $sous_rubrique, $largeur) 334 { 335 $res = ''; 336 foreach($GLOBALS['boutons_admin'] as $page => $detail) { 337 if ($page=='espacement') { 338 $res .= "<td> </td>"; 339 } else { 340 if ($detail->url) 341 $lien_noscript = $detail->url; 342 else 343 $lien_noscript = generer_url_ecrire($page); 344 345 if ($detail->url2) 346 $lien = $detail->url2; 347 else 348 $lien = $lien_noscript; 349 350 $res .= icone_bandeau_principal( 351 _T($detail->libelle), 352 $lien, 353 $detail->icone, 354 $page, 355 $rubrique, 356 $lien_noscript, 357 $page, 358 $sous_rubrique); 359 } 360 } 361 362 return "<div class='bandeau-icones'>\n<table width='$largeur' cellpadding='0' cellspacing='0' border='0'><tr>\n$res</tr></table></div>\n"; 363 } 364 365 // http://doc.spip.org/@icone_bandeau_principal 366 function icone_bandeau_principal($texte, $lien, $fond, $rubrique_icone = "vide", $rubrique = "", $lien_noscript = "", $sous_rubrique_icone = "", $sous_rubrique = ""){ 367 global $spip_display, $menu_accesskey, $compteur_survol; 368 369 $alt = ''; 370 $title = ''; 371 if ($spip_display == 1){ 372 } 373 else if ($spip_display == 3){ 374 $title = "title=\"$texte\""; 375 $alt = $texte; 376 } 377 378 if (!$menu_accesskey = intval($menu_accesskey)) $menu_accesskey = 1; 379 if ($menu_accesskey < 10) { 380 $accesskey = " accesskey='$menu_accesskey'"; 381 $menu_accesskey++; 382 } 383 else if ($menu_accesskey == 10) { 384 $accesskey = " accesskey='0'"; 385 $menu_accesskey++; 386 } 387 388 $class_select = ($sous_rubrique_icone == $sous_rubrique) ? " class='selection'" : ''; 389 390 if (eregi("^javascript:",$lien)) { 391 $a_href = "\nonclick=\"$lien; return false;\" href='$lien_noscript' "; 392 } 393 else { 394 $a_href = "\nhref=\"$lien\""; 395 } 396 397 $compteur_survol ++; 398 399 if ($spip_display != 1 AND $spip_display != 4) { 400 $class ='cellule48'; 401 $texte = http_img_pack($fond, $alt, "$title width='48' height='48'") 402 . ($spip_display == 3 ? '' : "<span>$texte</span>"); 403 } else { 404 $class = 'cellule-texte'; 405 } 406 407 return "<td style='width: " 408 . _LARGEUR_ICONES_BANDEAU 409 . "px' class='$class' onmouseover=\"changestyle('bandeau$rubrique_icone');\"><a$accesskey$a_href$class_select>" 410 . $texte 411 . "</a></td>\n"; 412 } 413 414 // http://doc.spip.org/@bandeau_principal2 415 function bandeau_principal2($rubrique, $sous_rubrique, $largeur) { 416 global $spip_lang_left; 417 418 $res = ''; 419 $decal=0; 420 $coeff_decalage = 0; 421 if ($GLOBALS['browser_name']=="MSIE") $coeff_decalage = 1.0; 422 $largeur_maxi_menu = $largeur-100; 423 $largitem_moy = 85; 424 425 foreach($GLOBALS['boutons_admin'] as $page => $detail) { 426 if (($rubrique == $page) AND (!_SPIP_AJAX)) { 427 $class = "visible_au_chargement"; 428 } else { 429 $class = "invisible_au_chargement"; 430 } 431 432 $sousmenu= $detail->sousmenu; 433 if($sousmenu) { 434 $offset = (int)round($decal-$coeff_decalage*max(0,($decal+count($sousmenu)*$largitem_moy-$largeur_maxi_menu))); 435 if ($offset<0){ $offset = 0; } 436 437 $res .= "<div class='$class bandeau' id='bandeau$page' style='position: absolute; $spip_lang_left: ".$offset."px;'><div class='bandeau_sec'><table class='gauche'><tr>\n"; 438 $width=0; 439 foreach($sousmenu as $souspage => $sousdetail) { 440 if ($width+1.25*$largitem_moy>$largeur_maxi_menu){$res .= "</tr><tr>\n";$width=0;} 441 if($souspage=='espacement') { 442 if ($width>0){ 443 $res .= "<td class='separateur'></td>\n"; 444 $largitem = 0; 445 } 446 } else { 447 list($html,$largitem) = icone_bandeau_secondaire (_T($sousdetail->libelle), generer_url_ecrire($sousdetail->url?$sousdetail->url:$souspage, $sousdetail->urlArg), $sousdetail->icone, $souspage, $sous_rubrique); 448 $res .= $html; 449 } 450 $width+=$largitem+10; 451 } 452 $res .= "</tr></table></div></div>"; 453 } 454 455 $decal += _LARGEUR_ICONES_BANDEAU; 456 } 457 return $res; 458 } 459 460 // http://doc.spip.org/@bandeau_double_rangee 461 function bandeau_double_rangee($rubrique, $sous_rubrique, $largeur) 462 { 463 global $spip_lang_left; 464 definir_barre_boutons(); 465 466 return "<div class='invisible_au_chargement' style='position: absolute; height: 0px; visibility: hidden;'><a href='oo'>"._T("access_mode_texte")."</a></div>" 467 . "<div id='haut-page'>" 468 . "<div id='bandeau-principal' align='center'>\n" 469 . bandeau_principal($rubrique, $sous_rubrique, $largeur) 470 . "<table width='$largeur' cellpadding='0' cellspacing='0'><tr><td>" 471 . "<div style='text-align: $spip_lang_left; width: ".$largeur."px; position: relative; z-index: 2000;'>" 472 . bandeau_principal2($rubrique, $sous_rubrique, $largeur) 473 . "</div>" 474 . "</td></tr></table>" 475 . "</div>\n"; 476 } 477 478 479 // http://doc.spip.org/@icone_bandeau_secondaire 480 function icone_bandeau_secondaire($texte, $lien, $fond, $rubrique_icone = "vide", $rubrique, $aide=""){ 481 global $spip_display; 482 global $menu_accesskey, $compteur_survol; 483 484 $alt = ''; 485 $title = ''; 486 $accesskey = ''; 487 if ($spip_display == 1) { 488 //$hauteur = 20; 489 $largeur = 80; 490 } 491 else if ($spip_display == 3){ 492 //$hauteur = 26; 493 $largeur = 40; 494 $title = "title=\"$texte\""; 495 $alt = $texte; 496 } 497 else { 498 //$hauteur = 68; 499 if (count(explode(" ", $texte)) > 1) $largeur = 80; 500 else $largeur = 70; 501 $alt = ""; 502 } 503 if ($aide AND $spip_display != 3) { 504 $largeur += 50; 505 //$texte .= aide($aide); 506 } 507 if ($spip_display != 3 AND strlen($texte)>16) $largeur += 20; 508 509 if (!$menu_accesskey = intval($menu_accesskey)) $menu_accesskey = 1; 510 if ($menu_accesskey < 10) { 511 $accesskey = " accesskey='$menu_accesskey'"; 512 $menu_accesskey++; 513 } 514 else if ($menu_accesskey == 10) { 515 $accesskey = " accesskey='0'"; 516 $menu_accesskey++; 517 } 518 if ($spip_display == 3) $accesskey_icone = $accesskey; 519 520 $class_select = ($rubrique_icone != $rubrique) ? '' : " class='selection'"; 521 $compteur_survol ++; 522 523 $a_href = "<a$accesskey href=\"$lien\"$class_select>"; 524 525 if ($spip_display != 1) { 526 $res = "<td class='cellule36' style='width: ".$largeur."px;'>"; 527 $res .= $a_href . 528 http_img_pack("$fond", $alt, "$title"); 529 if ($aide AND $spip_display != 3) $res .= aide($aide)." "; 530 if ($spip_display != 3) { 531 $res .= "<span>$texte</span>"; 532 } 533 $res .= "</a></td>\n"; 534 } 535 else $res = "<td style='width: $largeur" . "px' class='cellule-texte'>$a_href". $texte . "</a></td>\n"; 536 537 return array($res, $largeur); 538 } 539 540 541 ?>
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 |
![]() |