Picasa în propriile pagini: ca plugin WP


La sfârşit de august am scris articolul Albumele Picasa în paginile noastre HTML. Am oferit acolo un fişier JavaScript prin care oricine poate să îşi introducă albume Picasa în propriile pagini. La final am promis un plugin WordPress pe baza respectivei soluţii (amintesc că soluţia folosea feed-urile tip JSON). Cu mare, mare întârziere revin asupra temei. Mai întâi nişte concluzii ale numeroaselor teste pe care le-am făcut:

– soluţiile JavaScript (cu JSON) s-au dovedit cele mai rapide;
– soluţiile cu PHP nu sunt la fel de performante ca viteză;
– viteza scriptului depinde mult de pretenţii (adică una este să afişezi o imagine mare şi alta imaginea mare plus 6 imagini mici, 3 anterioare, 3 următoare) dar şi de dimensiunea albumelor (o listă de 100 de albume, sau un album cu 100 de poze va necesita un timp mai mare).

Personal nu pot să spun că am găsit varianta ideală. Am scris două pluginuri WordPress, unul care merge pe JavaScript, iar celălalt pe PHP. Pentru BRU.ro am preferat versiunea PHP pentru că se poate face referinţă la o poză (vedeţi aici un exemplu). Dacă nu vă interesează aşa ceva, atunci se poate folosi uşor varianta cu JavaScript (vedeţi aici un exemplu). Comparaţi viteza şi funcţionalitatea. În cele ce urmează voi prezenta pluginul care foloseşte soluţia JavaScript+JSON. Aceasta pentru că am prezentat deja codul (în mare). Acum nu mai rămâne decât să îl transformăm în plugin WordPress. Nu este greu. Fişierul JScript de data trecută l-am folosit cu mici, foarte mici modificări.

Ideea este să scriem un plugin care să permită să inserăm uşor un album. De exemplu dacă aţi văzut exemplu de pe situl personal atunci iată ce am scris în articolul WordPress:

{ picasauser [foto.capan] picasaalbum [PuzzleMotanulIncaltat] }

Atât este tot ce trebuie scris într-o pagină sau într-un articol WordPress pentru a insera un album, schimbând desigur numele de utilizator Picasa şi numele albumului. Dacă se doreşte inserarea tuturor albumelui utilizatorului cucubau se va scrie simplu:

{ picasauser [cucubau] picasaalbum [ ] }

Cum facem ca o astfel de secvenţă să fie interpretată corespunzător de plugin? Evident definim un filtru pentru conţinut:

add_filter(’the_content’, ’wp_picasa_album_content’);

Acum în funcţia wp_picasa_album_content mai rămâne să vedem dacă avem secvenţa dorită. Vom folosi expresii regulate:

$pattern = "/’{.*picasauser’s+’[(.+)’].*picasaalbum’s+’[(.+)’].*’}/";

Cei care cunosc expresiile regulate vor înţelege linia de mai sus, cine nu… să o ia de bună. Vom folosi funcţia PHP preg_match pentru a verifica expresia regulată pe conţinutul articolului/paginii WordPress, în caz de reuşită folosind potrivirile pentru a afla numele de utilizator, respectiv numele albumului (dacă acesta din urmă este " " se vor afişa toate albumele). Un lucru am mai adăugat: dacă articolul este afişat pe feed, bineînţeles că nu va rula codul JavaScript, drept pentru care afişez un mesaj. Este o soluţie destul de primitivă dar cu scop didactic :) .

Atât! După cum spuneam, este foarte simplu. Vedeţi mai jos cum arată un album integrat în situl personal.

img238

Descărcaţi arhiva de mai jos. Neapărat fişierele pluginului să fie în directorul wp-picasa-album din wp-content/plugins. Activaţi pluginul şi scrieţi un articol nou cu codificarea descrisă mai sus (adică { picasauser [numeutilizator] picasaalbum [numealbum] } ) şi va arăta albumul. În arhivă există un director de imagini (dacă doriţi puteţi schimba săgeţile folosite); un fişier JavaScript (am vorbit de el în articolul trecut) şi un unic fişier PHP care conţine o singură funcţie de câteva rânduri. Cei dornici pot studia codul.

Pentru configurare deschideţi acel fişier PHP unic (adică wp-picasa-album.php) şi modificaţi variabilele de la început. Puteţi astfel opta (ca în articolul anterior) pentru câte imagini să fie afişate, ce dimensiuni să aibă…

Poate într-un alt articol vom merge mai departe. Ar fi mai elegant ca variabilele să poată fi modificate din interfaţa de administrare a WordPress. Nu? O altă treabă simplă, de câteva minute.

Actualizare 0.2.1 (18.09.2007): pentru fragmentele (excerpts) de articole a trebuit adăugată o funcţie care să nu arate codul JavaScript.

Descărcaţi pluginul wp-picasa-album 0.2.1 (17,5KB)


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (Neevaluat încă)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *