Справочник Theme API TubePress: все глобальные переменные шаблонов, хелпер-функции и классы, доступные при создании или настройке темы тьюб-сайта.
Эта страница содержит полный справочник всего, что может использовать тема: глобальные переменные, внедряемые в каждый шаблон, переменные, специфичные для каждого шаблона, и вспомогательные классы, доступные в коде темы. Если вы создаёте или настраиваете тему, держите эту страницу открытой рядом с Разработкой темы.
Каждый шаблон рендерится через ThemeRenderer::render($template, $data). Рендерер внедряет набор глобальных переменных с префиксом $_, объединяет их с данными $data, специфичными для шаблона, запускает фильтр theme.template_data, буферизует ваш шаблон в $content, затем загружает layout.php.
Глобальные переменные
Они доступны в каждом шаблоне и в layout.php.
Сайт
Переменная
Тип
Описание
$_template
string
Текущее имя шаблона (например, 'home', 'video')
$_siteName
string
Название сайта из настроек
$_siteDescription
string
Описание сайта
$_siteUrl
string
URL сайта
$_videosPerRow
int
Столбцы сетки (4, 5 или 6)
$_user
array|null
Авторизованный пользователь или null
$_footerPages
array
Статические страницы, отмеченные для футера
$_registrationEnabled
bool
Переключатель регистрации
$_ctrEnabled
bool
Переключатель рейтинга CTR
Внешний вид
Переменная
Тип
Описание
$_siteLogo
string
Имя файла логотипа (в /uploads/branding/)
$_siteFavicon
string
Имя файла фавикона
$_siteBackground
string
Имя файла фонового изображения
$_siteBackgroundMode
string
'cover', 'contain' или 'repeat'
$_colorOverrides
string
Блок <style> с CSS-переменными
$_menuSearch
bool
Показывать строку поиска
$_menuItems
array
Элементы навигации (key, label, url, enabled, templates)
Локаль
Переменная
Тип
Описание
$_locale
string
Текущий код локали (например, 'en')
$_direction
string
'ltr' или 'rtl'
$_isRtl
bool
Язык с написанием справа налево
$_availableLangs
array
Доступные языки
$_langPrefix
string
Префикс URL (например, '/fr' или '')
Настройки карточки видео
Переменная
Тип
Описание
$_cardShowDuration
bool
Показывать значок длительности
$_cardShowTitle
bool
Показывать название видео
$_cardMetaLeft
string
Левая мета: 'views', 'likes', 'time', 'none'
$_cardMetaRight
string
Правая мета (те же варианты)
$_cardGridGap
int
Отступ сетки в пикселях
$_cardBorderRadius
int
Радиус скругления карточки в пикселях
$_cardThumbnailHover
bool
Эффект при наведении на миниатюру
$_cardTitleLines
int
Строки заголовка (1 или 2)
Настройки страницы просмотра
Переменная
Тип
Описание
$_watchShowViews
bool
Показывать количество просмотров
$_watchShowDuration
bool
Показывать длительность
$_watchShowDate
bool
Показывать дату публикации
$_watchShowLikes
bool
Показывать лайк / дизлайк
$_watchShowFavorites
bool
Показывать кнопку «В избранное»
$_watchShowPornstars
bool
Показывать исполнителей
$_watchShowChannels
bool
Показывать каналы
$_watchShowCategories
bool
Показывать категории
$_watchShowTags
bool
Показывать теги
$_commentsEnabled
bool
Комментарии включены
Это настройки, а не магия. Каждое значение $_card* и $_watch* берётся непосредственно из экрана администратора Внешний вид, поэтому владельцы сайта могут изменить стиль вашей темы, не трогая код, — при условии, что вы используете эти переменные вместо жёстко заданных значений.
Сообщество
Переменная
Тип
Описание
$_subscriptionsEnabled
bool
Подписки на каналы включены, и тема их поддерживает
$_subscriptionsUnseen
int
Новые видео с каналов участника с момента его последнего визита (0 для гостей)
$_memberUploadsEnabled
bool
Загрузки участников включены, и тема их поддерживает
$_pwaEnabled
bool
Устанавливаемое приложение включено
Переменные, специфичные для шаблонов
В дополнение к глобальным переменным каждый шаблон получает собственные данные.
home.php
Переменная
Тип
$videos
array — строки видео
$pagination
Объект Pagination
$sort
string — текущий ключ сортировки
video.php
Переменная
Тип
$video
array — полное видео с категориями, тегами, исполнителями и каналами
$categories, $tags, $performers
array
$comments
array
$similar
array — похожие видео
$recommended
array — рекомендуемые видео
$userVote
string|null — 'like', 'dislike' или null
$isFavorited
bool
$subscriptionsOn
bool — показывать кнопку «Подписаться» (настройка включена и тема её поддерживает)
$channelSubscribed, $channelSubscribers
bool, int — состояние зрителя и число подписчиков первого канала видео
$ownerPreview
bool — загрузивший смотрит своё ещё не опубликованное видео
Запускается cron.CronManager::run() выполняет все запланированные задачи.
Требования к layout.php
Файл layout.php темы должен выполнять всё перечисленное ниже:
Выводить полную HTML-оболочку (<!DOCTYPE html> … </html>).
Включать <?= ThemeRenderer::renderCSS() ?> в <head>.
Включать <?= $_colorOverrides ?> в <head>.
Выводить $content внутри <main>.
Включать <?= ThemeRenderer::renderJS() ?> перед </body>.
Вызывать <?php ImpressionTracker::flush(); ?> перед </body> (для CTR).
Вызывать <?php HookSystem::doAction('head.meta'); ?> в <head>.
Вызывать <?php HookSystem::doAction('footer.scripts'); ?> перед </body>.
Запасной шаблон
Если шаблон отсутствует в активной теме, TubePress использует встроенную тему Simply. Пользовательская тема поэтому должна переопределять только те шаблоны, которые нужно изменить, — начните с одного шаблона и расширяйте по мере необходимости.