Extra header and footer

Имя: extrahf
Тип: плагин
Версия: 2009-07-05
Автор: dervan


Требования.

Система: Seditio 121.

Примечание: плагин не работает под Cotonti, используйте вариант для Cotonti.


Введение.

Плагин позволяет подключать специализированные шаблоны "шапки" и "подвала"
для page.php, list.php, forums.php, plug.php.


Возможности.

1.
Шаблоны для page.php.

Стандартные шаблоны, предусмотренные в системе.
Для "тела", в порядке приоритета при поиске:
- page.(add.|edit.|)`категория`.tpl
- page.(add.|edit.|)tpl
Для "шапки", в порядке приоритета при поиске:
- header.pages.tpl
- header.tpl
Для "подвала", в порядке приоритета при поиске:
- footer.pages.tpl
- footer.tpl

Прежде чем начнётся поиск стандартных шаблонов, плагин ищет в папке скина
специализированные шаблоны.
Для "шапки", в порядке приоритета при поиске:
- header.pages.(`алиас`|pg`id страницы`|(add.|edit.|)`категория`).tpl
- header.pages.(add|edit).tpl (обобщённый шаблон)
Для "подвала", в порядке приоритета при поиске:
- footer.pages.(`алиас`|pg`id страницы`|(add.|edit.|)`категория`).tpl
- footer.pages.(add|edit).tpl (обобщённый шаблон)
Примеры:
header.pages.runtime_error.tpl
header.pages.pg4.tpl
header.pages.edit.news.tpl
header.pages.news.tpl
footer.pages.add.tpl

Если специализированные шаблоны не найдены, то идёт поиск стандартных шаблонов.

Порядок поиска шаблонов определяется настройками плагина для "шапки"
и "подвала". Варианты поиска:
- alias or page_id or category - по алиасу, по id страницы, по категории,
  обобщённый, стандартные шаблоны;
- category or alias or page_id - по категории, по алиасу, по id страницы,
  обобщённый, стандартные шаблоны;
- alias or page_id - по алиасу, по id страницы, стандартные шаблоны;
- category - по категории, обобщённый, стандартные шаблоны;
- default - только стандартные шаблоны.

2.
Шаблоны для list.php.

Стандартные шаблоны, предусмотренные в системе.
Для "тела", в порядке приоритета при поиске:
- list.(group.|)`категория`.tpl
- list.(group.|)tpl
Для "шапки", в порядке приоритета при поиске:
- header.pages.tpl
- header.tpl
Для "подвала", в порядке приоритета при поиске:
- footer.pages.tpl
- footer.tpl

Прежде чем начнётся поиск стандартных шаблонов, плагин ищет в папке скина
специализированные шаблоны.
Для "шапки", в порядке приоритета при поиске:
- header.list.(group.|)`категория`.tpl
- header.list.(group.|)tpl (обобщённый шаблон)
Для "подвала", в порядке приоритета при поиске:
- footer.list.(group.|)`категория`.tpl
- footer.list.(group.|)tpl (обобщённый шаблон)
Примеры:
header.list.group.heap.tpl
header.list.group.tpl
footer.list.tpl

Если специализированные шаблоны не найдены, то идёт поиск стандартных шаблонов.

Порядок поиска шаблонов определяется настройками плагина для "шапки"
и "подвала". Варианты поиска:
- category - по категории, обобщённый, стандартные шаблоны;
- default - только стандартные шаблоны.

3.
Шаблоны для forums.php.

Стандартные шаблоны, предусмотренные в системе.
Для "тела", в порядке приоритета при поиске:
- forums.sections.tpl
- forums.(editpost|newtopic|posts|topics).`категория`.`id секции`.tpl
- forums.(editpost|newtopic|posts|topics).`категория`.tpl
- forums.(editpost|newtopic|posts|topics).tpl
- forums.tpl (если отсутствуют другие стандартные шаблоны, то этот шаблон
  подставляется для editpost, newtopic, posts, topics)
Для "шапки", в порядке приоритета при поиске:
- header.forums.tpl
- header.tpl
Для "подвала", в порядке приоритета при поиске:
- footer.forums.tpl
- footer.tpl

