Posterous theme by Cory Watilo

Smarty templates

Рано или поздно начинает как-то нервировать, когда при смене дизайна тебя отрывают от других проектов, потому что чтоб сменить дизайн, надо лезть внуть PHP-страниц и что-то там менять. А дизайнер этого делать и подавно не собирается (а может просто не умеет). Собственно, для меня это и стало толчком в сторону концепции "разделения данных и представления". В самом простом случае мы можем использовать HTML-шаблоны. Что это такое? Средство, позволяющее вынести из РНР весь HTML в отдельные файлы. Но данные туда вставлять все-равно надо, скажите вы. Да, надо, и для этого служит свой простой синтаксис, и никакого РНР-кода вперемежку с HTML! Такова идея движка шаблонов Smarty. Я бы сказал, что это очень удобная штука, если применять ее с умом. Итак, в первую очередь нам понадобится сам шаблонизатор. Берем и разваливаем его в какую-то папку в нашем www. После этого топаем сюда и читаем ускоренный курс обучения. Как правило, все должно заработать. Если же все так просто с первого раза не запустилось, то давайте напишем обертку для класса Smarty. Для начала, немного теории. Смарти при парсинге шаблона генерирует его PHP-код. Для увеличения быстродействия он его сохраняет в своем кеше и в следующий раз отдает его оттуда уже без повторной генерации (это папка template_c, у которой должны быть права на запись для апача). И вот обертка... [cc lang="php"] class Page extends Smarty { function Page() { $path = '/var/www/mywebsite'; $this->template_dir = "$path/templates"; $this->compile_dir = "$path/templates_c"; $this->config_dir = "$path/configs"; $this->cache_dir = "$path/cache"; } } [/cc] И теперь можно создать объект Page и делать $page->assign('var',$var); Ну, дальше уже думаю сами - кому на языке оригинала, а кому на русском. Также я писал о том, что данные от дизайна можно отделять при помощи XHTML + CSS (т.н. бестабличная верстка). Так вот, недавно обнаружил увлекательную статью, которую советую всем прочитать.
| Viewed
times
Filed under: