Widget Picasa WebAlbum pentru WordPress


Albumele găzduite de Google (prin Picasa WebAlbums) rămân încă dificil de încorporat în WordPress. Codurile generice existente fie au probleme la mutarea în WP, fie dacă există pluginuri specializate pentru WP acestea s-au dovedit – în experimentele mele – total nefuncţionale, parţial funcţionale ori abandonate. Ce am găsit însă este un widget pentru Picasa WebAlbum. Pentru mine a fost ocazia să folosesc în sfârşit widget-urile WP. Pentru a le folosi trebuie să vă asiguraţi mai întâi că aveţi o temă WP ce suportă widget-uri (şi o versiune nouă dacă nu ultima de WordPress).

img274

Widget-urile le găsiţi în meniul Prezentare, Widgets. Descărcaţi widget-ul de pe pagina autorului (link direct). Puteţi publica şi doar fişierul PHP (deci fără fişierul TXT), în directorul wp-content/plugins. Activaţi-l ca orice plugin, doar că mai departe interacţiunea se va face în mod specific widget-urilor. Vedeţi în prima captură de mai jos pagina Widgets. După "instalarea" unui widget el trebuie să apară în lista de widget-uri. De acolo se trage cu mouse-ul în sidebar (de regulă există un sidebar dar pot fi şi două, trei, în funcţie de template). După ce l-aţi tras cu mouse-ul, apăsaţi pe iconiţa din dreapta numelului lui. Pagina se va "umbri" fiind "luminată" fereastra de configurare a widget-ului. Acolo introduceţi numele de utilizator Google, un titlu pentru widget, opţional id-ul unui album (dacă nu îl indicaţi se ia aleator din toate existente), numărul de imagini de pus în sidebar şi lăţimea (există o listă de lăţimi prestabilite).

img275 img276

Atât! Acum aveţi în sidebar afişate imagini din Picasa WebAlbums. Vedeţi demonstrativ pe situl autorului widget-ului şi pe situl personal.

img277 img278

Să mergem puţin mai departe. Probabil unii se întreabă ce este id-ul unui album Picasa. Încărcaţi Picasa WebAlbums şi mergeţi pe un album. În dreapta-jos va avea un link spre feed-ul RSS al acelui album. Click dreapta şi copiaţi link-ul. Faceţi apoi paste undeva (ex: Notepad) şi veţi vedea o adresă lungă care are în a doua jumătate un şir luuuuuung de cifre. Acela este id-ul albumului. Dacă doriţi ca widget-ul să afişeze imagini din orice album publicat, nu trebuie să indicaţi vreun id. Dacă doriţi însă afişarea doar dintr-un anume album va trebui să îi spuneţi care este acesta: iar identificarea se face prin acel lung şir de cifre.

img279

Sper că autorul widget-ului va îmbunătăţi în timp funcţionalitatea lui. Eu de exemplu am aproape 150 de albume publicate pe Picasa WebAlbums. Dacă se ia aleator pot să îmi apară pe sit poze de la Crăciun deşi acum e plină primăvară. Aş prefera să ia aleator din ultimele n albume. Până atunci însă am modificat widget-ul existent. Nu este nici prima oară şi nici ultima oară când modific un plugin/widget WordPress pentru a se potrivi mai bine nevoilor mele. Avantaj: de exemplu aşa, la unele pluginuri, puteţi să vă asiguraţi că textele sunt scrise în română, nu în engleză. Dezavantaje: când autorul actualizează codul trebuie să vedeţi să refaceţi modificările personale.

Cât de greu este să modifici un cod de plugin ori widget pentru WordPress? Dacă vrei doar să traduci textele afişate, poate să fie uşor. Dacă doreşti să modifici funcţionalitatea atunci desigur trebuie să înţelegi codul (măcar în parte) ceea ce presupune să ştii PHP. Ce soluţie am adoptat eu pentru widget-ul ce afişează imagini din Picasa? Am modificat foarte puţin codul.

Codul original:

if(isset($options[‘albumid’]) && $options[‘albumid’] != ”){
   $p[‘url’] = ‘http://picasaweb.google.com/data/feed/base/user/’ . $p[‘username’] . ‘/albumid/’;
   $p[‘albumid’] = $options[‘albumid’];
   $category=’photo’;
   $p[‘url’] .= $p[‘albumid’];
      $p[‘showRandomAlbum’] = false;
}

Codul modificat:

if(isset($options[‘albumid’]) && $options[‘albumid’] != ”){
   $p[‘url’] = ‘http://picasaweb.google.com/data/feed/base/user/’ . $p[‘username’] . ‘/albumid/’;
   $albumsids = explode(” „,$options[‘albumid’]);
   $p[‘albumid’] = $albumsids[rand(0, count($albumsids)-1)];
   $category=’photo’;
   $p[‘url’] .= $p[‘albumid’];
      $p[‘showRandomAlbum’] = false;
}

Acum să "traduc" pentru cei care nu au înţeles. În widget-ul modificat de mine, la Picasa Album ID în loc să scriu un singur id scriu mai multe şi le despart cu spaţiu. Pentru aceasta a trebuit în cod să adaug o linie şi să modific o altă linie. În prima linie am luat parametrul albumid care nu mai indică un sigur id ci include mai multe, despărţite de spaţiu şi l-am "explodat". A rezultat array-ul albumsids cu valorile id-urilor introduse manual. În a doua linie am modificat partea de după egal, alegând aleator o valoare din array-ul albumsids. Atât! Cu doar două linii de cod widget-ul original afişează la mine aleator din acele albume pe care i le indic manual.

Desigur, mai elegant ar fi ca widget-ul să admită în configurare indicarea unui parametru: dacă este 0 să aleagă aleator un album dintre toate, dacă este 5 să zicem să aleagă unul dintre ultimele cinci. De ce nu am modificat singur codul? Pentru că era vorba de mai mult de 2 linii… Şi pentru că e vară şi mi-e lene 😉 . Autorul widget-ului, cunoscându-şi mai bine codul, sper să se ocupe de problemă cât mai rapid. Până atunci sunt mulţumit şi cu soluţia intermediară.

Morala articolului are însă de-a face prea puţin cu acest widget. Morala este: dacă folosiţi WordPress şi nu aţi intrat până acum în plugin-uri şi widget-uri merită să analizaţi ideea. Dacă ştiţi PHP nu este foarte greu şi puteţi să obţineţi rezultate mai apropiate de ce doriţi. Eu am început să scriu mai multe pluginuri WordPress pentru nevoile proprii şi promit să revin, poate din toamnă, cu mai multe articole pentru cei interesaţi.


Apreciază articolul:

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

2 comentarii

  1. deny spune:

    Este super, imi place.


Lasă un răspuns

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