0.00
Рейтинг
0.05
Сила

Рекомендация к использованию: Наследование шаблонов

На примере будущего jQuery-шаблона для ПриветСочи.ру решил выложить мини-инструкцию использования наследования шаблонов, сильно сокращающий количество часто повторяющегося Smarty-кода.

Коротко о файлах в примере (ссылка на архив внизу):

  • 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 содержат:
  1. в начале каждого файла наличиствует код
    {extends file=topic.prototype.tpl}
  2. минимум специфической разметки, обрамленной в конструкции
    {block name=... флаг}
    — это замены и дополнения блоков. Флаг может либо отсутствовать (что означает полную замену содержимого блока), либо принимать принимать значения:
    • append — дописывает в конец содержимое блока к наследуемому блоку.
    • prepend — дописывает в начало содержимое блока к наследуемому блоку.
    • hide — скрывает блок (насколько я понял, если добавить в блок прототипа, то по умолчанию блок будет скрыт).
    • nocache — запрещает кеширование содержания блока (а это вообще актуально для LS?).


Документация


ZIP-архив с примером

QipSmiles hotfix (docker47.free.fr browser warning)

Замена смайл-пака maliste

smiley.s3.amazonaws.com/maliste.zip
Распаковать в qipsmiles/smiles/ с заменой файлов.

MySQL комманды для замены смайлов в уже сохраненном контенте




На 0:50 видно окошко, в котором надо вписать эти комманды:
update `prefix_topic_content` set `topic_text`=replace(`topic_text`,'http://moktoipas.com/smileys/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_topic_content` set `topic_text`=replace(`topic_text`,'http://docker47.free.fr/divers/smileys/basic/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_topic_content` set `topic_text`=replace(`topic_text`,'http://docker47.free.fr/divers/smileys/_MSN/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_topic_content` set `topic_text`=replace(`topic_text`,'http://docker47.free.fr/divers/smileys/_gg3d.com/','http://smiley.s3.amazonaws.com/maliste/');

update `prefix_topic_content` set `topic_text_short`=replace(`topic_text_short`,'http://moktoipas.com/smileys/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_topic_content` set `topic_text_short`=replace(`topic_text_short`,'http://docker47.free.fr/divers/smileys/basic/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_topic_content` set `topic_text_short`=replace(`topic_text_short`,'http://docker47.free.fr/divers/smileys/_MSN/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_topic_content` set `topic_text_short`=replace(`topic_text_short`,'http://docker47.free.fr/divers/smileys/_gg3d.com/','http://smiley.s3.amazonaws.com/maliste/');

update `prefix_comment` set `comment_text`=replace(`comment_text`,'http://moktoipas.com/smileys/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_comment` set `comment_text`=replace(`comment_text`,'http://docker47.free.fr/divers/smileys/basic/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_comment` set `comment_text`=replace(`comment_text`,'http://docker47.free.fr/divers/smileys/_MSN/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_comment` set `comment_text`=replace(`comment_text`,'http://docker47.free.fr/divers/smileys/_gg3d.com/','http://smiley.s3.amazonaws.com/maliste/');


После выполнения mysql-комманд не забудьте сбросить кеш объектов


Если что-то ну никак не получается, обращайтесь в аську (она в профиле написана).