[ Index ]
 

Code source de SPIP 1.9.2c

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/ecrire/inc/ -> layer.php (source)

   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  ?>


Généré le : Wed Nov 21 10:20:27 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics