- 13.11.2012 12:58
- PHP-Fusion
Прежде, чем переходить непосредственно к описанию манипуляций разработки темы, необходимо знать строение основного файла любой темы, а именно: theme.php. Для тех, кто знает, что означают все прописанные функции в данном файле, можно пропустить данную часть статьи. Ну а тем, кто не знаком или знаком частично, думаю, будет полезно ознакомиться.
Все функции файла theme.php отвечают за построение отдельных частей темы, будь это просто страница, новость, какая-либо панель и т.д. Именно к функциям данного файла обращается движок при построении страницы. Помимо функций могут быть прописаны дополнительные строки для удобства использования чего-либо в теме.
Итак, приступим.
function render_page()
Данная функция отвечает за построение страницы (каркас) в целом от шапки до подвала сайта, т.е. все содержимое тега <body>…</body>, если говорить об HTML.
Код функции выглядит следующим образом:
function render_page($license = false) { … code your page … }В начале данной функции указываются переменные, которые будут использоваться, например:
global $settings, $main_style, $locale, $mysql_queries_time;Сама функция делится на 3 блока построения каркаса: «Header», «Content» и «Footer». По этим названиям можно уже понять, кто за что отвечает. Блок «Header» – организация кода шапки сайта, «Footer» – подвала сайта, а «Content» – средней части, той, что расположена между шапкой и подвалом. Все 3 блока используют свои дополнительные функции для вывода контента.
В блоке «Header» могут использоваться функции, управление которых доступно через админ панель:
- showbanners() – выводит логотип и баннеры в шапке сайта;
- showsublinks() – выводит горизонтальную навигацию;
- showsubdate() – выводит дату.
Блок «Content» использует константы вывода содержимого в разных местах, грубо говоря, управляет выводом всех панелей, которые созданы через админ панель:
- LEFT – выводит все включенные левые панели;
- RIGHT – выводит все включенные правые панели;
- U_CENTER – выводит все включенные центральные панели сверху от центральной части;
- L_CENTER – выводит все включенные центральные панели снизу от центральной части;
- CONTENT – выводит центральную часть контента.
В принципе здесь нет ничего хитрого, изначально ставится условие на наличие левой или правой части, после чего выводится в зависимости от проверки.
Блок «Footer» также имеет по умолчанию несколько своих функций:
- showrendertime() – выводит время загрузки страницы;
- showcounter() – выводит число уникальных посетителей;
- showcopyright() – выводит копирайт движка.
Естественно для всех блоков указаны не все элементы, а только наиболее часто используемые. По мимо указанных могут использоваться и другие функции, а также переменны и константы.
function render_news()
Данная функция отвечает за построение отдельной новости, код которой выглядит следующим образом:
function render_news($subject, $news, $info) { … code your news … }Аналогичным образом в начале функции указываются переменные для использования. При необходимости определяются изображения для дальнейшего использования, например:
set_image("edit", THEME."images/icons/news_edit.png");и последующего вывода их в необходимом месте:
get_image("edit")Функция «render_news» должна принимать 3 переменные:
- $subject – заголовок новости;
- $news – текст краткой новости;
- $info – некий набор данных, относящийся к новости, например:
- $info['news_date'] – выведет дату опубликования новости;
- $info['user_name'] – выведет автора новости
- и т.д.
function render_article()
Данная функция отвечает за построение отдельной статьи, код которой выглядит следующим образом:
function render_article($subject, $article, $info) { … code your articles … }Более подробного описания функции не вижу, так как она полностью аналогична функции вывода новости, но только со своими переменными.
function render_comments()
Данная функция отвечает за построение отдельного комментария, код которой выглядит следующим образом:
function render_comments($c_data, $c_info) { … code your comments … }Функция построена аналогичным образом как и 2 предыдущие, останавливаться на ней не буду, т.к. код этой функции я вообще никогда не правил, т.е. оставлял все как есть.
function opentable()
Данная функция отвечает за построение начала центральных панелей, т.е. за открывающие теги, код выглядит следующим образом:
function opentable($title) { … your opening code … }Функция по умолчанию работает с одной переменной. В качестве $title передается заголовок панели.
function closetable()
Данная функция отвечает за построение закрывающих тегов центральных панелей, код выглядит следующим образом:
function closetable() { … your closing code … }function openside()
Данная функция аналогична функции «opentable», только она отвечает за построение начала боковых панелей, код выглядит следующим образом:
function openside($title, $collapse = false, $state = "on") { … your opening code … }Функция работает с тремя переменными:
- $title – заголовок панели;
- $collapse – отображает иконки открытой и закрытой панели, а также запоминает была ли скрыта или раскрыта панель с последнего появления пользователя на сайте;
- $state – дает возможность сворачивать/разворачивать панели, имеет соответственно 2 значения: «on» и «off».
function closeside()
Данная функция отвечает за построение закрывающих тегов боковых панелей, код выглядит следующим образом:
function closeside() { … your closing code … }Дополнительные строки
Как я уже отмечал, таких строк может быть также сколько угодно и, как правило, они прописываются в начале файла. Самые простые примеры это:
define("THEME_BULLET", "<img src='".THEME."images/bullet.gif' class='bullet' alt='»' border='0' />"); define("THEME_WIDTH", "100%");Первая строка определяет константу THEME_BULLET в виде некоего изображения для использования в различных местах, в частности в панели навигации. Для данной константы вы можете использовать любое изображение с любым расположением данного файла, но лучше хранить его в папке images самой темы, это будет более универсально.
Вторая строка определяет константу THEME_WIDTH, которая задает ширину темы. Данная константа может быть как в процентах: 100%, 90%, 80% и т.д., так и в пикселях: 1280px, 1024px и т.д.
Данные строки вы можете встретить чаще всего, но ими файл theme.php не ограничивается, описывать все нет смысла, так как тут нет предела и фантазии, можно прописывать все, что угодно для совершенствования темы.
Тема достаточно легко строится за счет этих функций и дополнительных строк, и можно самому дополнять файл необходимыми элементами. Но на самом деле по стандарту имеются очень ограниченные возможности по визуальному оформлению той или иной темы, т.к. построение блоков различных разделов сайта находятся в самих файлах дистрибутива и не выведены отдельно в тему. Но как говориться, нет предела совершенству.
- Печать
- 6 Комментариев
- 6534 Прочтений
Поделиться этой статьей | |
Социальные закладки: |
![]() ![]() ![]() ![]() ![]() ![]() |
URL: | |
BBcode: | |
HTML: |
- 5 (Отлично!) - 3 Голоса
Рейтинг доступен только для пользователей.
Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.