Забыли пароль?
Запросите новый здесь.

Голосование
Что вас интересует на нашем сайте больше всего?

База аддонов
База аддонов
32% [6 Голосов]

Форум, поиск ответов
Форум, поиск ответов
26% [5 Голосов]

Общение
Общение
26% [5 Голосов]

Новости
Новости
0% [0 Голосов]

Другое
Другое
16% [3 Голосов]

Голосов: 19
Вы должны авторизироваться, чтобы голосовать.
Начат: 16.05.2017 07:06

Архив опросов
Случайная тема
Друзья проекта
Unlogic W0rst Lab
Система Smart для PHP-Fusion
Миничат
Только пользователи могут отправлять сообщения.

Vova
Offline
· 14.11.2018 12:42
Zaxap, на основе Hetzner Cloud через их API: https://hetzner.a.
..loud/login

Polarfox
OfflineAdmin
· 11.11.2018 14:42
no comments

Vveb--ws
Offline
· 10.11.2018 15:24
зачем эти заморочки с безопасностью?

Rush
OfflineAdmin
· 08.11.2018 08:33
Безопасность обычно заключается в том чтобы предотвратить подмену этого айди на клиенте, привязать его к айпи, юзер агенту и прочей фигне

Rush
OfflineAdmin
· 08.11.2018 08:32
Сессию украсть или подменить нельзя, она хранится на сервере. Можно украсть кукисы. Айди сессии это всего лишь айди, он не может быть лучше или хуже чем другой айди)

Архив миничата
Сейчас на сайте
» Гостей: 3

Гости:
» [Ваш IP] 01:18:48
/Статьи
» 69.162.124.235 01:18:04
» 70.93.202.49 01:17:43

» Всего пользователей: 1,370
» Новый пользователь: EuroHoster
В базе имеется
аддонов: 951
тем: 137
Иерархия статей
Создание тем – Часть 2. Файл theme.php.

Прежде, чем переходить непосредственно к описанию манипуляций разработки темы, необходимо знать строение основного файла любой темы, а именно: 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='&raquo;' border='0' />");
define("THEME_WIDTH", "100%");

Первая строка определяет константу THEME_BULLET в виде некоего изображения для использования в различных местах, в частности в панели навигации. Для данной константы вы можете использовать любое изображение с любым расположением данного файла, но лучше хранить его в папке images самой темы, это будет более универсально.

Вторая строка определяет константу THEME_WIDTH, которая задает ширину темы. Данная константа может быть как в процентах: 100%, 90%, 80% и т.д., так и в пикселях: 1280px, 1024px и т.д.

Данные строки вы можете встретить чаще всего, но ими файл theme.php не ограничивается, описывать все нет смысла, так как тут нет предела и фантазии, можно прописывать все, что угодно для совершенствования темы.

Тема достаточно легко строится за счет этих функций и дополнительных строк, и можно самому дополнять файл необходимыми элементами. Но на самом деле по стандарту имеются очень ограниченные возможности по визуальному оформлению той или иной темы, т.к. построение блоков различных разделов сайта находятся в самих файлах дистрибутива и не выведены отдельно в тему. Но как говориться, нет предела совершенству.


Поделиться этой статьей
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:


#1 | Zaxap 18.06.2014 01:11
Avatar
Отсутствует
Пользователь
Активный
С 05.09.2012 10:32
Как в showbanners() отдельно вывести лого и баннер?
Зло не дремлет, а я добрый...
#2 | jikaka 18.06.2014 06:45
Avatar
Отсутствует
Супер Администратор
Активный
С 26.07.2010 12:10
ты посмотри, как это функция описывается
мысли | фото
#3 | Zaxap 18.06.2014 13:19
Avatar
Отсутствует
Пользователь
Активный
С 05.09.2012 10:32
jikaka, вижу) Просто помнится, что были, вроде, некие "индексы"...что ли по типу
showbanners( "1" ) выводит логотип/1 баннер, а
showbanners( "2" ), к примеру, выводит 2 баннер...

Ведь showsublinks( "<b>point</b>","<s>hello</s>" ) существует...ab
Зло не дремлет, а я добрый...
#4 | jikaka 21.06.2014 06:12
Avatar
Отсутствует
Супер Администратор
Активный
С 26.07.2010 12:10
Zaxap, ты посмотри описание функции на офсайте
мысли | фото
#5 | eddy 15.03.2015 23:15
No Avatar
Отсутствует
Пользователь
Активный
С 16.01.2015 21:58
Подскажите, где описываются константы LEFT,
RIGHT, U_CENTER, L_CENTER, CONTENT?

Прямой поиск по всем файлам ничего не дал.
#6 | jikaka 30.03.2015 06:42
Avatar
Отсутствует
Супер Администратор
Активный
С 26.07.2010 12:10
theme/templates/panels.php
мысли | фото
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
5 (Отлично!) - 3 Голоса

Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.