Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- # Galeria de imagenes desde tus albumnes en Picasa
- # (CC) 2011 Alfonso Saavedra "Son Link"
- # Bajo licencia GPLv3
- # http://sonlinkblog.blogspot.com
- # Agradecientos a IBM por su estupendo tutorial sobre como listar
- # las imágenes y galerías de Picasa por RSS (http://www.ibm.com/developerworks/library/x-picasalbum/)
- $user_id = 'link.n4ever'; # Tu usuario de gmail sin el @gmail.com
- $limit_page = 20; # Total de imagenes a mostrar por pagina
- $limit_file = 5; # Numero de imagenes a mostrar por fila en la tabla
- if (empty($_GET['ver'])){
- # Si no existe la variable ver, se muestra un listado de las galerías disponibles
- // Construimos la URL al feed que contiene todas las galerias publicas
- $feedURL = "http://picasaweb.google.com/data/feed/api/user/$user_id?kind=album";
- // Leemos el contenido del archivo y lo guardamos en la variable para usarla
- $sxml = simplexml_load_file($feedURL);
- // Obtenemos la lista de galerias
- echo "<div>";
- echo "<div id=\"galeria_fotos\">";
- echo "<h2>Galerías:</h2>";
- echo "<ul>";
- // Recorremos todos los elementos XML
- foreach ($sxml->entry as $entry) {
- $title = $entry->title; // Titulo del album
- $gphoto = $entry->children('http://schemas.google.com/photos/2007');
- $name = $gphoto->name; // Nombre del album
- echo "<li><a href=\"?ver=$name\">$title</a></li>\n"; // Generamos los enlaces a las galerias
- }
- echo "</ul></div>\n";
- }else{
- $album = $_GET['ver'];
- $start = 1;
- // Comprobamos si le pasamos la variable pg que indica el numero de pagina
- if (isset($_GET['pag'])){
- $pagina = $_GET['pag']-1;
- $start = 20*$pagina+1;
- }else{
- $pagina = 0;
- }
- // Construimos la URL al archivo XML, al cual le pasamos el nombre del album, desde que pagina empieza y cuantas fotos nos devolvera
- $feedURL = "http://picasaweb.google.com/data/feed/api/user/$user_id/album/$album?start-index=$start&max-results=$limit_page";
- // Leemos el archivo y lo guardamos
- $sxml = simplexml_load_file($feedURL);
- // Obtenemos el total de fotos que hay en el album para calcular cuantas paginas debera de tener el album
- $counts = $sxml->children('http://a9.com/-/spec/opensearchrss/1.0/');
- $total = $counts->totalResults;
- $total_paginas = ceil($total/20);
- ?>
- <div id="galeria">
- <h1><?php echo $sxml->title; ?></h1>
- Hay <?php echo $total; ?> foto(s) en un total de <?php echo $total_paginas ?> pagina(s).<br />
- Pulse en una imagen para verla a tamaño original.
- <?php
- // Recorremos el XML para mostrar las miniaturas y generar los enlaces a la foto original
- // print each entry's title, size, dimensions, tags, and thumbnail image
- echo "<table id=\"lista_galeria\"><tr>";
- $i = 0;
- foreach ($sxml->entry as $entry) {
- $media = $entry->children('http://search.yahoo.com/mrss/');
- /* Tamaños disponibles de las miniaturas (AnchoxAlto):
- * $media->group->thumbnail[0] -> 72x41
- * $media->group->thumbnail[1] -> 144x81
- * $media->group->thumbnail[2] -> 288x172
- */
- $thumbnail = $media->group->thumbnail[1];
- $url = $media->group->content; // URL a la imagen a tamaño real
- ?>
- <td><a href="<?php echo $url->attributes()->{'url'} ?>" >
- <img src="<?php echo $thumbnail->attributes()->{'url'} ?>" />
- </a></td>
- <?php
- // Si $i vale lo mismo que $limit_file creamos un salto de fila en la tabla que muestra las miniaturas
- $i ++;
- if ($i == $limit_file){
- echo "</tr><tr>";
- $i = 0;
- }
- }
- echo "</tr></table>";
- // Lo siguiente se encarga de mostrar los enlaces a las distintas paginas del album (si hay mas de una)
- echo '<p class="pagelink conl"><span class="pages-label">Paginas: </span> ';
- $pagina += 1;
- if ($pagina > 1){
- $ant = $pagina-1;
- echo "<a href=\"?ver=$album&pag=$ant\">Anterior</a> ";
- }
- for ($n = 1; $n <= $total_paginas; $n++){
- if ($n == $pagina){
- echo "<strong class=\"item1\">$n</strong> ";
- }else{
- echo "<a href =\"?ver=$album&pag=$n\">$n </a>";
- }
- }
- if ($pagina < $total_paginas){
- $sig = $pagina+1;
- echo "<a href=\"?ver=$album&pag=$sig\">Siguiente</a>";
- }
- echo "<br /><a href=\"gallery.php\">Volver al listado de las galerías</a></p></div>";
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement