Autor wpisu: batman, dodany: 09.08.2010 20:00, tagi: zend_framework
Dzisiejszym wpisem z serii “Poradniki” wracam do pierwotnych założeń, jakie przyświecały powstaniu tej kategorii, czyli “wpisy ku pamięci”. Ich celem jest pozostawienie w ogólnodostępnym miejscu informacji na temat konkretnego zadania tak, by nie musieć ponownie szukać rozwiązania, które na ogół jest banalne. Tyle tytułem wstępu, do rzeczy.
Każdy kto miał do zrobienia stronę z galerią zdjęć, stawał przed wieloma problemami z tym związanymi. Począwszy od stworzenia bezpiecznego i funkcjonalnego formularza, na przechowywaniu zdjęć kończąc. Wszystkie problemy można rozwiązać w bardzo prosty sposób w kilkunastu wierszach kodu.
Co musimy zrobić? Stworzyć galerię zdjęć w serwisie Picasaweb, a następnie dodać do niej zdjęcia. Jeśli zdjęć mamy dużo, korzystamy z aplikacji desktopowej – Picasa. Na koniec pozostanie napisanie prostego skryptu, który pobierze zdjęcia.
/* cache */
$frontendOptions = array(
'lifetime' => 3600 * 3,
'automatic_serialization' => true
);
$backendOptions = array(
'cache_dir' => APPLICATION_PATH . '/../data/cache'
);
$cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);
/* utworzenie obiektu, ktory pobierze zdjecia */
$service = new Zend_Gdata_Photos();
$photos = array();
/* jesli nie ma zdjec w cache, pobierz je z Picasy */
if(!$photos = $cache->load('photos')) {
/* obiekt zapytania do albumow zdjec */
$query = new Zend_Gdata_Photos_AlbumQuery();
/* ustawienie nazwy uzytkownika, z konta ktorego beda pobierane zdjecia */
$query->setUser('some.username');
/* ustawienie nazwy albumu, z ktorego beda pobierane zdjecia */
$query->setAlbumName('SomeAlbumame');
/* pobranie zdjec */
$albumFeed = $service->getAlbumFeed($query);
/* pobranie informacji o sciezce do zdjec */
foreach($albumFeed as $photo) $photos[] = (string)$photo->content->src;
/* zapisanie danych do cache */
$cache->save($photos, 'photos');
}
Uważni obserwatorzy na pewno zauważą, iż scieżki, kierują do zdjęć pełnowymiarowych. Na szczęście Picasa tworzy miniaturki zdjęć i “przechowuje” je w folderach o nazwach zawierających szerokość zdjęcia. Aby dostać się do miniaturek, wystarczy użyć funkcji pathinfo.
$info = pathinfo($photo); $mini = $info['dirname'] . '/s150/' . $info['basename'];
W miejscu s150 można wstawić dowolny inny rozmiar zdjęcia poprzedzony małą literą s, np s237.
Kanał ATOM

Jako iż każdy chce po sobie zostawić ślad tak i ja mam taki plan. Moje założenie: Napisać prosty i ciekawy system, który byłby fundamentem do tworzenia stron, stąd też nazwa Basic PHP Develop Tools, czyli podstawowe narzędzia. Zarazem podstawowe narzędzia i pełna moc w pisaniu aplikacji. Na pewno nie jeden z Was spotkał się z Drupalem, i opiniami o nim jaki to on nie jest wyczesany, jaki to on jest wspaniały, no cud malina. Tak tylko czy ktoś próbował w nim pisać cokolwiek? No właśnie i ja podziękuje za taką fanaberię. Prędzej bym „wyklikał” w nim moduł niż go napisał. Ale nie w tym sęk, chciałbym by ta aplikacja nie przerodziła się w Frameworka, nie chce nazywać tego Frameworkiem, i nie chce by ktokolwiek o nim w ten sposób myślał. Bardzo nie lubię tego stwierdzenia, i w ogóle nie przypada mi do gustu, powiem więcej wręcz się nim brzydzę.
