В таблице представлен полный список необходимых файлов шаблона
head.html | шапка, до вывода постов и прочего |
footer.html | низ, после вывода постов и прочего |
comment_a.html | вид комментариев автора блога |
comment.html | вид комментариев всех остальных |
post_form.html | форда добавления комментария |
post.html | вид записей |
post_topic.html | вид записей являющихся топиками |
post_list.html | вид записей при выводе списком |
comment_form.html | форма добавления комментариев |
comment_last.html | вид последних комментариев |
day.html | дата перед группой записей за один день |
login_form.html | форма логина |
Во всех файлах можно использовать php код, вывод же переменных в php коде рекомендуется с использованием функции e, к примеру <?php e($var); ?>
Так же можно использовать системные функции и функции из плагинов
Собственно, вот и все файлы. Давайте теперь займемся тем что в этих файлах должно быть, и чего быть не должно. Сначала рассмотрим самый минимум, а после углубимся.
Файл post.html
Тут всё до наивности просто: есть несколько переменных
$post['title'] | Заголовок записи |
$post['text'] | Собственно, сам текст записи (как до ката, так и полный) |
$post['id'] | ID записи, используется чаще всего для создания ссылок на запись <a href="<?php e(generate_link($post['id'])); ?>">текст ссылки</a> |
$post['date'] | Дата записи в формате определенном в конфиге |
$post['c_count'] | Колличество комментариев |
$post['menu'] | Вывод меню администратора (ссылки на удаление, редактирование записи и прочие) |
Комбинировать вывод всего этого можно как угодно в соответствии с вашим дизайном, но выводить переменные из плагинов лучше с использованием символа @ (т.е. <?php e(@post['tags']); ?>) дабы не было ошибки php если вдруг плагин отключен
Аналогично и в файле post_list.html
Файл comment.html и comment_a.html
$cmnt['nick'] | Имя комментатора |
$cmnt['text'] | Текст комментария |
$cmnt['date'] | Время написания комментария |
$cmnt['www'] | url комментатора, если он указан |
$cmnt['mail'] | Email комментатора |
$cmnt['num'] или $i | Номер комментария, применяется для ссылок, к примеру ?<a name="comment-<?php e($cmnt['num']); ?>"></a> в шаблоне позволит из rss или из уведомления по email попадать сразу на нужный комментарий |
$cmnt['link'] | Готовая ссылка на комментарий |
$cmnt['ip'] | IP адрес комментатора, если указан |
$cmnt['menu'] | Меню администратора, по аналогии с меню в файле post.html |
$cmnt['del_attach'] | Меню администратора, по аналогии с меню в файле post.html |
Так же присутствую переменные $cmnt['del_attach'], $_s['attach_dir'], $cmnt['attach'], $cmnt['attach_size'] для вложенных файлов, пример использования лучше посмотреть в умолчальном шаблоне
Файл date.html
Имеет всего одну переменную это $post_id от которой с помощью php образуется дата записей.
Можно использовать примерно так <?php e(date("d-m-Y", $post_id)); ?> или использовать другой формат вывода даты
В шаблоне по умолчанию вывод даты перед записями одного дня закомментирован.
Файлы head.html и footer.html
Переменные туда пихаются в основном из файла настроек, к примеру meta-теги, заголовок блога и прочее. К примеру
$_s['title'] — заголовок блога, $_s['blogdescription'] — описание блога, $_s['metakeywords'] — ключевые слова, $_s['moremeta'] — дополнительные мета-теги из плагинов
Так же в один из этих файлов (в зависимости от дизайна) не помешал бы вывод ссылок на страницы (следующая/предыдущая или список), а это переменная $_s['pages_link'] - которая выводит ссылки на страницы с сообщениями.
post_form.html и comments_form.html
Я рассматривать не буду, ибо там самое основное это сама форма, остальное не так критично, да и в большинстве уже имеющихся шаблонов эти формы абсолютно идентичны. На крайний случай вид форм и кнопок можно поменять таблицей стилей подключаемой в шапке.
Ну а теперь немного углубимся в создание шаблонов.
О некоторых моментах вроде функции e я уже сказал выше и упомянул о том что вывод чего-либо нужен только администратору. Для определения администратора в шаблоне можно использовать функцию is_admin() — эта функция проверяет, являетсь ли текущий пользователь администратором, или нет (true для админа иначе false). Используется, например, для вывода меню администратора в заметках и комментариях, давайте рассмотрим не примере.
<?php
if(is_admin()) {
e($post['menu']);
}
?>
В данном случае, мы выводим меню записи если только пользователь администратор (посмотрите умолчальный шаблон и блок админ-меню, там ещё несколько примеров использования)
Так же стоит упомянуть о том что москит поддерживает локализацию, для этого, и если вы создаете шаблон только лишь для себя, тогда проблем при выводе текста нет - просто пишите необходимый текст. Но если вы хотите, чтобы этим шаблоном воспользовались другие, то всё же лучше использовать возможность Москита в поддержке нескольких языков.Т.е. берем из языкового файла необходимые переменные и вставляем их туда, куда необходимо,
например, переменная $_l['comments'] в русском языке будет словом 'комментарии'
Полная возможность локализация всё ещё в процессе, так что просьба о всех проблемах с языком в шаблоне или о недостающих элементах перевода сообщить разработчикам.
И самое главное, в шаблоне можно использовать контейнеры выводящие блок,
т.е.
@container('header') выведет блок header.
Естественно, можно использовать не только контейнеры блоков идущие по умолчанию (footer, header, left, menu, pages, right/) но и создавать свои, т.е. в шаблоне можно использовать @container('hlam'), где hlam это имя контейнера (не забываем, что контейнер этот папка в data/blocks/ [в данном случае папка hlam], а все файлы, что в папке как-раз и выводятся сортируясь по имени — поэтому у них в начале цифры и присутствую для более явной визуализации сортировки)
Так же не стоит забывать о том что блоки по умолчанию имеют одинаковый вид <h6> заголовок блока</h6> и <div class="padd">тело блока</div>
Думаю, что для создания своего уникального шаблона этих данных вполне хватит.
ЗЗЫ. На забываем о плагине fastpl для быстрой смены/редактирования шаблона. Если что-то не понятно, то автор готов уточнить непонятные моменты...