\n" . $contenu . "\n" . fin_block() . fin_cadre(); } // http://code.spip.net/@block_parfois_visible function block_parfois_visible($nom, $invite, $masque, $style = '', $visible = false) { return "\n" . bouton_block_depliable($invite, $visible, $nom) . debut_block_depliable($visible, $nom) . $masque . fin_block(); } // http://code.spip.net/@debut_block_depliable function debut_block_depliable($deplie, $id = "") { $class = ' blocdeplie'; // si on n'accepte pas js, ne pas fermer if (!$deplie) { $class = " blocreplie"; } return "
"; } // http://code.spip.net/@fin_block function fin_block() { return "
\n
"; } // $texte : texte du bouton // $deplie : true (deplie) ou false (plie) ou -1 (inactif) ou 'incertain' pour que le bouton s'auto init au chargement de la page // $ids : id des div lies au bouton (facultatif, par defaut c'est le div.bloc_depliable qui suit) // http://code.spip.net/@bouton_block_depliable function bouton_block_depliable($texte, $deplie, $ids = "") { $bouton_id = 'b' . substr(md5($texte . microtime()), 0, 8); $class = ($deplie === true) ? " deplie" : (($deplie == -1) ? " impliable" : " replie"); if (strlen($ids)) { $cible = explode(',', $ids); $cible = '#' . implode(",#", $cible); } else { $cible = "#$bouton_id + div.bloc_depliable"; } $b = (strpos($texte, "" // une ancre pour rendre accessible au clavier le depliage du sous bloc . "" . "$texte" . http_script(($deplie === 'incertain') ? "jQuery(function($){if ($('$cible').is(':visible')) { $('#$bouton_id').addClass('deplie').removeClass('replie'); }});" : ''); } // // Tests sur le nom du butineur // // http://code.spip.net/@verif_butineur function verif_butineur() { preg_match(",^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$,", $_SERVER['HTTP_USER_AGENT'], $match); $GLOBALS['browser_name'] = $match[1]; $GLOBALS['browser_version'] = $match[2]; $GLOBALS['browser_description'] = $match[3]; $GLOBALS['browser_layer'] = ' '; // compat avec vieux scripts qui testent la valeur $GLOBALS['browser_barre'] = ''; if (!preg_match(",opera,i", $GLOBALS['browser_description']) && preg_match(",opera,i", $GLOBALS['browser_name'])) { $GLOBALS['browser_name'] = "Opera"; $GLOBALS['browser_version'] = $match[2]; $GLOBALS['browser_barre'] = ($GLOBALS['browser_version'] >= 8.5); } else { if (preg_match(",opera,i", $GLOBALS['browser_description'])) { preg_match(",Opera ([^\ ]*),i", $GLOBALS['browser_description'], $match); $GLOBALS['browser_name'] = "Opera"; $GLOBALS['browser_version'] = $match[1]; $GLOBALS['browser_barre'] = ($GLOBALS['browser_version'] >= 8.5); } else { if (preg_match(",msie,i", $GLOBALS['browser_description'])) { preg_match(",MSIE ([^;]*),i", $GLOBALS['browser_description'], $match); $GLOBALS['browser_name'] = "MSIE"; $GLOBALS['browser_version'] = $match[1]; $GLOBALS['browser_barre'] = ($GLOBALS['browser_version'] >= 5.5); } else { if (preg_match(",KHTML,i", $GLOBALS['browser_description']) && preg_match(",Safari/([^;]*),", $GLOBALS['browser_description'], $match) ) { $GLOBALS['browser_name'] = "Safari"; $GLOBALS['browser_version'] = $match[1]; $GLOBALS['browser_barre'] = ($GLOBALS['browser_version'] >= 5.0); } else { if (preg_match(",mozilla,i", $GLOBALS['browser_name']) and $GLOBALS['browser_version'] >= 5) { // Numero de version pour Mozilla "authentique" if (preg_match(",rv:([0-9]+\.[0-9]+),", $GLOBALS['browser_description'], $match)) { $GLOBALS['browser_rev'] = doubleval($match[1]); } // Autres Gecko => equivalents 1.4 par defaut (Galeon, etc.) else { if (strpos($GLOBALS['browser_description'], "Gecko") and !strpos($GLOBALS['browser_description'], "KHTML") ) { $GLOBALS['browser_rev'] = 1.4; } // Machins quelconques => equivalents 1.0 par defaut (Konqueror, etc.) else { $GLOBALS['browser_rev'] = 1.0; } } $GLOBALS['browser_barre'] = $GLOBALS['browser_rev'] >= 1.3; } } } } } if (!$GLOBALS['browser_name']) { $GLOBALS['browser_name'] = "Mozilla"; } } verif_butineur();