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

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

База аддонов
База аддонов
11% [1 Голос]

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

Общение
Общение
33% [3 Голосов]

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

Другое
Другое
22% [2 Голосов]

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

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

Alipapa
Offline
· 18.07.2017 22:13
тоже попадалась

Alex
Offline
· 18.07.2017 12:50
встретилась реклама в директе тык ab

jikaka
OfflineAdmin
· 12.07.2017 11:14
Alex, потому что лето...

Alex
Offline
· 11.07.2017 16:32
опять тишина

Alex
Offline
· 26.06.2017 18:41

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

Гости:
» [Ваш IP] 06:33:13
/Статьи
» 46.229.168.67 06:33:12
/Поиск
» 46.229.168.75 06:33:12
/Поиск
» 77.75.76.171 06:33:10
/Новости
» Google [Bot] 06:33:03
/Поиск
» 46.229.168.76 06:32:58
/Поиск
» 217.182.132.181 06:32:51
/Поиск
» 217.182.132.88 06:32:39
/Поиск
» 46.229.168.79 06:32:36
/Поиск
» Yahoo [Bot] 06:32:36
/Поиск
11 - не показано

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

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

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