Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #67, ИЮНЬ 2006 г.

автономная работа верстальщика и программиста

Дмитрий Фомин

Спецвыпуск: Хакер, номер #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.

Назад на стр. 067-016-2  Содержание  Вперед на стр. 067-016-4