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

Голосование
Тип Вашего интернет-проекта?

Новостной ресурс
Новостной ресурс
0% [0 Голосов]

Тематический/информационный ресурс
Тематический/информационный ресурс
18% [2 Голосов]

Социальная сеть/блог
Социальная сеть/блог
9% [1 Голос]

Корпоративный портал
Корпоративный портал
0% [0 Голосов]

Интернет-магазин
Интернет-магазин
0% [0 Голосов]

Промосайт
Промосайт
9% [1 Голос]

У меня несколько сайтов
У меня несколько сайтов
36% [4 Голосов]

У меня вообще нет сайта
У меня вообще нет сайта
0% [0 Голосов]

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

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

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

jikaka
OfflineAdmin
· 26.04.2017 15:53
ab

Warhangel
OfflineAdmin
· 25.04.2017 23:30
ммм вообще надо организовать раздел проверенных сервисов

Warhangel
OfflineAdmin
· 25.04.2017 23:27
так вроде в разделе рекламы ag

Alex
Offline
· 25.04.2017 18:23
Костя дай права удалять темы и банить ботов. подчищать буду то что насрут

jikaka
OfflineAdmin
· 20.04.2017 06:24
Polarfox, шляпа там

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

Гости:
» [Ваш IP] 19:47:57
/Статьи
» 144.76.112.23 19:47:55
/moddb/error.php
» 51.255.65.45 19:47:51
/Поиск
» 46.229.168.65 19:47:44
/Поиск
» 46.229.168.68 19:47:40
/Поиск
» 46.229.168.66 19:47:23
/Архив миничата
» 164.132.161.65 19:47:10
/Поиск
» 46.229.168.70 19:46:59
/Поиск
» 40.77.167.18 19:46:55
» 51.255.71.113 19:46:50
/Поиск
2 - не показано

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

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

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