Dodawanie kodu HTML do elementu Label w Zend_Form

Ostatnio musiałem dodać do elementu Label w Zend_Form kod HTML. Wydawałoby się, że nie może być nic prostszego. Niestety okazało się, że po dodaniu znaczników do etykiety, zostały one wyświetlone na stronie i wyglądało to mniej-więcej tak: Niestety dokumentacja nie była zbyt pomocna w tym przypadku i trzeba było pogrzebać w kodzie frameworka. Rozwiązanie okazało się równie banalne jak sam problem. Wystarczyło ustawić opcję escape w dekoratorze Label na false: $text = new Zend_Form_Element_Text(‚text’); $text->setLabel(‚<b>Etykieta</b>’); $this->addElement($text); $text->addDecorator(‚Label’, array(‚escape’ => false)); W efekcie uzyskałem pożądany efekt:

Microsoft udostępnił nową wersję Bing Maps

Wczoraj (02.12.2009) Microsoft udostępnił publicznie nową wersję Bing Maps (w wersji beta). Jest to, jak nazwa wskazuje, usługa oferująca mapy online (konkurencja dla Google Maps). Interfejs  nowej wersji został stworzony w całości w Silverlight, dzięki czemu działa znacznie szybciej i płynniej od wersji HTML. Oczywiście by móc skorzystać z tej mapy, należy zainstalować w przeglądarce wtyczkę Silverlight. Oto co ciekawego można znaleźć w nowej wersji map: streetside – znane z Google Maps Street view w wykonaniu Microsoftu. Pozwala na wirtualną wycieczkę po wybranych lokalizacjach zastosowanie technologii Photosynth do generowania modeli 3D “co w pobliżu”, czyli…

Piszemy aplikację w Adobe AIR – drag and drop upload cz. 1

W poprzedniej serii poświęconej Adobe AIR opisałem czym jest technologia Adobe AIR, przestawiłem podstawowe techniki programowania przy jej użyciu oraz zaproponowałem IDE, które wspiera tworzenie aplikacji AIR. Dzisiejszy i kilka kolejnych wpisów poświęconych Adobe AIR, będzie skupiało się na praktycznym zastosowaniu API do tworzenia aplikacji. Obiecałem, że będzie to drag and drop upload i obietnicy tej dotrzymam. Tworzenie aplikacji rozpoczniemy od poznania klasy NativeWindow oraz sposobów na całkowitą zmianę wyglądu okna naszej aplikacji. Zanim jednak przejdziemy do praktyki, proponuję zapoznać się z oficjalnymi materiałami dotyczącymi Adobe AIR. Nowy projekt Tworzenie aplikacji zaczniemy od utworzenia w…

Google Chrome otwiera galerię dodatków

Google Chrome jest jedną z najlepszych, jeśli nie najlepszą, przeglądarką internetową. Niestety mimo swojej szybkości i niezawodności, nie może podbić rynku, na którym króluje IE wraz z Firefox-em. W chwili obecnej jest to około 3% (według informacji z serwisu ranking.pl). Google postanowiło to zmienić i otworzyło dla deweloperów Google chrome extensions (oczywiście w wersji beta). Jest to miejsce, w którym użytkownicy mogą dodawać swoje rozszerzenia. Niestety w chwili obecnej nie ma możliwości przeglądania dodanych już rozszerzeń. Takie posunięcie ze strony Google jest odpowiedzią na  opinie użytkowników, którzy wskazują brak ulubionych rozszerzeń za główny powód wstrzymywania…

Google Wave – pierwsze spojrzenie

