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

Голосование
Как часто вы посещаете данный сайт?

1 раз в день
1 раз в день
17% [1 Голос]

1 раз в неделю
1 раз в неделю
33% [2 Голосов]

1 раз в месяц
1 раз в месяц
17% [1 Голос]

Очень редко
Очень редко
17% [1 Голос]

Первый раз зашёл
Первый раз зашёл
17% [1 Голос]

Голосов: 6
Вы должны авторизироваться, чтобы голосовать.
Начат: 26.07.2022 08:08

Архив опросов
Случайная тема
Миничат
Только пользователи могут отправлять сообщения.

Redfield
Offline
· 26.03.2024 18:25
А также разного рода манипуляция информацией. Кто заинтересован в этом тоже. Дайте о себе знать. Идеи приветствуются. Но будут отложены на будущее. Так как нужно время для текущего.

Redfield
Offline
· 26.03.2024 18:23
jikaka, Спасибо. Я думаю возродить проект. Проект будет базироваться на последней, седьмой версии системы. с использование окружения php 5.x Основные изменения коснуться визуальной части.

jikaka
OfflineAdmin
· 06.03.2024 06:22
Redfield, раздел Помощь, Обзор версий.

Redfield
Offline
· 03.03.2024 16:16
Всем привет. Где можно почитать об отличиях седьмой версии движка. Что хочется? Минимализм от скриптов и совместимость с аддонами.

kazik
Offline
· 07.01.2024 09:13
Понимаю, что в файле theme.php проблема. Старожилы, подскажите пожалуйста, что посмотреть? https://rusfusion...po
st_30832

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

Гости:
» [Ваш IP] 10:47:42
/Статьи
» 44.200.193.174 10:47:41
/Поиск
» 52.91.54.203 10:47:18
/Поиск
» 54.162.130.75 10:47:06
/Профиль
» 44.210.86.29 10:46:43
/Архив миничата
» Yandex [Bot] 10:46:33
/Архив миничата
» 95.163.255.65 10:46:32
/Статьи
» 54.198.108.174 10:46:29
/Архив миничата
» 3.94.77.30 10:46:26
/Профиль
» 85.234.49.145 10:46:14
/Регистрация
4 - не показано

» Всего пользователей: 1,685
» Новый пользователь: 464rrad
В базе имеется
аддонов: 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 Голоса

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

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