Autor wpisu: Marek, dodany: 07.11.2012 22:06, tagi: php, zend_framework
Zend Framework
Eleganckim sposobem na użycie innego layoutu niż domyślny w jednym z modułów, jest napisanie własnego pluginu, który dołączymy do front kontrolera w klasie bootstrapa modułu.
Żeby ten został zaczytany przez naszą aplikację, musimy się upewnić, że zainicjowaliśmy zasób modules np. w pliku application.ini:
resources.modules[] = ""
Dla przykładu załóżmy, że inny layout będzie miał moduł Blog. Tworzymy zatem w katalogu:
/application/modules/blog/
klasę Blog_Bootstrap, w której dołączamy do front kontrolera nasz plugin np. za pomocą metody _initPlugins():
class Blog_Bootstrap extends Zend_Application_Module_Bootstrap { protected function _initPlugins(){ $front = $this->getApplication() ->bootstrap('frontcontroller') ->getResource('frontcontroller'); $front->registerPlugin(new Blog_Plugin_Layout()); } }
Najpierw pobieramy zasób front kontrolera, następnie rejestrujemy nasz plugin za pomocą metody registerPlugin().
Czas na kod samego pluginu:
class Blog_Plugin_Layout extends Zend_Controller_Plugin_Abstract { public function routeShutdown(Zend_Controller_Request_Abstract $request) { if ('blog' == $request->getModuleName()){ Zend_Layout::getMvcInstance()->setLayout('blog'); } } }
Nasz plugin dziedziczy po klasie Zend_Controller_Plugin_Abstract, a więc możemy użyć metody routeShutdown(), która zostanie uruchomiona zaraz po ustaleniu routingu. Dzięki czemu mamy możliwość sprawdzenia w jakim module aktualnie się znajdujemy. A więc sprawdzamy czy nazwa modułu jest równa ‚blog’, jeśli tak, zmieniamy layout na plik /application/layouts/blog.phtml.
Zend Framework2

A jak wygląda ustalenie specyficznego layoutu dla modułu w Zend Framework 2?
Zmiana layoutu dla modułu w ZF2 jest dużo prostsza:
- instalujemy moduł Evana Coury’ego stąd: https://github.com/EvanDotPro/EdpModuleLayouts
- dodajemy tablicę do pliku konfiguracyjnego modułu:
array( 'module_layouts' => array( 'MyBlog' => 'layout/blog', ) );
Autor wpisu: Wojciech Sznapka, dodany: 04.11.2012 22:52, tagi: php, symfony, symfony2
Autor wpisu: Łukasz Socha, dodany: 30.10.2012 20:12, tagi: css
pobierz w .pdf(przeznaczone do wydruku)
Wczoraj kodując jeden z projektów napotkałem na problem z @font-face w Firefoxie (tak, tak tym razem nie w IE ). Mianowicie FF nie odczytuje plików .eot ani .ttf. Na szczęście problem ten możemy rozwiązać w bardzo prosty sposób – dodając inne formaty czcionki do @font-face:
@font-face { font-family: "Ubuntu"; src: url('fonts/Ubuntu.eot?') format('eot'), url('fonts/Ubuntu.woff') format('woff'), url('fonts/Ubuntu.ttf') format('truetype'), url('fonts/Ubuntu.svg#fonts/Ubuntu') format('svg'); }
Teraz musimy tylko wygenerować pliki w odpowiednim formacie. Osobiście używam tego narzędzia. Z moich testów wynika, że reguła ta działa we wszystkich popularnych przeglądarkach (FF/Chrome/Opera/IE/Safari)