автономная работа верстальщика и программиста Дмитрий Фомин Спецвыпуск: Хакер, номер #067, стр. 067-016-3 вывод чередующихся значений цвета бэкграунда {section name=rows loop=$data} <tr bgcolor="{cycle values="#eeeeee,#d0d0d0"}"> <td>{$data[rows]}</td> </tr> {/section} [создание plug-in'а] Все плагины Smarty содержатся в каталоге plugins. По названиям существующих там файлов можно судить, что есть 2 вида плагинов. Модификаторы-директивы, которые работают с одним параметром строкой и выполняют с ней определенные действия. ЛИСТИНГ пример модификатора-директивы, делающего все символы строки прописными <?php function smarty_modifier_lower($string){ return strtolower($string); } ?> ЛИСТИНГ использование модификатора в коде Здраствуйте, {$name|lower}! Это письмо отправлено в {$time}. Второй вид плагинов — функция. Из названия понятно, что это обработчик любых данных. ЛИСТИНГ пример обработки массива <?php function smarty_function_join($params, &$smarty){ if (empty($params['array'])) { return; } if (empty($params['separator'])) { return; } if(is_array($params['array'])){ return join($params['separator'],$params['array']); } } ?> ЛИСТИНГ объединение строковых представлений элементов массива, полученного из PHP скрипта <?php $oParser = new tmpl(); $oParser ->setTmpl(‘mail.tpl’); $aArray = array(); $aArray[] = ‘Дима’; $aArray[] = ‘Фомин’; $oParser ->assign(‘name’, $aArray); $oParser ->assign(‘time’,$time); $oParser->display(); ?> ЛИСТИНГ шаблон вывода Здраствуйте, {join array=$name separator=’ ’}! Это письмо отправлено в {$time}. Mod_rewrite Это модуль известного веб-сервера Apache, был придуман в 1996 году и был подарен The Apache Group в июле 1997. Данный модуль представляет собой основанный на правилах механизм (синтаксический анализатор с применением регулярных выражений), выполняющий URL преобразования на лету. Модуль поддерживает неограниченное количество правил и связанных с каждым правилом условий, реализуя действительно гибкий и мощный механизм управления URL. URL преобразования могут использовать разные источники данных, например переменные сервера, переменные окружения, HTTP заголовки, время и даже запросы к внешним базам данных в разных форматах, для получения URL нужного тебе вида. Порядок набора правил важен! Просматривается текст строчка за строчкой и, когда находится соответствие конкретному правилу, производится просмотр соответствующих этому правилу условий. [для чего нужен mod_rewrite] Mod_rewrite часто используется при создании, так называемых, ЧПУ (человеко-подобный URL). Например возникает такая ситуация: есть скрипт новостной ленты и он показывает список новостей, получая параметром дату: /news.php?date=21-12-2006. А хочется красивый и сказочный URL, типа такого: /news/2006/12/21. И модреврайт поможет, через .htaccess. ЛИСТИНГ .htaccess, который поможет сделать URL красивым RewriteEngine On RewriteRule /news/(\d{4})/(\d{2})/(\d{2}) /news.php?date=$3-$2-$1 Еще один пример из области поисковой оптимизации. Хочется, чтобы сайт в Яндексе был без www, коротко и ясно. Тогда можно при помощи модреврайта редиректить Яндекс или другой поисковик на страницу без www. |