Шаблон для комментариев и формы комментариев
25.09.2009Одним из самых узких мест в блоголёте сейчас остается шаблоны, точнее несколько запутанный шаблон комментариев и формы. Это так и мне самому не нравиться, но мирился поскольку не видел иного способа описать, кроме как через ini файл. Сегодня ко мне пришла простая мысль - а почему бы вовсе не обойтись без ini а использовать tml по аналогии как в постах? Чтобы разделить части шаблонов можно использовать спецтеги в виде html комментариев, например
<ol> начало списка комментов с необходимыми шапками
<!--singlecomment-->
<li>...шаблон сов всеми тегами коммента</li>
<!--/singlecomment-->
</ol>
<!--commentform-->
<form ...>
...
</form>
<!--/commentform-->
Разборщику шаблона будет достаточно легко вычленить составные части на основе этих тегов. Или например форму комментов можно вынести в отдельный файл, и изменить текущую модель работы с формой. Сейчас она собирается из ini, потом сохраняется в кеше, откуда каждый раз и дергается. Будет достаточно сделать простой класс который будет брать готовую форму, например из commentform.tml. А для более навороченного генератора формы предоставить возможность такой генерации. Неправильно выразился - для стандартного блоголёта сделать простой шаблон, но оставить возможность прикручивания сложного генератора формы - например для плагинописателей, которые захотят вставить автоматом капчу. То есть будет простой менеджер формы.
Остается сейчас открытым вопрос об именовании тегов (для демо я назвал singlecomment и commentform, также нужен шаблон для пингбеков). И также где хранить форму - в одном файле (например comments.tml) или для формы отдельный файл (commentform.tml). Можно и так и так - особой разницы не вижу, но думаю логичнее было бы в одном файле, поскольку получается единый псевдо html, где сразу понятно, что зачем идет.
Открытие этого поста - возможность использования тегов для разбивки на части. Думаю такой трюк можно внедрить еще для чего нибудь - пока, кроме комментов, нигде не требовалось, но трюк мне нравиться: используются же подобные теги для разбивки контента поста уже давно.
Комментарии (10) на запись “Шаблон для комментариев и формы комментариев”
Оставить комментарий
Круто, Я за. Можно для всей системы шаблонов так сделать.
Виджеты:
<!--categories-->
<div class='widget'><h2 class='sidebartitle'>%s</h2>
<ul class='list-cat'>
<!--widget-data--><li>....</li><!--widget-data-->
</ul></div>
<!--/categories-->
<!--recentposts-->
<div class='widget'><h2 class='sidebartitle'>%s</h2>
<ul class='list-cat'>
<!--recentpost-->
<li><strong><a href='$Options->url$post->url' rel='bookmark' title='Permalink to $post->title'>$post->title</a></strong><br /> <small>$post->localdate</small></li>
<!--/recentpost-->
</ul></div>
<!--/recentposts-->
Следующая/предыдущая записи
<!--next-post-->....<!--/next-post-->
Не думаю, что в каждом сайтбаре нужен шаблон для одного и того же виджета, все равно виджет категорий будет только в одном сайтбаре. В каждом сайтбаре нужен шаблон виджета по умолчанию.
<!--sidebar1-->
<!--categories-->...<!--/categories-->
<!--default-widget1-->...<!--/default-widget1-->
<!--/sidebar1-->
<!--sidebar2-->
<!--recentposts-->...<!--/recentposts-->
<!--default-widget2-->...<!--/default-widget2-->
<!--/sidebar2-->
И засунуть все в index.tml. Мне будет однозначно удобней, вообще-то и существующая система виджетов нормально работает, это я так, привел пример развития твоей идеи с комментариями.
Нет, по мне лучше index.tml вообще не трогать, ибо так можно дойти только до одного файла темы index.tml - на это я сейчас не готов и вот несколько соображений:
1. пока что один файл index.tml для всех страниц - планирую добавить выбор индивидуального шаблона для любой страницы - чтобы сама страница могла выбратьсебе шаблон отличный от index.tml
2. Сейчас index.tml исполняется как есть, безо всякого парсинга, также как и post.tml postexcerpt.tml, и прошивка стандартных виджетов на определенные места только уменьшит степень свободы в управлении виджетами - а как тогда быть с виджетами в других возможных шаблона index.tml - обыкновенное дублирование?
Но все в принципе возможно, и в будущем может так и будет, а пока что слишком много возни с новым comments.tml
После установки одноразов в index.php перед urlmapнаписать:
$Template = TTemplate::Instance();
$Template->themename = 'simpla';
777 являются избыточными правами, после обновления они установятся в 666
Странно. Обновился (восстановил из бэкапа полную копию сайта с темами, плагинами и так далее), но на файлы в папках плагинов так и остались стоять 777. Или изменение 777 на 666 происходит только при обновлении с сервера, а вследствие закачки бэкапа не меняется?
Попытался рекурсивно поставить папке и файлам внутри неё 666 через FTP, но не получилось. На папку ставится 666, а её содержимое перестаёт быть видимым для FTP. При возврате на 777 папки, файлы опять-таки 777.
Стоит ли мучиться и самому переставлять в ручном режиме файлам 666 или с избыточными правами можно пожить? Просто блоги на старой версии Блоголёта (2,20 и 2,48). Прекрасно себя чувствуют, не хотелось бы их обновлять до самой свежей.