PHP

39 posts in category

Usuwanie znaków diakrytycznych

Polskie znaki diakrytyczne (akcentowane) potrafią przysporzyć spoko kłopotu podczas tworzenia aplikacji internetowych. Upowszechnienie standardu UTF-8 pozwoliło rozwiązać pewne problemy, jednak nie wszystko poprawnie obsługuje to kodowanie. W niektórych przypadkach (nazwy plików na serwerze, przyjazne URL-e...) lepiej sprawdzają się nazwy składające się wyłącznie z liter z alfabetu łacińskiego. W jaki sposób najlepiej zamienić polskie znaki (ą, ć, ę...) na ich łacińskie odpowiedniki (a, c, e...)? Sposobów jest co najmniej kilka.

Osadzanie filmów z YouTube i DailyMotion

Logo YouTubeWitam ponownie po nieco długiej, wakacyjnej przerwie. Dzisiaj przedstawiam kod który pozwoli łatwo i szybko osadzić na naszej stronie filmik z serwisów YouTube czy DailyMotion (jednocześnie bardzo łatwo można go rozszerzyć o inne strony hostujące wideo).

Problem można podejść na kilka sposobów jednak najbardziej elegancki to napisanie pomocnika widoku (Zend_View_Helper_*).

Zend_Navigation: przyjazne linki

Wyobraźmy sobie następujący kontroler:

class UserController extends Zend_Controller_Action
{
    public function loginAction()
    {
        (...)
    }

    public function registerAction()
    {
        (...)
    }
}

Chcielibyśmy aby użytkownik miał dostęp do tych akcji po wpisaniu "przyjaznych" adresów: domena.com/logowanie i domena.com/rejestracja. Jak uzyskać takie nazwy? Można zmienić nazwę kontrolera i akcji, można też dodać trasy statyczne (Zend_Controller_Router_Route_Static). Są to mało elastyczne rozwiązania, które można zastosować jedynie w prostych aplikacjach. Lepsza metoda to odpowiednie wykorzystanie komponentu Zend_Navigation, dostępnego w ZF począwszy od wersji 1.8.

Zend_Auth - uwierzytelnianie w Zend Framework

Tak jak obiecałem poprzednio, w tym artykule zaprezentuję działanie Zend_Auth na kilku przykładach.

Zend_Auth umożliwia programiście trzy podstawowe działania: sprawdzanie czy użytkownik podał właściwy login i hasło (uwierzytelnianie), sprawdzenie czy w danej chwili użytkownik jest zalogowany ("czy posiada tożsamość") oraz wylogowanie użytkownika ("wyczyszczenie tożsamości").

Uwierzytelnianie i autoryzacja w Zend Framework

Zend Framework jest bardzo elastycznym narzędziem, dlatego nie narzuca konkretnej metody zarządzania użytkownikami. W zamian oferuje dwa komponenty - Zend_Auth i Zend_Acl - które musimy jakoś połączyć z naszą aplikacją. Może to sprawiać problemy początkującym, gdyż dokumentacja rzuca ich od razu na głęboką wodę, a w internecie nie można znaleźć zbyt wielu przykładów. Sam potrzebowałem sporo czasu aby zrozumieć i opanować te zagadnienia.

Zend_Gdata_YouTube, ZF 1.8.2 - brak wstecznej kompatybilności

Ostatnio w pewnym projekcie uaktualniłem Zend Framework do wersji 1.8.2 i zostałem niemile zaskoczony. Projekt wyszukuje filmiki z YouTube, wykorzystując do tego komponent Zend_Gdata. Po aktualizacji przestał działać.

 

Dokumentacja ZF zawiera mniej więcej taki przykład wyszukiwania filmów:

 

$yt = new Zend_Gdata_YouTube();
$query = $yt->newVideoQuery();
$query->videoQuery = 'tytuł filmiku';
$videoFeed = $yt->getVideoFeed($query);

Niestety od wersji 1.8.2 ten kod nie jest poprawny i generuje wyjątek. Przykład w manualu nie został zmieniony, a informacja o wydaniu nic nie wspomina o zmianach w Zend_Gdata.  Na szczęście problem jest prosty do rozwiązania.

Zend_Form i wysyłanie plików - cz. 2

W poprzednim artykule zaprezentowałem wysyłanie plików z formularza opartego o komponent Zend_Form. Teraz tamten przykład zostanie wzbogacony o możliwość wysyłania w tle przy pomocy JavaScript-u i biblioteki jQuery.

Plan

Ze względów bezpieczeństwa interpreter JavaScript nie ma dostępu do systemu plików, zatem nie może brać bezpośredniego udziału w przesyłaniu. Transfer plików w tle można zrealizować przy pomocy małej sztuczki: formularz z plikiem może być przesłany poprzez niewidoczną ramkę (IFRAME). Po zakończeniu procesu serwer zwróci kod JavaScript który poinformuje użytkownika o sukcesie operacji (lub o ewentualnym niepowodzeniu).

Zend_Form i wysyłanie plików

Temat wysyłania plików był już przeze mnie poruszany wcześniej, jednak myślę że teraz warto do niego powrócić. Tym razem zagadnienie zostanie opisane w cyklu czterech artykułów. Pierwszy przedstawi prosty przykład tradycyjnego, synchronicznego wysyłania plików. Drugi zaprezentuje wysyłanie w tle, a trzeci - pasek postępu oparty na rozszerzeniu APC. W ostatnim pokażę jak zintegrować wysyłanie z klasami MVC Zenda.

Zapraszam na część pierwszą.

Chmura tagów w Zend Framework

Wraz z pojawieniem się wersji 1.8 frameworka jego autorzy udostępnili nowy komponent: chmurę tagów (Zend_Tag_Cloud). Po bliższym zapoznaniu się z dokumentacją okazało się że jej możliwości ograniczone są do wyświetlania chmury na podstawie określonych dekoratorów. Programista sam musi połączyć ten komponent z modelem danych. Postaram się zaprezentować sposób jaki wykorzystałem w swoim blogu.