jueves, 8 de enero de 2009

Creación rápida de diapositivas powerpoint

Nos centraremos en la generación de diapositivas para mostrar fotos.


Para ello, en Powerpoint, pulsamos el menú Archivo y la opción Nuevo.

En la barra de Nueva presentación, seleccionar Álbum de fotografías...



Pulsamos el botón Archivo o disco...



Seleccionamos las imágenes a mostrar y dar al botón Insertar.

Las imágenes admiten desde aquí mínimos retoques. Lo más destacable la posibilidad de girarlos (2).

También, la lista se puede reordenar con los botones de las flechas a la izquierda del botón Quitar (3).


En la zona Diseño del álbum, cambiar el Diseño de la imagen a 2 imágenes con título (4).


En la Forma del marco, seleccionar adorno de esquina redondeado (5).


Pulsar el botón Examinar de Plantilla de diseño (6).


Abrir la carpeta Presentation Designs.


Ahí se puede elegir la que más nos guste. Por ejemplo, Watermark. Pulsar el botón Seleccionar.



Dándole al botón Crear (7), sale una diapositiva de presentación y las fotos en las siguientes diapositivas.
Lo que hay que cambiar son los textos. Si se quiere, también se puede añadir más textos sobre o bajo las fotos.

martes, 6 de enero de 2009

Publicando extracto de web externa en Rails con Hpricot

Estoy desarrollando la web del Club de Rugby Málaga, y necesito mostrar la clasificación de los equipos. Para hacer la actualización lo más automática posible, no hay nada más automático que extraer esa información de otro sitio donde esté publicado. Por supuesto, no hay que olvidar citar la fuente y poner algún enlace.

Prerrequisitos
Yo he utilizado la gema HPRICOT (aunque su sitio web parece no estar activo, la gema se puede instalar).

Para instalarla: sudo gem install hpricot

Además hacen falta las gemas rubygems y open-uri.

Manos a la obra
La información en cuestión está en la Federación Española de Rugby. En el enlace calendario liga está la información que necesito.

Para ver únicamente la información necesaria, copio la ruta del enlace y lo abro en una nueva pestaña.

La página contiene varias listas desplegables para seleccionar categoría, temporada y equipo. Establezco las listas desplegables con los valores deseados y ya tengo la página de la que quiero extraer la información.

La ruta de la página (junto con los parámetros) es http://www.ferugby.com/competiciones/calendario.php?id2=3&fecha_1=2008&cat=Liga+Nacional#j7

Como la parte final (#j7) es un enlace local (o ancla) a la propia página, lo descartaré. La página se puede leer con:

page = Hpricot( open(url) )

Revisando el código fuente de la página, todas las tablas de jornadas están dentro de tablas con el tag HTML:

<table id="tabla" bordercolor="#990000" cellspacing="0" cellpadding="0" align="center" border="0" />

Con hpricot se puede extraer un array de tags que contengan una determinada propiedad. Para este caso

@tablas = page.search("//table[@id='tabla']" )

Así, ya tenemos el controlador:

def mostrar_calendario_liga
url = 'http://www.ferugby.com/competiciones/calendario.php?id2=3&fecha_1=2008&ide=&cat=Liga+Nacional'
#page = Hpricot(url) #si las codificaciones coinciden
page = Hpricot(Iconv.iconv("UTF-8", "ISO-8859-1", open(url).read).join )
@tablas = page.search("//table[@id='tabla']" )
end

Para la vista, hay que ver que cada tabla de cada jornada, tiene la siguiente estructura:
  • 1ª fila: Número de jornada.
  • 2ª fila: Encabezados de columnas.
  • 3ª fila en adelante: Datos de los partidos.
Así, la vista queda:

<%for t in @tablas do%>
<%filas=t.search("//tr")%>
<table id="tabla" align="center" border="0">
<tbody>
<tr id="fil1">
<td id="cabecera_fila1" colspan="7">
<%=t.search("//tr").first.search("//td").first.inner_html%>
</td>
</tr>
<tr id="fil2">
<td width="1" align="center"></td>
<td width="1" align="center">FECHA</td>
<td width="1" align="center">HORA</td>
<td width="50%" align="center">EQUIPO LOCAL</td>
<td colspan="2" width="60" align="center">RESULTADO</td>
<td width="50%" align="center">EQUIPO VISITANTE</td>
</tr>
<%for r in filas[2..20]%>
<tr id="fila_contenido">
<%celdas=r.search("//td")%>
<%for celda in celdas[0..6] do%>
<td>
<%c=celda.search("//a")%>
<%c=celda if c.size == 0%>
<%if c.inner_html.include?('UMA')%>
<strong><%=c.inner_html%></strong>
<%else%>
<%=c.inner_html%>
<%end%>
</td>
<%end%>
</tr>
<%end%>
</tbody>
</table>
<%end%>
<p>
Los resultados se actualizan directamente desde la página de la
<a href="http://www.ferugby.com">Federación Española de Rugby</a>.
</p>

En la línea 18 pongo [2..20] para saltar las dos primeras filas, y un número suficiente (20 en este caso) para que no queden sin mostrar.
En la línea 20 se extraen los contenidos de los TD de la fila.
En la línea 21 se recorren los TD.
En las líneas 23 y 24 se extrae el contenido descartando la existencia de un posible enlace.
En las líneas de 25 a 29 se expone el contenido, destacando los que contengan el texto 'UMA'.

Lo último es elegir los estilos CSS para los ID de los tags de las tablas y conseguir el aspecto deseado.

Espero que le sirva a alguien, como me va a servir a mí para completar el resto de categorías.
 
javascript:void(0)