[ 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 if (!defined("_ECRIRE_INC_VERSION")) return; 14 global $numero_block, $compteur_block; 15 16 $numero_block = array(); 17 18 $compteur_block = 0; 19 20 if (_request('var_ajaxcharset') || _request("iframe")=="iframe") 21 $compteur_block = rand(1,2500)*500; // astuce idiote pour que les blocs ahah n'aient pas les memes numeros de triangle que la page principale (sinon le triangle d'un bloc importe par ahah agit sur un autre triangle... vivement jquery...). 22 23 // http://doc.spip.org/@block_parfois_visible 24 function block_parfois_visible($nom, $invite, $masque, $style='', $visible=false) 25 { 26 if (!$GLOBALS['browser_layer']) return ''; 27 28 $bouton = $visible 29 ? bouton_block_visible($nom) 30 : bouton_block_invisible($nom); 31 32 $nom = 'Layer' . renomme_block($nom); 33 34 // initialement invisible, seulement si on sait rendre visible 35 if (!$visible AND _SPIP_AJAX) 36 $visible = 'display:none;'; 37 else $visible = 'display:block;'; 38 39 return "\n" 40 . "<div style='$style'>" 41 . $bouton 42 . $invite 43 . '</div>' 44 . "<div id='$nom' style='$visible'>" 45 . $masque 46 . '<div style="clear: both;"></div></div>'; 47 } 48 49 50 // http://doc.spip.org/@renomme_block 51 function renomme_block($nom_block) 52 { 53 global $numero_block, $compteur_block; 54 if (!isset($numero_block[$nom_block])){ 55 $compteur_block++; 56 $numero_block[$nom_block] = $compteur_block; 57 } 58 return $numero_block["$nom_block"]; 59 } 60 61 // http://doc.spip.org/@debut_block_visible 62 function debut_block_visible($nom_block){ 63 global $browser_layer; 64 if (!$browser_layer) return ''; 65 return "<div id='Layer".renomme_block($nom_block)."' style='display: block;'>"; 66 67 } 68 69 // http://doc.spip.org/@debut_block_invisible 70 function debut_block_invisible($nom_block){ 71 global $browser_layer; 72 if (!$browser_layer) return ''; 73 74 // si on n'accepte pas js, ne pas fermer 75 if (!_SPIP_AJAX) 76 return debut_block_visible($nom_block); 77 78 return "<div id='Layer".renomme_block($nom_block)."' style='display: none;'>"; 79 } 80 81 // http://doc.spip.org/@fin_block 82 function fin_block() { 83 if ($GLOBALS['browser_layer']) 84 return "<div style='clear: both;'></div></div>"; 85 } 86 87 // http://doc.spip.org/@bouton_block_invisible 88 function bouton_block_invisible($nom_block, $icone='') { 89 global $numero_block, $compteur_block, $browser_layer, $spip_lang_rtl; 90 if (!$browser_layer) return ''; 91 $blocks = explode(",", $nom_block); 92 $couches = array(); 93 for ($index=0; $index < count($blocks); $index ++){ 94 $nom_block = $blocks[$index]; 95 96 if (!isset($numero_block[$nom_block])){ 97 $compteur_block++; 98 $numero_block[$nom_block] = $compteur_block; 99 } 100 101 if (!$icone) { 102 $icone = "deplierhaut$spip_lang_rtl.gif"; 103 $couches[] = array($numero_block[$nom_block],0); 104 } 105 else 106 $couches[] = array($numero_block[$nom_block],1); 107 } 108 return produire_acceder_couche($couches, $numero_block[$nom_block], $icone); 109 } 110 111 112 // http://doc.spip.org/@bouton_block_visible 113 function bouton_block_visible($nom_block){ 114 global $numero_block, $compteur_block, $browser_layer, $spip_lang_rtl; 115 if (!$browser_layer) return ''; 116 $blocks = explode(",", $nom_block); 117 $couches = array(); 118 for ($index=0; $index < count($blocks); $index ++){ 119 $nom_block = $blocks[$index]; 120 121 if (!isset($numero_block[$nom_block])){ 122 $compteur_block++; 123 $numero_block[$nom_block] = $compteur_block; 124 } 125 126 $couches[] = array($numero_block[$nom_block],0); 127 128 } 129 130 return produire_acceder_couche($couches, $numero_block[$nom_block], "deplierbas.gif"); 131 } 132 133 // http://doc.spip.org/@produire_acceder_couche 134 function produire_acceder_couche($couches, $nom, $icone) { 135 136 global $spip_lang_rtl; 137 // ne rien afficher si js desactive 138 if (!_SPIP_AJAX) 139 return ''; 140 141 $onclick = array(); 142 foreach($couches as $i=>$couche) 143 $onclick[] = 'swap_couche(' . $couche[0] 144 . ",'$spip_lang_rtl','" 145 . _DIR_IMG_PACK."'," 146 . $couche[1].');'; 147 148 $t = _T('info_deplier'); 149 150 return 151 '<img id="triangle'.$nom.'" src="' 152 . _DIR_IMG_PACK . $icone 153 . '" alt="' 154 . $t 155 . '" title="' 156 . $t 157 . '" class="swap-couche" 158 onclick="' 159 . join(' ',$onclick).'" />'; 160 161 } 162 163 // 164 // Tests sur le nom du butineur 165 // 166 // http://doc.spip.org/@verif_butineur 167 function verif_butineur() { 168 169 global $browser_name, $browser_version; 170 global $browser_description, $browser_rev, $browser_layer, $browser_barre; 171 ereg("^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$", $_SERVER['HTTP_USER_AGENT'], $match); 172 $browser_name = $match[1]; 173 $browser_version = $match[2]; 174 $browser_description = $match[3]; 175 $browser_layer = ''; 176 $browser_barre = ''; 177 178 if (!eregi("opera", $browser_description)&&eregi("opera", $browser_name)) { 179 $browser_name = "Opera"; 180 $browser_version = $match[2]; 181 $browser_layer = (($browser_version < 7) ? '' : http_script('', _DIR_JAVASCRIPT . 'layer.js','')); 182 $browser_barre = ($browser_version >= 8.5); 183 } 184 else if (eregi("opera", $browser_description)) { 185 eregi("Opera ([^\ ]*)", $browser_description, $match); 186 $browser_name = "Opera"; 187 $browser_version = $match[1]; 188 $browser_layer = (($browser_version < 7) ? '' : http_script('', _DIR_JAVASCRIPT . 'layer.js','')); 189 $browser_barre = ($browser_version >= 8.5); 190 } 191 else if (eregi("msie", $browser_description)) { 192 eregi("MSIE ([^;]*)", $browser_description, $match); 193 $browser_name = "MSIE"; 194 $browser_version = $match[1]; 195 $browser_layer = (($browser_version < 5) ? '' : http_script('', _DIR_JAVASCRIPT . 'layer.js','')); 196 $browser_barre = ($browser_version >= 5.5); 197 } 198 else if (eregi("KHTML", $browser_description) && 199 eregi("Safari/([^;]*)", $browser_description, $match)) { 200 $browser_name = "Safari"; 201 $browser_version = $match[1]; 202 $browser_layer = http_script('', _DIR_JAVASCRIPT . 'layer.js',''); 203 $browser_barre = ($browser_version >= 5.0); 204 } 205 else if (eregi("mozilla", $browser_name) AND $browser_version >= 5) { 206 $browser_layer = http_script('', _DIR_JAVASCRIPT . 'layer.js',''); 207 // Numero de version pour Mozilla "authentique" 208 if (ereg("rv:([0-9]+\.[0-9]+)", $browser_description, $match)) 209 $browser_rev = doubleval($match[1]); 210 // Autres Gecko => equivalents 1.4 par defaut (Galeon, etc.) 211 else if (strpos($browser_description, "Gecko") and !strpos($browser_description, "KHTML")) 212 $browser_rev = 1.4; 213 // Machins quelconques => equivalents 1.0 par defaut (Konqueror, etc.) 214 else $browser_rev = 1.0; 215 $browser_barre = $browser_rev >= 1.3; 216 } 217 218 if (!$browser_name) $browser_name = "Mozilla"; 219 } 220 221 222 // teste si accepte le SVG et pose un cookie en cas de demande explicite 223 // (fonction a appeler en debut de page, avant l'envoi de contenu) 224 // http://doc.spip.org/@flag_svg 225 function flag_svg() { 226 global $browser_name, $browser_rev; 227 228 // SVG est une preference definie par le visiteur ? 229 if (_request('var_svg') == 'oui') { 230 include_spip('inc/cookie'); 231 spip_setcookie('spip_svg', 'oui', time() + 365 * 24 * 3600); 232 return true; 233 } 234 if (_request('var_svg') == 'non') { 235 include_spip('inc/cookie'); 236 spip_setcookie('spip_svg', 'non', time() + 365 * 24 * 3600); 237 return false; 238 } 239 if ($_COOKIE['spip_svg'] == 'oui') 240 return true; 241 if ($_COOKIE['spip_svg'] == 'non') 242 return false; 243 244 // Sinon, proceder a l'autodetection 245 if (!$browser_name) 246 verif_butineur(); 247 return ($browser_name == "Mozilla" AND $browser_rev >= 1.8); 248 } 249 250 verif_butineur(); 251 252 $GLOBALS['browser_caret'] = (!$GLOBALS['browser_barre'] ? '' : " 253 onselect='storeCaret(this);' 254 onclick='storeCaret(this);' 255 onkeyup='storeCaret(this);' 256 ondblclick='storeCaret(this);'"); 257 258 // Hack pour forcer largeur des formo/forml sous Mozilla >= 1.7 259 // meme principe que le behavior win_width.htc pour MSIE 260 $GLOBALS['browser_verifForm'] = (eregi("mozilla", $GLOBALS["browser_name"]) AND $GLOBALS["browser_rev"] >= 1.7) ? "verifForm();" : ""; 261 262 // http://doc.spip.org/@http_script 263 function http_script($script, $src='', $noscript='') { 264 return '<script type="text/javascript"' 265 . ($src ? " src=\"$src\"" : '') 266 . ">" 267 . (!$script ? '' : 268 ("<!--\n" . 269 preg_replace(',</([^>]*)>,','<\/\1>', $script) . 270 "\n//-->")) 271 . "</script>\n" 272 . (!$noscript ? '' : "<noscript>\n\t$noscript\n</noscript>\n"); 273 } 274 275 ?>
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 |
![]() |