X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Flayer.php;fp=www%2Fecrire%2Finc%2Flayer.php;h=db73d0d98267339fe55ec0e382524bb5c763ca73;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/inc/layer.php b/www/ecrire/inc/layer.php new file mode 100644 index 0000000..db73d0d --- /dev/null +++ b/www/ecrire/inc/layer.php @@ -0,0 +1,145 @@ +\n" + . $contenu + . "\n" + . fin_block() + . fin_cadre(); +} + +// http://doc.spip.org/@block_parfois_visible +function block_parfois_visible($nom, $invite, $masque, $style='', $visible=false){ + if (!$GLOBALS['browser_layer']) return ''; + + return "\n" + . bouton_block_depliable($invite,$visible,$nom) + . debut_block_depliable($visible,$nom) + . $masque + . fin_block(); +} + +// http://doc.spip.org/@debut_block_depliable +function debut_block_depliable($deplie,$id=""){ + $class=' blocdeplie'; + // si on n'accepte pas js, ne pas fermer + if (_SPIP_AJAX AND !$deplie) + $class=" blocreplie"; + return "
"; +} +// http://doc.spip.org/@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://doc.spip.org/@bouton_block_depliable +function bouton_block_depliable($texte,$deplie,$ids=""){ + if (!_SPIP_AJAX) $deplie=true; // forcer un bouton deplie si pas de js + $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"; + } + + return "
" + // une ancre pour rendre accessible au clavier le depliage du sous bloc + // on ne la mets pas en interface "accessible", dans laquelle il n'y pas de sous bloc ... un comble ! + . ($GLOBALS['spip_display']==4?"":"") + . "$texte
" + . http_script( ($deplie==='incertain') + ? "jQuery(document).ready(function(){if (jQuery('$cible').is(':visible')) $('#$bouton_id').addClass('deplie').removeClass('replie');});" + : ''); +} + +// +// Tests sur le nom du butineur +// +// http://doc.spip.org/@verif_butineur +function verif_butineur() { + + global $browser_name, $browser_version; + global $browser_description, $browser_rev, $browser_layer, $browser_barre; + preg_match(",^([A-Za-z]+)/([0-9]+\.[0-9]+) (.*)$,", $_SERVER['HTTP_USER_AGENT'], $match); + $browser_name = $match[1]; + $browser_version = $match[2]; + $browser_description = $match[3]; + $browser_layer = ''; + $browser_barre = ''; + + if (!preg_match(",opera,i", $browser_description)&&preg_match(",opera,i", $browser_name)) { + $browser_name = "Opera"; + $browser_version = $match[2]; + $browser_layer = (($browser_version < 7) ? '' : http_script('', 'layer.js','')); + $browser_barre = ($browser_version >= 8.5); + } + else if (preg_match(",opera,i", $browser_description)) { + preg_match(",Opera ([^\ ]*),i", $browser_description, $match); + $browser_name = "Opera"; + $browser_version = $match[1]; + $browser_layer = (($browser_version < 7) ? '' : http_script('', 'layer.js','')); + $browser_barre = ($browser_version >= 8.5); + } + else if (preg_match(",msie,i", $browser_description)) { + preg_match(",MSIE ([^;]*),i", $browser_description, $match); + $browser_name = "MSIE"; + $browser_version = $match[1]; + $browser_layer = (($browser_version < 5) ? '' : http_script('', 'layer.js','')); + $browser_barre = ($browser_version >= 5.5); + } + else if (preg_match(",KHTML,i", $browser_description) && + preg_match(",Safari/([^;]*),", $browser_description, $match)) { + $browser_name = "Safari"; + $browser_version = $match[1]; + $browser_layer = http_script('', 'layer.js',''); + $browser_barre = ($browser_version >= 5.0); + } + else if (preg_match(",mozilla,i", $browser_name) AND $browser_version >= 5) { + $browser_layer = http_script('', 'layer.js',''); + // Numero de version pour Mozilla "authentique" + if (preg_match(",rv:([0-9]+\.[0-9]+),", $browser_description, $match)) + $browser_rev = doubleval($match[1]); + // Autres Gecko => equivalents 1.4 par defaut (Galeon, etc.) + else if (strpos($browser_description, "Gecko") and !strpos($browser_description, "KHTML")) + $browser_rev = 1.4; + // Machins quelconques => equivalents 1.0 par defaut (Konqueror, etc.) + else $browser_rev = 1.0; + $browser_barre = $browser_rev >= 1.3; + } + + if (!$browser_name) $browser_name = "Mozilla"; +} + +verif_butineur(); + +?>