TubePress Theme API-referentie: elke globale templatevariabele, helperfunctie en klasse die beschikbaar is bij het bouwen of aanpassen van een tubesite-thema.
Deze pagina is de volledige naslaggids voor alles wat een thema kan gebruiken: de globale variabelen die in elk sjabloon worden ingevoegd, de variabelen die specifiek zijn voor elk sjabloon, en de hulpklassen die beschikbaar zijn in themacode. Als u een thema bouwt of aanpast, houd deze pagina dan open naast Thema-ontwikkeling.
Elk sjabloon wordt gerenderd door ThemeRenderer::render($template, $data). De renderer voegt een reeks globale $_-voorafgegane variabelen in, voegt de sjabloonspecifieke $data samen, voert het filter theme.template_data uit, buffert uw sjabloon in $content en laadt vervolgens layout.php.
Globale variabelen
Deze zijn beschikbaar in elk sjabloon en in layout.php.
Dit zijn instellingen, geen magie. Elke $_card*- en $_watch*-waarde komt rechtstreeks van het Uiterlijk-scherm voor beheerders, zodat site-eigenaren uw thema kunnen herstylen zonder code aan te raken — zolang u deze variabelen leest in plaats van hardcoderen.
Community
Variabele
Type
Beschrijving
$_subscriptionsEnabled
bool
Kanaalabonnementen zijn ingeschakeld en het thema ondersteunt ze
$_subscriptionsUnseen
int
Nieuwe video's van de kanalen van het lid sinds het laatste bezoek (0 voor gasten)
$_memberUploadsEnabled
bool
Ledenuploads zijn ingeschakeld en het thema ondersteunt ze
$_pwaEnabled
bool
De installeerbare app is ingeschakeld
Sjabloonspecifieke variabelen
Naast de globale variabelen ontvangt elk sjabloon zijn eigen data.
home.php
Variabele
Type
$videos
array — videorijen
$pagination
Paginatie-object
$sort
string — huidige sorteersleutel
video.php
Variabele
Type
$video
array — volledige video met categorieën, tags, uitvoerders, kanalen
$categories, $tags, $performers
array
$comments
array
$similar
array — vergelijkbare video's
$recommended
array — aanbevolen video's
$userVote
string|null — 'like', 'dislike' of null
$isFavorited
bool
$subscriptionsOn
bool — de knop Abonneren tonen (instelling aan en ondersteuning door het thema)
$channelSubscribed, $channelSubscribers
bool, int — de status van de kijker en het aantal abonnees van het eerste kanaal van de video
$ownerPreview
bool — de uploader bekijkt de eigen, nog niet gepubliceerde video
Controller roept de renderer aan.ThemeRenderer::render('home', ['videos' => $videos, …]).
Globale variabelen worden ingevoegd. De $_-voorafgegane site-, uiterlijk-, lokalisatie- en kaart/bekijk-variabelen worden toegevoegd.
Plugins kunnen de data wijzigen.HookSystem::applyFilter('theme.template_data', $data, $templateName) wordt uitgevoerd.
Het sjabloon wordt gerenderd. Uw sjabloonbestand wordt gebufferd in $content.
De lay-out wordt geladen.layout.php ontvangt $content plus alle variabelen.
Vertoningen worden geflusht.ImpressionTracker::flush() verzendt de gebundelde vertoningsupdate (CTR).
Cron wordt uitgevoerd.CronManager::run() voert alle geplande taken uit die aan de beurt zijn.
Vereisten voor layout.php
De layout.php van een thema moet al het volgende doen:
Voer de volledige HTML-shell uit (<!DOCTYPE html> … </html>).
Voeg <?= ThemeRenderer::renderCSS() ?> toe in <head>.
Voeg <?= $_colorOverrides ?> toe in <head>.
Echo $content in <main>.
Voeg <?= ThemeRenderer::renderJS() ?> toe voor </body>.
Roep <?php ImpressionTracker::flush(); ?> aan voor </body> (voor CTR).
Roep <?php HookSystem::doAction('head.meta'); ?> aan in <head>.
Roep <?php HookSystem::doAction('footer.scripts'); ?> aan voor </body>.
Sjabloonfallback
Als een sjabloon ontbreekt in het actieve thema, valt TubePress terug op het meegeleverde Simply-thema. Een aangepast thema hoeft daarom alleen de sjablonen te overschrijven die het daadwerkelijk wil wijzigen — begin met één sjabloon en bouw van daaruit uit.