> Manuales > Taller de PHP

Clase PHP 5, de programación orientada a objetos, que nos permite colocar el API Google Weather en nuestra web para mostrar información del tiempo de una ciudad determinada.

Vamos a empezar por ver las principales características de esta clase. Empezaremos por decir que se trata de una clase construida en PHP 5. Muestra la información del tiempo de una ciudad que capta de Google y la devuelve en un archivo XML que puedes utilizar en tu página HTML.

Esta clase te puede mostrar la temperatura, humedad y viento de una determinada ciudad para el día actual y los próximos días.

Una vez que sabemos exactamente lo que hace dicha clase, vamos a ver como aplicarla a nuestra web.

Para ello lo primero que tenemos que hacer es bajarnos la clase de PHPClasses. Una vez que hemos descargado el archivo .php y el .css, así como las dos imágenes que hay, podemos empezar a ver como implementarlo en nuestra web.

Lo primero que vamos a hacer es subir dichos archivos a nuestra web. Una vez que los tenemos subidos empezamos a crear nuestro archivo de ejemplo.

1. Edición del archivo class.google.weather.php
Tenemos que editar este archivo para adaptarlo a nuestras necesidades. Si os fijáis en el código vemos que hay un array con las ciudades que vamos a poder seleccionar para ver su tiempo. Bien pues este array tenemos que editarlo y poner las ciudades que queremos mostrar. Una vez editado este código quedaría algo así:

....

class googleWeather{
   var $cities = array("Madrid", "Cordoba", "Sevilla", "Barcelona", "Toledo", "Tenerife");

   var $xml;
   var $selectedCity;
....

Ahora pasamos a crear nuestro archivo principal.

2.- Creación de un archivo .php
En dicho archivo lo primero que hacemos el colocar un enlace a la hoja de estilos y un include hacia el archivo que contiene la clase weather.

<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
<?php
include("class.google.weather.php");

Una vez que tenemos esto continuamos inicializando la clase y seleccionando la ciudad por defecto que queremos que aparezca.

$selectedCity = (isset($_POST["city"]) && $_POST["city"] != "")?$_POST["city"]:"Madrid";

$googleWeather = new googleweather($selectedCity);
?>

Ahora ya sólo nos queda mostrar el recuadro con la previsión del tiempo obtenida. Para ello vamos a crear un formulario con un campo select para poder ver los tiempos de las diferentes ciudades introducidas en el array, y para finalizar mostramos el tiempo de la ciudad seleccionada, mediante las funciones getWeatherInfo() y display_weather().
El código completo de esta parte sería el siguiente:

<form method="post" name="weather">
<select name="city" onChange="weather.submit();">
<?php
foreach($googleWeather->cities as $city){
?>
<option value="<?php echo $city;?>" <?php echo ($selectedCity == $city)?"selected":"";?>><?php echo $city;?></option>
<?php
}
?>
</select>
</form>

<?php
$googleWeather->getWeatherInfo();
$googleWeather->display_weather();
?>

Nota: Si estás familiarizado con el uso de APIs quizás hayas encontrado extraño que el API de Google Weather no solicita nuinguna clave ni ningún dato para identificar quien está solicitando el acceso a las funcionalidades del API. Esto para Google Weather no es necesario, es decir solamente tenemos que indicarle el array con las ciudades de las que deseamos tener la información meteorológica.

Con esto tendríamos nuestra clase funcionando. Para que nos quede más claro paso a poner el código completo del archivo principal.

<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
<?php
include("class.google.weather.php");
$selectedCity = (isset($_POST["city"]) && $_POST["city"] != "")?$_POST["city"]:"Madrid";

$googleWeather = new googleweather($selectedCity);
?>


<form method="post" name="weather">
<select name="city" onChange="weather.submit();">
<?php
foreach($googleWeather->cities as $city){
?>
<option value="<?php echo $city;?>" <?php echo ($selectedCity == $city)?"selected":"";?>><?php echo $city;?></option>
<?php
}
?>
</select>
</form>

<?php
$googleWeather->getWeatherInfo();
$googleWeather->display_weather();
?>

Sara Alvarez

Equipo DesarrolloWeb.com

Manual