Crea una Galleria Flick Slick con SimplePie

Ho voluto scrivere un tutorial per un po 'di tempo e le API sono sempre state di particolare interesse per me. Così, con la recente incursione nella fotografia di mia moglie, ho deciso che un tutorial su Flickr sarebbe stato il primo tassista fuori dal rango! Anche l'utilizzo di RSS, Flickr e jQuery è stato molto divertente.




Ok, quindi stiamo andando a toccare un certo numero di tecnologie per questo tutorial. Useremo

un feed RSS da Flickr, un po 'di PHP e alcuni jQuery per rendere le cose belle e interattive! Bene

usa SimplePie per gestire il feed RSS, come esso

rende la vita molto più facile e può essere utilizzata in qualsiasi altro progetto in cui sono coinvolti i feed RSS.

Passo 1

Crea un file chiamato "index.php" e avvialo con una struttura HTML abbastanza semplice da ospitare

i vari componenti del nostro feed di Flickr.

  

Cose piuttosto standard, si noti che abbiamo aggiunto classi per l'intestazione e il piè di pagina, ma di più

importante, l'album-wrapper. Questo è il div dove pubblicheremo tutte le immagini che entrano

dal nostro feed su Flickr.

Passo 2

Crea due nuove cartelle chiamate "include" e "cache", quindi scarica

href = "http://simpliepie.org/" target = "_ blank"> SimplePie

e copiarlo nella cartella "include".

SimplePie memorizza in modo intelligente una versione memorizzata nella cache del tuo feed Flickr localmente per velocizzare il futuro

visite. Nota: se non lo fai su Windows, non dimenticare di verificare la cartella "cache"

è scrivibile.

 handle_content_type (); ?> 

L'inserimento di questo codice nella parte superiore del file "index.php" ci dà accesso a SimplePie

libreria per gestire il feed RSS per noi. Inoltre, la seconda e la terza riga creano un nuovo oggetto feed

basato sull'URL RSS per il tuo feed su Flickr.

Passaggio 3

Ora possiamo iniziare a sporcare il nostro HTML con frammenti di PHP per produrre informazioni dal nostro Flickr

alimentazione. Alcune delle funzioni chiave di SimplePie sono:

 $ Feed-> get_title (); // Restituisce il titolo del feed RSS $ feed-> get_image_url (); // Restituisce l'immagine per il feed, nel caso di Flickr, l'avatar dell'utente $ feed-> get_items (); // Restituisce una matrice degli elementi nel feed, nel caso di Flickr, le foto con le loro descrizioni, ecc. 

Ogni oggetto restituito da get_items () ha anche il proprio get_title () ecc. Per recuperarli è vario

elementi. Per un elenco completo delle funzioni disponibili per SimplePie, consulta il

href = "http://simplepie.org/wiki/reference/start" targt = "_ blank"> Documentazione SimplePie

.

Quindi le prime funzioni che chiameremo nel nostro script saranno il titolo e l'intestazione:

 Album di Flickr: <?php echo $feed->get_title (); ?> 
 

<?php echo $feed->get_title (); ?> get_title (); ?>

Passaggio 4

Prima di poter iniziare a scorrere le foto nel feed, dobbiamo scrivere due brevi funzioni.

Il primo individua il tag immagine all'interno della descrizione di una foto nel feed RSS. Puoi

scrivere questa funzione tra i tag PHP esistenti nella parte superiore dello script.

 funzione image_from_description ($ data) preg_match_all ('/] *)> / i ', $ data, $ corrisponde); return $ matches [1] [0];  

La seconda funzione consente di selezionare la dimensione dell'immagine da recuperare da Flickr, ma

aggiustando il nome del file in un tag immagine. Questa funzione dovrebbe anche essere collocata tra il PHP esistente

tag nella parte superiore dello script.

 function select_image ($ img, $ size) $ img = explode ('/', $ img); $ nomefile = array_pop ($ img); // Le dimensioni elencate qui sono quelle fornite da Flickr per impostazione predefinita. Passa l'indice dell'array nella variabile $ size per selezionarne uno. // 0 per il quadrato, 1 per il pollice, 2 per il piccolo, ecc. $ S = array ('_s.', // quadrato '_t.', // pollice '_m.', // piccolo '.', / / medio '_b.' // grande); $ img [] = preg_replace ('/ (_ (s | t | m | b))? \ ./ i', $ s [$ size], $ nomefile); return implode ('/', $ img);  

Passaggio 5

Ora possiamo scorrere le foto nel feed RSS e inviarle. Useremo un ciclo for su

ripassa ogni voce nel feed.

 
get_items () come $ item):?>
get_enclosure ()) echo '

