Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/02/2008, 07:35
vega22
 
Fecha de Ingreso: septiembre-2007
Mensajes: 99
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Funcion detectar resolucion pantalla

Bueno, bueno...Esto funciona como un reloj.
Darkj: veo que los operadores ternarios del php van más o menos igual que los del javascript(ahí están en la galleta -sudé tinta para componer ese javascript, por cierto, y aún no estoy a gusto). Excelente tu propuesta, pues el código me ha quedado limpísimo así:
Código:
<?php 
if(isset($HTTP_COOKIE_VARS["width_res"])) 
$res_pantalla = $HTTP_COOKIE_VARS["width_res"];
else {
?>
<script type="text/javascript">
function creaCookie(nombre,valor,caducidad,path,domain,secure) {
var valor = screen.width
var dia_fin = new Date();
dia_fin.setDate(dia_fin.getDate() + caducidad);
document.cookie = nombre + "=" + escape(valor) +
((caducidad==null) ? "" : "; expires=" + dia_fin.toGMTString()) +
((path==null) ? "" : "; path=" + path) +
((domain==null) ? "" : "; domain=" + domain) +
((secure==null)? "" : "; secure"); 
}

creaCookie('width_res','valor'); 
if (document.cookie){  
        location = "index.php";
 }
 </script>
<?
}

$res_val=array(1024,1280,1360,1400,1440,1600,1680); 
$flash_res=(in_array($res_pantalla,$res_val))?'cabecera'.$res_pantalla.'.swf':'cabecera1024.swf';  

?>
Ahora bien, más dudas de aprendizaje...para solventar el tema de cookie deshabilitada, he probrado a meter el final así:

Código:
if (!isset($res_pantalla)) {
$flash_res="cabecera1024.swf";
}
else
$resoluciones_validas=array(1024,1280,1360,1400,1440,1600,1680); 
$flash_res=(in_array($res_pantalla,$resoluciones_validas))?'cabecera'.$res_pantalla.'.swf':'cabecera1024.swf';
Funciona...pero funciona igual si lo dejo como antes, sin el (!isset). Mejor, pero mi pregunta es ¿por qué? ¿el operador ternario es capaz de tomar como un valor el que no haya valor en una de sus variables??