Рекомендация к использованию: Наследование шаблонов
19
На примере будущего jQuery-шаблона для ПриветСочи.ру решил выложить мини-инструкцию использования наследования шаблонов, сильно сокращающий количество часто повторяющегося Smarty-кода.
ZIP-архив с примером
Коротко о файлах в примере (ссылка на архив внизу):
- topic.prototype.tpl — прототип топика, содержащий всю повторяющуюся разметку. Использованы вложенные конструкции типа
{block name=...} - topic_link.tpl, topic_photoset.tpl, topic_question.tpl, topic_topic.tpl — файлы, наследующие и заменяющие/дописывающие некоторые блоки прототипа топика (topic.prototype.tpl)
- topic.social.tpl — включение с кодом кнопочек публикации в разные соц-сети.
Коротко о содержании файлов:
Посмотрев файлы примера, не сложно заметить, что файлы topic_*.tpl содержат:- в начале каждого файла наличиствует код
{extends file=topic.prototype.tpl} - минимум специфической разметки, обрамленной в конструкции
— это замены и дополнения блоков. Флаг может либо отсутствовать (что означает полную замену содержимого блока), либо принимать принимать значения:{block name=... флаг}
- append — дописывает в конец содержимое блока к наследуемому блоку.
- prepend — дописывает в начало содержимое блока к наследуемому блоку.
- hide — скрывает блок (насколько я понял, если добавить в блок прототипа, то по умолчанию блок будет скрыт).
- nocache — запрещает кеширование содержания блока (а это вообще актуально для LS?).
Документация
ZIP-архив с примером
- +7
- 08 апреля 2012, 14:55
- 1d10t
- Оставить комментарий
Удаление UTF-8 BOM из консоли
5
linux (debian tested)
freebsd (7.2 tested)
найти файлы с BOM
sed почему-то иногда не отрабатывает, поэтому php, find, awk, xargs:
find путь/к/лайвстриту/ -type f \( -name '*.tpl' -o -name '*.php' \) -exec sed -i '1 s/^\xef\xbb\xbf//' {} \;freebsd (7.2 tested)
find ./ -type f \( -name '*.tpl' -o -name '*.php' \) -exec sed -i -e '1 s/^\xef\xbb\xbf//' {} \;найти файлы с BOM
find ./ -type f \( -name '*.tpl' -o -name '*.php' \) -print0 | xargs -0r awk '/^\xEF\xBB\xBF/ {print FILENAME}{nextfile}'sed почему-то иногда не отрабатывает, поэтому php, find, awk, xargs:
php -r "ob_start();
passthru('find ./ -type f \( -name \'*.tpl\' -o -name \'*.php\' \) -print0 | xargs -0r awk \'/^\xEF\xBB\xBF/ {print FILENAME}{nextfile}\'');
foreach(array_filter(explode(\"\n\",ob_get_clean())) as \$f){
echo \"remove BOM from \$f...\n\";
file_put_contents(\$f, substr(file_get_contents(\$f), 3));
};"
- +3
- 22 февраля 2012, 15:29
- 1d10t
- Оставить комментарий