'. $ enclosure-> get_title (). '

.' "\ N"; $ img = image_from_description ($ item-> get_description ()); $ thumb_url = select_image ($ img, 0); eco '.' "\ N"; ?>

get_date ('j F Y | g: i a'); ? >

Per spiegare questo bit di codice, mentre eseguiamo il ciclo, emettiamo un nuovo div che possiamo definire più tardi.

All'interno di ogni div, usiamo le funzioni che abbiamo scritto in precedenza per ottenere una dimensione particolare dell'immagine (ho scelto

quadrato per facilità di styling). Stiamo anche stampando il titolo di ogni foto prima di emettere il

foto stessa e la data sotto ogni foto.

Passaggio 6

Ora è il momento di dare un po 'di stile all'album! Quindi, in primo luogo, dare una base alla struttura

Struttura HTML, imposterò alcuni caratteri, larghezze, margini, ecc. Anche un piccolo stile per ordinare l'allineamento

dell'immagine dell'icona del feed di Flickr. Non dimenticare di collegare il tuo foglio di stile nella sezione principale di

il tuo HTML prima di tutto.

  

Quindi inserisci queste regole CSS nel tuo file "style.css":

 body font-family: Verdana, Arial, Helvetica, sans-serif; background-color: # 222; larghezza: 960 px; margine: 0; font-size: 0.75em;  .page-wrapper background-color: # 444; allineamento del testo: a sinistra; larghezza: 960 px; margine: 0 auto; imbottitura: 20px; posizione: relativa; superiore: 30 px; a sinistra: 30 px; overflow: auto;  .page-wrapper h1 font-size: 1.8em;  .page-wrapper h2 font-size: 1.2em; colore: # 222;  .page-wrapper .feedIcon vertical-align: middle; padding: 0 10px;  

Quindi uno stile da applicare a ciascuna delle foto div:

 .album-wrapper .photo width: 200px; background-color: # 666; allineamento del testo: centro; allineamento verticale: medio; fluttuare: a sinistra; imbottitura: 10px; margine: 10px;  .album-wrapper .photo img border: none;  .album-wrapper .photo small color: #aaa; font-size: 0.9em;  

Passaggio 7

Ora per aggiungere un po 'di interattività, introdurremo jQuery. Penso che sarebbe bello avere un

effetto hover e possibilità di fare clic su un'immagine e vedere una versione più grande. Include lo script jQuery

file, da cui è possibile scaricare l'ultima versione

target = "_ blank"> jquery.com

, renditi anche tu un "script.js" e includilo nello stesso

modo.

   

Passaggio 8

Il primo bit di jQuery da aggiungere al tuo file "script.js" è un $ (documento) .ready () da gestire

tutto quello che vuoi che jQuery faccia, dopo che il documento è stato caricato.

 $ (document) .ready (function () $ ('. photo'). fadeTo (0, 0.5);

Questo svanirà ogni div con la classe ".photo" al 50% non appena il documento è completamente caricato

e pronto. Quindi faremo illuminare le immagini quando il mouse passa sopra di loro.

 $ (document) .ready (function () $ ('. photo'). fadeTo (0, 0.5); $ ('. photo'). hover (function (e) $ (this) .stop (). fadeTo ('slow', 1.0);, function (e) $ (this) .stop (). fadeTo ('slow', 0.5);););

Queste 5 linee extra dicono a jQuery di rendere ogni foto, al passaggio del mouse, dissolvenza al 100% e quando il mouse

si spegne di nuovo, si riduce al 50%. (Grazie a Mike Schneider e Simon nei commenti per alcuni
cambia qui)

Passaggio 9

Sarebbe bello rendere cliccabili le miniature, in modo da poter visualizzare una versione più grande delle immagini.

Per fare questo, useremo Thickbox, costruito su jQuery.

  
  

Scarica Thickbox, e poi

includilo nella testa del tuo file "index.php", come mostrato sopra.

Una volta inclusi, modifica le seguenti righe per elaborare l'URL di un'immagine completa e aggiungilo a

link con una classe di "thickbox". Questo attiva Thickbox e dovrebbe funzionare, ho anche aggiunto

titolo che fornisce una didascalia.

 $ full_url = foto ($ url, 'completo'); echo 'get_title (). '">' . $enclosure->get_title (). ''." \ n "; 

Completare!

Questo è tutto! Ora dovresti avere uno script che visualizza un feed di Flickr per te e che ti permette di farlo

cliccali e vedi una versione più grande. Godere!

  • Iscriviti al feed RSS di NETTUTS per ulteriori tuts e articoli di sviluppo web giornalieri.