Advertisement
diabliyo

clima.php

Feb 14th, 2012
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 10.02 KB | None | 0 0
  1. <?php
  2. #
  3. # M.S.I. Angel Cantu Jauregui
  4. # angel.cantu [a] sie-group.net
  5. # http://www.sie-group.net
  6. #
  7.  
  8. include( "modulos/modulos.php" );
  9. define( "CLIMA_URL", "api.tiempo.com" );
  10. define( "CLIMA_API_KEY", "/index.php?affiliate_id=HASH_MI_API&" );
  11.  
  12. # continente
  13. if( $_POST["continente"] )      $args= proteger_cadena($_POST["continente"]);
  14. else if( $_POST["pais"] )       $args= proteger_cadena($_POST["pais"]);
  15. else if( $_POST["provincia"] )      $args= proteger_cadena($_POST["provincia"]);
  16. else if( $_POST["localidad"] )      $args= proteger_cadena($_POST["localidad"]);
  17. else    $args= 'continente=0';
  18.  
  19. $arr= array(
  20.                 "GET", #stream
  21.                 CLIMA_API_KEY.$args, # args
  22.                 ""# data post
  23.                 );
  24. $r= socket_iodata( CLIMA_URL, $arr, 80 );
  25.  
  26. #$patron='|\<div class\=\"ListasLeft"\>(.*?)\<\/div\>|is';
  27. #$patron='|\<li\>(.*?)\<\/li\>|is';
  28. #$patron='/\<a href\=\"\s*([^\s]*)\s*\"\>(.*?)\<\/a\>/m';
  29. #$patron= '/<a href=\s*([^\s]*)\s*>/m';
  30. #$patron= '/\<form\>(.*?)\<\/form\>/is';
  31. # preg_match( $patron, $r[1], $buf);
  32.  
  33. #
  34. # icono de nube
  35. # http://css.meteored.mx/widget/css/galeria19/g8.png
  36. #
  37. # icono del viento
  38. # http://css.meteored.mx/widget/css/galeria1/simbolo_viento/5.png
  39. #
  40.  
  41. echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/DTD/strict.dtd">
  42. <html>
  43. <head>
  44. <meta http-equiv="Content-Type" content= "text/html; charset=UTF-8">
  45. <script language="JavaScript" type="text/javascript" src="'. HTTP_SERVER. 'js/jquery.js"></script>
  46. <style type="text/css" rel="stylesheet">
  47. <!--
  48. BODY{margin:auto;padding:0px;font:11px Arial, Helvetica, sans-serif;}
  49. select{font:11px Arial, Helvetica, sans-serif;}
  50. .boton {font:11px Arial, Helvetica, sans-serif;padding:2px 4px 2px 4px;margin-left:4px;}
  51. #clima{float:left;margin:auto;padding:0px;margin-right:5px;width:150px;}
  52. #clima .min{float:left;width:75px;text-align:left;color:orange;font-weight:bold;font-size:16px;margin-bottom:10px;}
  53. #clima .min span{font-size:9px;}
  54. #clima .max{float:left;width:75px;text-align:left;color:green;font-weight:bold;font-size:16px;margin-bottom:10px;}
  55. #clima .max span{font-size:9px;}
  56. #clima .lanube{float:left;width:100px;padding-bottom:10px;}
  57. #clima .elviento{float:left;width:50px;padding-bottom:10px;}
  58. #clima .dia{color:gray;font-size:15px;}
  59. #clima .pronostico{padding: 5px 0px 10px 0px;}
  60. #clima .pre{margin:auto;padding:0px;}
  61. #clima .nav{margin:auto;padding:0px;overfloe:hidden;margin-top:5px;}
  62. #clima .nav a{color:gray;text-decoration:none;border:solid 1px blue;padding:2px 4px 2px 4px;border:solid 1px #dcf57b;background-color:#f0fab8;margin-right:10px;}
  63. #clima .nav a:link,a:active{color:gray;text-decoration:none;}
  64. #clima .nav a:hover{background-color:#daf461;text-decoration:none;color:black;}
  65. .iconoclima{background:transparent url(imagenes/clima.png) no-repeat;width:37px;height:30px;overflow:hidden;}
  66. .iconoclima2{background:transparent url(imagenes/clima.png) no-repeat;width:20px;height:20px;overflow:hidden;}
  67. .nube1{background-position:-1px -5px;}
  68. .nube2{background-position:-41px -5px;}
  69. .nube3{background-position:-79px -5px;}
  70. .nube4{background-position:-118px -5px;}
  71. .nube5{background-position:-1px -44px;}
  72. .nube6{background-position:-4px -44px;}
  73. .nube7{background-position:-79px -44px;}
  74. .nube8{background-position:-118px -44px;}
  75. .nube9{background-position:-1px -84px;}
  76. .nube10{background-position:-41px -84px;}
  77. .nube11{background-position:-79px -84px;}
  78. .nube12{background-position:-118px -84px;}
  79. .nube13{background-position:-1px -122px;}
  80. .nube14{background-position:-40px -122px;}
  81. .nube15{background-position:-79px -122px;}
  82. .nube16{background-position:-118px -122px;}
  83. .nube17{background-position:0px -163px;}
  84. .nube18{background-position:-39px -163px;}
  85. .nube19{background-position:-79px -163px;}
  86. .nube20{background-position:-118px -163px;}
  87.  
  88. .viento1{background-position:-2px -197px;}
  89. .viento2{background-position:-24px -197px;}
  90. .viento3{background-position:-46px -197px;}
  91. .viento4{background-position:-69px -197px;}
  92. .viento5{background-position:-91px -198px;}
  93. .viento6{background-position:-113px -197px;}
  94. .viento7{background-position:-135px -197px;}
  95. .viento8{background-position:-2px -220px;}
  96. .viento9{background-position:-24px -220px;}
  97. .viento10{background-position:-46px -220px;}
  98. .viento11{background-position:-69px -220px;}
  99. .viento12{background-position:-91px -220px;}
  100. .viento13{background-position:-113px -220px;}
  101. .viento14{background-position:-136px -220px;}
  102. .viento15{background-position:-1px -242px;}
  103. .viento16{background-position:-24px -242px;}
  104. .viento17{background-position:-46px -242px;}
  105. .viento18{background-position:-68px -242px;}
  106. .viento19{background-position:-91px -242px;}
  107. .viento20{background-position:-113px -242px;}
  108. .viento21{background-position:-135px -242px;}
  109. .viento22{background-position:-2px -265px;}
  110. .viento23{background-position:-23px -265px;}
  111. .viento24{background-position:-47px -265px;}
  112. .viento25{background-position:-68px -265px;}
  113. .viento26{background-position:-91px -265px;}
  114. .viento27{background-position:-114px -265px;}
  115. .viento28{background-position:-135px -265px;}
  116. .viento29{background-position:-1px -287px;}
  117. .viento30{background-position:-24px -287px;}
  118. .viento31{background-position:-46px -287px;}
  119. .viento32{background-position:-69px -287px;}
  120. .viento33{background-position:-91px -287px;}
  121. //-->
  122. </style>
  123. </head>
  124. <body>';
  125. $xml= simplexml_load_string($r[1]);
  126.  
  127. if( !is_object($xml) )
  128.     echo 'Error de XML...';
  129. else
  130.     {
  131.     $fl=0;
  132.     $y=0;
  133.     if( !$_POST["continente"] && !$_POST["pais"] && !$_POST["provincia"] && !$_POST["localidad"] )
  134.         $y= 'continente';
  135.     else if( $_POST["continente"] && !$_POST["pais"] && !$_POST["provincia"] && !$_POST["localidad"] )
  136.         $y= 'pais';
  137.     else if( $_POST["pais"] && !$_POST["provincia"] && !$_POST["localidad"] )
  138.         $y= 'provincia';
  139.     else if( $_POST["provincia"] && !$_POST["localidad"] )
  140.         $y= 'localidad';
  141.     else
  142.         $y=1;
  143.    
  144.     if( $y==1 )
  145.         {
  146.         # print_r($xml);
  147.         # echo $r[1];
  148.         $clima=array();
  149.         foreach( $xml->location->var as $key )
  150.             {
  151.             # echo $key->name. ' / icono '. $key->icon;
  152.             $aux= array();
  153.             if( is_object($key->data->forecast) )
  154.                 {
  155.                 foreach( $key->data->forecast as $val )
  156.                     {
  157.                     $aux[]= $val[value];
  158.                     # echo ' / valor '. $val[value]. ' [sec '. $val[data_sequence]. ']';
  159.                     }
  160.                 }
  161.             $clima[]= array( "titulo"=> $key->name, "icono"=>$key->icon,
  162.                                     "valores"=>$aux  );
  163.             unset($aux);
  164.             }
  165.         # echo '<h1>'. $xml->location->interesting->url. '</h1>';
  166.         for( $i=0; $i<5; $i++ )
  167.             {
  168.             echo '<div id="clima" class="'. $i. '"';
  169.             if( $i>0 )      echo 'style="display:none;"';
  170.             echo '><div class="pre">';
  171.             $c=0;
  172.             foreach( $clima as $key )
  173.                 {
  174.                 if( $c==0 ) # temperatura minima (numero)
  175.                     echo '<div class="min"><span>min</span> '. grados_temp($key["valores"][$i], "en"). '</div>';
  176.                 else if( $c==1 ) # temperatura maxima (numero)
  177.                     echo '<div class="max"><span>max</span> '. grados_temp($key["valores"][$i], "en"). '</div>';
  178.                 else if( $c==2 ) # simbolo viento (flechita)
  179.                     echo '<div class="elviento"><a title="'. $key["valores"][$i]. '"><div class="iconoclima2 viento'. $key["icono"]. '"></div></a></div>';
  180.                 else if( $c==3 ) # variable simbolo (nuve)
  181.                     echo '<div class="lanube"><a title="'. $key["valores"][$i]. '"><div class="iconoclima nube'. $key["icono"]. '"></div></a></div>';
  182.                 else if( $c==4 ) # el dia
  183.                     echo '<div class="dia">>> '. dias_es2en($key["valores"][$i], "en"). '</div>';
  184.                 #else if( $c==5 ) # pronostico textual
  185.                 #   echo '<div class="pronostico">'. $key["valores"][$i]. '</div>';
  186.                 # echo '['. $key["icono"]. '] |'. $c. '| La '. $key["titulo"]. ' es: '. $key["valores"][$i]. '<br>';
  187.                 $c++;
  188.                 }
  189.             unset($c);
  190.             echo '</div><div class="nav">';
  191.             if( $i>0 )
  192.                 echo '<a href="#" class="'. ($i-1). '_clic"><< Back</a>';
  193.             if( ($i+1)<5 )
  194.                 {
  195.                 if( ($i+1)<5 )
  196.                     $clic= ($i+1);
  197.                 else        $clic=0;
  198.                 echo '<a href="#" class="'. $clic. '_clic">Next >></a>';
  199.                 }
  200.             echo '</div></div>';
  201.             }
  202.  
  203.             echo '<script type="text/javascript">
  204.             $(document).ready(function(){';
  205.             for($i=0; $i<5; $i++ )
  206.                 {
  207.                 echo '
  208.                 $(\'.'. $i. '_clic\').click( function(event) {
  209.                 ';
  210.                 echo 'if( $(\'.'. $i. '\').is(\':hidden\') )
  211.                             {
  212.                             ';
  213.                             for($y=0; $y<5; $y++ )
  214.                                 {
  215.                                 if( $y==$i )
  216.                                     {
  217.                                     echo '$(\'.'. $y. '\').css( "display", "block" );
  218.                                     ';
  219.                                     }
  220.                                 else
  221.                                     {
  222.                                     echo '$(\'.'. $y. '\').css( "display", "none" );
  223.                                     ';
  224.                                     }
  225.                                 }
  226.                             echo '
  227.                             }
  228.                         });';
  229.                     }
  230.             echo '
  231.             });
  232.             </script>';
  233.         echo '<p><a href="clima.php?new=1">Other City...</a></p>';
  234.         }
  235.     else
  236.         {
  237.         $lugar= explode( "/", get_geolocation() ); # ciudad / estado / pais
  238.         if( !$_SESSION["new"] )
  239.             $_SESSION["new"]='0';
  240.         else        $_SESSION["new"]='1';
  241.        
  242.         if( !strcmp($_GET["new"], "1") )
  243.             $_SESSION["new"]='1';
  244.         else if( !strcmp($_GET["new"], "2") )
  245.             $_SESSION["new"]='0';
  246.        
  247.         if( $lugar[0] && $lugar[1] && $lugar[2] && !$_SESSION["new"] )
  248.             {
  249.             echo '
  250.             <div id="cont_fdd31247c3ccadfd244ec3fdd31594be">
  251. <span id="h_fdd31247c3ccadfd244ec3fdd31594be"><a id="a_fdd31247c3ccadfd244ec3fdd31594be" href="http://www.meteored.mx/" target="_blank" style="color:#656565;font-family:1;font-size:14px;">Clima</a> Ciudad de M&eacute;xico</span><script type="text/javascript" src="http://www.meteored.mx/wid_loader/fdd31247c3ccadfd244ec3fdd31594be"></script>
  252. </div>';
  253.             }
  254.         else
  255.             {
  256.             echo '<form action="clima.php" method="POST"><select name="'. $y. '">';
  257.             foreach( $xml->location->data as $data )
  258.                 {
  259.                 $x= explode( "?", $data->url );
  260.                 echo '<option value="'. $x[1]. '" />'. $data->name;
  261.                 unset($x);
  262.                 }
  263.             echo '</select>
  264.             <br><input type="submit" value="Continue" class="boton"></form>';
  265.             if( $_POST["continente"] || $_POST["pais"] || $_POST["provincia"] || $_POST["localidad"] )
  266.                 echo '<form action="clima.php" method="POST"><input type="submit" value="Back" class="boton"></form>';
  267.             echo '</form>';
  268.             }
  269.         echo '<p><a href="clima.php?new=1">Other City...</a></p>';
  270.         # | <a href="clima.php?new=2">Auto-Detectar</a></p>';
  271.         }
  272.     }
  273. echo '</body></html>';
  274. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement