Creați o galerie Flickr Slick cu SimplePie

Am vrut să scriu un tutorial de ceva timp și API-urile au fost întotdeauna un interes special al meu. Deci, odată cu recenta incursiune a soției mele în fotografie, am decis că un tutorial Flickr ar fi primul cab de pe rang! Utilizarea RSS, Flickr și jQuery toate împreună a fost destul de distractiv prea.




Ok, deci o să atingem o serie de tehnologii pentru acest tutorial. Vom folosi

un feed RSS din Flickr, un pic de PHP, și unele jQuery pentru a face lucrurile frumoase și interactive! Bine

utilizați SimplePie pentru a gestiona fluxul RSS, așa cum se întâmplă

face viața mult mai ușoară și poate fi utilizată în orice alte proiecte în care sunt implicate fluxuri RSS.

Pasul 1

Creați un fișier numit "index.php", și porniți-l cu o structură HTML destul de bază pentru a găzdui

diferitele componente ale feedului nostru Flickr.

  

Lucruri destul de standard, rețineți că am adăugat clase pentru antetul și subsolul, dar mai mult

important, albumul-wrapper. Acesta este divul în care vom scoate toate imaginile care vin

din feedul nostru Flickr.

Pasul 2

Faceți două foldere noi numite "include" și "cache", apoi descărcați

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

și copiați-l în folderul "include".

SimplePie stochează inteligent o versiune în cache a feedului dvs. Flickr la nivel local pentru a ajuta la accelerarea viitorului

vizite. Notă: Dacă nu faceți acest lucru pe Windows, nu uitați să vă asigurați că dosarul "cache"

este scris.

 handle_content_type (); ?> 

Introducerea acestui cod în partea de sus a fișierului "index.php" ne oferă acces la SimplePie

bibliotecă pentru a gestiona fluxul RSS pentru noi. De asemenea, a doua și a treia linie creează un nou obiect de alimentare

bazat pe adresa URL RSS pentru feedul dvs. Flickr.

Pasul 3

Acum putem începe să ne smulgem HTML-ul cu fragmente din PHP pentru a extrage informații de la Flickr

a hrani. Unele dintre funcțiile cheie pe care SimplePie le oferă sunt:

 $ Feed> get_title (); // Returnează titlul feed-ului RSS feed-> get_image_url (); // Returnează imaginea feedului, în cazul Flickr, avatarul utilizatorului $ feed-> get_items (); // Returnează o serie de elemente din feed, în cazul Flickr, fotografiile cu descrierile lor etc.. 

Fiecare element returnat de get_items () are, de asemenea, propriul get_title () etc. pentru a-și recupera diversitatea

elemente. Pentru o listă completă a funcțiilor disponibile pentru SimplePie, verificați

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

.

Astfel, primele funcții pe care le vom numi în scenariul nostru vor fi titlul și titlul:

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

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

Pasul 4

Înainte de a începe să introducem fotografiile în feed, trebuie să scriem două funcții scurte.

Primul localizează eticheta imaginii în descrierea unei fotografii din fluxul RSS. Poti

scrieți această funcție între etichetele PHP existente în partea de sus a scriptului.

 funcția image_from_description ($ data) preg_match_all ('/] *)> / i ', date $, meciuri $); returnează meciurile $ [1] [0];  

A doua funcție vă permite să selectați dimensiunea imaginii pentru a fi preluată de pe Flickr, dar

ajustarea numelui fișierului într-o etichetă de imagine. Această funcție ar trebui plasată, de asemenea, între PHP existent

în partea de sus a scriptului.

 funcția select_image ($ img, dimensiunea $) $ img = explode ('/', $ img); $ fișier = array_pop ($ img); // Dimensiunile listate aici sunt cele pe care Flickr le oferă în mod implicit. Treceți indexul matricei în variabila de dimensiune $ pentru a selecta unul. // 0 pentru pătrat, 1 pentru degetul mare, 2 pentru mic, etc. $ s = array ('_s.', // square '_t.', // thumb '_m.', // small '.' / mediu '_b' / / mare); $ img [] = preg_replace ('/ (_ (s | t | m | b))? \ ./ i', $ s [$ size]; întoarcere implode ('/', $ img);  

Pasul 5

Acum, putem trece prin fotografiile din fluxul RSS și le putem scoate. Vom folosi o buclă pentru

treceți peste fiecare articol din feed.

 
get_items () ca element $):?>
get_enclosure ()) echo '

". $ carcasă-> get_title (). '

.“ "\ N"; $ img = imagine_de_descripție ($ item-> get_description ()); $ thumb_url = select_image ($ img, 0); echo ".“ "\ N"; ?>

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

Pentru a explica acest bit de cod, pe măsură ce ne bifăm, vom scoate un nou div pe care îl putem modela mai târziu.

În interiorul fiecărei div, folosim funcțiile pe care le-am scris anterior pentru a obține o anumită dimensiune a imaginii (am ales

pătrat pentru ușurință de stil). De asemenea, afișăm titlul fiecărei fotografii înainte de a ieși

fotografia în sine și data de sub fiecare fotografie.

Pasul 6

Acum este momentul sa dati albumului un stil! Deci, în primul rând, să dăm o structură de bază bazei

HTML structure, voi stabili unele fonturi, lățimi, margini etc. De asemenea, un pic de stil pentru a sorta alinierea

din imaginea pictogramei feed-ului Flickr. Nu uitați să vă conectați fișierul foaie de stil în secțiunea cap

HTML-ul dvs. în primul rând.

  

Apoi introduceți aceste reguli CSS în fișierul dvs. "style.css":

 corp font-familie: Verdana, Arial, Helvetica, sans-serif; fundal-culoare: # 222; lățime: 960px; marja: 0; font-size: 0.75;  .page-wrapper background-color: # 444; text-aliniere: stânga; lățime: 960px; marja: 0 auto; padding: 20px; poziție: relativă; top: 30px; stânga: 30px; overflow: auto;  .page-wrapper h1 font-size: 1.8;  .page-wrapper h2 font-size: 1.2; culoare: # 222;  .page-wrapper .feedIcon vertical-aliniere: mijloc; umplutură: 0 10px;  

Apoi, un anumit stil va fi aplicat fiecărei fotografie:

 .album-wrapper .photo lățime: 200px; fundal-culoare: # 666; text-align: centru; vertical-aliniere: mijloc; plutește la stânga; padding: 10px; margine: 10 pixeli;  .album-wrapper .photo img frontieră: nici unul;  .album-wrapper .photo mică culoare: #aaa; font-size: 0.9cm;  

Pasul 7

Acum, pentru a adăuga un pic de interactivitate, vom aduce niște jQuery. Cred că ar fi frumos să ai a

efectul de hovering și capacitatea de a face clic pe o imagine și de a vedea o versiune mai mare. Includeți scriptul jQuery

fișier, de la care puteți obține cea mai recentă versiune de la

target = "_ blank"> jquery.com

, de asemenea, faceti-va un "script.js" si includeti acelasi lucru

cale.

   

Pasul 8

Primul fragment de jQuery care se adaugă în fișierul "script.js" este un $ (document) .ready () care se ocupă

tot ce doriți ca jQuery să facă după ce documentul a fost încărcat.

 $ (document) .ready (funcția () $ ('.photo') fadeTo (0, 0.5);

Acest lucru va stinge fiecare div cu clasa ".photo" la 50% imediat ce documentul este complet încărcat

și gata. Apoi vom face ca imaginile să lumineze atunci când mouse-ul se deplasează peste ele.

 $ ((.)) () () ($) ($) (')'. fadeTo ('slow', 1.0);, funcția (e) $ (this) .stop () fadeTo ('lent', 0.5);

Aceste extra 5 linii spun jQuery pentru a face fiecare fotografie, pe hover, se estompeze la 100%, și atunci când mouse-ul

se stinge din nou, se estompează la 50%. (Mulțumită lui Mike Schneider și lui Simon în comentariile pentru unii
schimbări aici)

Pasul 9

Ar fi frumos să faceți miniaturile clickabile, pentru a putea vizualiza o versiune mai mare a imaginilor.

Pentru a face acest lucru, vom folosi Thickbox, construit pe jQuery.

  
  

Descărcați Thickbox și apoi

includeți-l în capul fișierului "index.php", așa cum se arată mai sus.

Odată ce acestea sunt incluse, editați următoarele linii pentru a elabora adresa URL într-o imagine completă și adăugați-o

legătura cu o clasă de "grosime". Acest lucru activează Thickbox, și ar trebui să funcționeze, de asemenea, am adăugat

titlu care oferă o subtitrare.

 $ full_url = fotografie ($ url, 'plin'); echo 'get_title (). „">' . $enclosure->get_title (). '' /> '.   

Complet!

Asta e! Acum ar trebui să aveți un script care să vă afișeze un feed Flickr și vă permite

faceți clic pe ele și vedeți o versiune mai mare. se bucura!

  • Abonați-vă la fluxul RSS NETTUTS pentru mai multe tutori și articole zilnice de dezvoltare web.