Прежде чем начнётся поиск стандартных шаблонов, плагин ищет в папке скина
специализированные шаблоны.
Для "шапки", в порядке приоритета при поиске:
- header.forums.sections.tpl
- header.forums.(editpost|newtopic|posts|topics).(fs`id секции`|`категория`).tpl
- header.forums.(fs`id секции`|`категория`).tpl
- header.forums.(editpost|newtopic|posts|topics).tpl (обобщённый шаблон)
Для "подвала", в порядке приоритета при поиске:
- footer.forums.sections.tpl
- footer.forums.(editpost|newtopic|posts|topics).(fs`id секции`|`категория`).tpl
- footer.forums.(fs`id секции`|`категория`).tpl
- footer.forums.(editpost|newtopic|posts|topics).tpl (обобщённый шаблон)
Примеры:
header.forums.sections.tpl
header.forums.posts.fs2.tpl
header.forums.fs2.tpl
header.forums.newtopic.tpl
footer.forums.topics.pub.tpl
footer.forums.pub.tpl

Если специализированные шаблоны не найдены, то идёт поиск стандартных шаблонов.

Порядок поиска шаблонов определяется настройками плагина для "шапки"
и "подвала". Варианты поиска:
- section_id or category - по id секции, по категории, обобщённый,
  стандартные шаблоны;
- category or section_id - по категории, по id секции, обобщённый,
  стандартные шаблоны;
- section_id - по id секции, обобщённый, стандартные шаблоны;
- category - по категории, обобщённый, стандартные шаблоны;
- default - только стандартные шаблоны.

4.
Шаблоны для plug.php.

Стандартные шаблоны, предусмотренные в системе.
Для "тела", в порядке приоритета при поиске:
- plugin.standalone.`код`.tpl
- `код`.tpl
- plugin.tpl
Для "шапки", в порядке приоритета при поиске:
- header.plugins.tpl
- header.tpl
Для "подвала", в порядке приоритета при поиске:
- footer.plugins.tpl
- footer.tpl

Прежде чем начнётся поиск стандартных шаблонов, плагин ищет в папке скина
специализированные шаблоны.
Для "шапки":
- header.plugins.`код`.tpl
Для "подвала":
- footer.plugins.`код`.tpl
Примеры:
header.plugins.search.tpl
footer.plugins.search.tpl

Если специализированные шаблоны не найдены, то идёт поиск стандартных шаблонов.

Порядок поиска шаблонов определяется настройками плагина для "шапки"
и "подвала". Варианты поиска:
- code - по коду (т.е. по имени плага), стандартные шаблоны;
- default - только стандартные шаблоны.


Особенности.

В именах файлов в полях `алиас` и `категория` допустимы такие символы:
буквы английского алфавита, цифры, '-', '_'.

Плагин делает преобразование недопустимых символов.

Преобразование поля `алиас` делается по таким правилам:
- удаление недопустимых символов (эту операцию делает система);
- перевод полученной строки в нижний регистр (эту операцию делает плагин).
Пример:
алиасу со значением 'News-My_family' будет соответствовать файл с именем
'header.pages.news-my_family.tpl'.

Преобразование поля `категория` делается по таким правилам:
- замена пробелов и точек на символ '_';
- удаление остальных недопустимых символов;
- перевод полученной строки в нижний регистр.
Пример:
категории со строкой-кодом 'News. My family!' будет соответствовать файл
с именем 'header.pages.news__my_family.tpl'.

Предупреждение.
Чтобы не было неоднозначности при поиске специализированных шаблонов,
преобразованные значения полей должны удовлетворять следующим условиям:
- для страниц и списков: среди преобразованных кодов `категория`
  и преобразованных значений `алиас` не должно быть одинаковых строк, не должно
  быть совпадений с любой из строк pg`id страницы`, а также эти преобразованные
  величины не должны совпадать со строками 'add', 'edit', 'group';
- для форумов: среди преобразованных кодов `категория` не должно быть одинаковых
  строк, не должно быть совпадений с любой из строк fs`id секции`, а также
  все преобразованные коды `категория` не должны совпадать со строками
  'editpost', 'newtopic', 'posts', 'topics'.


Установка.

1.
Установить значение в файле system/functions.php:
$cfg['enablecustomhf'] = true;
2.
Скопировать каталог 'extrahf' с файлами плагина в каталог 'plugins'.
3.
Зайти в Панель управления и установить плагин.


Пакет.

extrahf/extrahf.setup.php
extrahf/extrahf.header.main.php
extrahf/extrahf.header.tags.php
extrahf/extrahf.footer.main.php
extrahf/extrahf.footer.tags.php
extrahf/inc/extrahf.functions.pages.php
extrahf/inc/extrahf.functions.list.php
extrahf/inc/extrahf.functions.forums.php
extrahf/inc/extrahf.functions.plugins.php

extrahf/doc/.htaccess
extrahf/doc/extrahf.en.readme.txt
extrahf/doc/extrahf.ru.readme.txt