Otrzymałem dzisiaj zaproszenie do Google Wave. Nie zastanawiając się długo, przebrnąłem przez formalności (10 sekund roboty) i zacząłem testować nową usługę. Google Wave jest zupełnie nowym sposobem komunikacji w sieci. Nie jest to chat, forum ani poczta. Wave łączy te trzy kanały ze sobą w jednej usłudze. Po zalogowaniu się na konto, ujrzymy aplikację przypominającą nieco klienta pocztowego z układem trzykolumnowym, gdzie po lewej mamy foldery oraz kontakty, w środku listę wiadomości, a po prawej szczegóły jednej wiadomości. Swoją drogą, wiadomości są nazwane Wave. Korzystanie z Google Wave nie różni się zbytnio od korzystania z…

Wysyłanie maila z lokalnej maszyny

Tworzenie dużych aplikacji na lokalnej maszynie, a następnie ich przetestowanie przez wysłaniem do repozytorium, stanowiło problem, gdy dochodziło się do przetestowania funkcjonalności polegającej na wysłaniu maila. Użytkownicy linuxa są w lepszej sytuacji – wystarczy, że postawią sobie sendmail-a lub postfix-a i mogą wysyłać maile. Sytuacja przedstawia się znacznie gorzej w przypadku okienek. Na szczęście jest rozwiązanie, które od pewnego już czasu z powodzeniem testuję – hMailServer. Jest to prosty w obsłudze serwer pocztowy, który w bardzo prosty sposób pozwala nam na wysyłanie maili z lokalnej maszyny. Oczywiście aplikacja ta ma o wiele większe możliwości, jednak…

Adobe AIR 2 – publiczna beta

Firma Adobe udostępniła publiczną betę środowiska AIR. Wprowadzonych zmian jest całkiem sporo i jeśli wierzyć w to co napisano w release notes, to oprócz nowych funkcji, dostaniemy również poprawę wydajności. Oto co Adobe przygotowało w wersji 2: aktualizacja WebKit-a. W nowej wersji będzie to ta sama wersja co w przeglądarce Safari 4.0.3. Dzięki temu Adobe AIR zyskuje możliwość korzystania z dobrodziejstw CSS3 oraz HTML5. Do tego dochodzi canvas w najnowszej wersji. możliwość wykrycia przenośnych dysków USB, np pendrive, aparat, telefon, itp. obsługa mikrofonu obsługa multi-touch oraz gestów globalna obsługa błędów dodanie wsparcia dla nowych protokołów…

Łączenie Zend_Form z jQuery Tabs

Dzisiaj przedstawię wam szybki i prosty sposób na napisanie własnego dekoratora do Zend_Form. Dekorator ten opakuje przygotowany formularz w zakładki dostarczone przez jQuery. Na początek musimy pobrać jQuery oraz jQuery UI w najnowszych wersjach. W przypadku jQuery UI nie ma znaczenia jaki temat (Theme) zostanie wybrany, ponieważ nie będziemy się dzisiaj zajmować upiększaniem formularza. Do napisania mamy dwie klasy – formularz oraz dekorator. Dekorator będzie korzystał z helpera widoku, więc również jego będziemy musieli napisać. Na szczęście jQuery zadba o resztę, czyli o ostylowanie formularz i obsługę zakładek. Zaczynamy od klasy formularza. Celowo pominąłem walidację…

Dziedziczenie w PostgreSQL

PostgreSQL jest obok MySQL jedną z najpopularniejszych, darmowych baz danych. Baza ta oferuje bardzo ciekawe funkcjonalności, jak wspomniane w tytule dziedziczenie. Dziedziczenie odnosi się do tabel i umożliwia na stworzenie rozbudowanej struktury danych bez konieczności tworzenia ogromnej ilości relacji lub nadmiarowych kolumn. Dziedziczenie w PostgreSQL  jest zbliżone w założeniach do dziedziczenia obecnego w programowaniu obiektowym. W praktyce wygląda to w ten sposób, że tabela potomka rozszerza definicję tabeli rodzica o własne kolumny. Zabieg ten znacznie ułatwia tworzenie zależnych od siebie struktur danych bez konieczności pisania triggerów, czy kodu po stronie serwera aplikacji. A jak to…