Riferimento Theme API di TubePress: ogni variabile globale di template, funzione helper e classe disponibile quando si crea o si personalizza un tema per tube site.
Questa pagina è il riferimento completo per tutto ciò che un tema può utilizzare: le variabili globali iniettate in ogni template, le variabili specifiche per ciascun template e le classi helper disponibili nel codice del tema. Se stai creando o personalizzando un tema, tieni questa pagina aperta insieme a Sviluppo del tema.
Ogni template è renderizzato da ThemeRenderer::render($template, $data). Il renderer inietta un insieme di variabili globali con prefisso $_, le unisce ai dati $data specifici del template, esegue il filtro theme.template_data, inserisce il tuo template in un buffer come $content, poi carica layout.php.
Variabili globali
Queste sono disponibili in ogni template e in layout.php.
Sito
Variabile
Tipo
Descrizione
$_template
string
Nome del template corrente (es. 'home', 'video')
$_siteName
string
Nome del sito dalle impostazioni
$_siteDescription
string
Descrizione del sito
$_siteUrl
string
URL del sito
$_videosPerRow
int
Colonne della griglia (4, 5 o 6)
$_user
array|null
Utente autenticato, o null
$_footerPages
array
Pagine statiche contrassegnate per il footer
$_registrationEnabled
bool
Interruttore registrazione
$_ctrEnabled
bool
Interruttore classifica CTR
Aspetto
Variabile
Tipo
Descrizione
$_siteLogo
string
Nome file del logo (in /uploads/branding/)
$_siteFavicon
string
Nome file della favicon
$_siteBackground
string
Nome file dell'immagine di sfondo
$_siteBackgroundMode
string
'cover', 'contain' o 'repeat'
$_colorOverrides
string
Blocco <style> con proprietà CSS personalizzate
$_menuSearch
bool
Mostra la barra di ricerca
$_menuItems
array
Voci di navigazione (key, label, url, enabled, templates)
Locale
Variabile
Tipo
Descrizione
$_locale
string
Codice locale corrente (es. 'en')
$_direction
string
'ltr' o 'rtl'
$_isRtl
bool
Lingua da destra a sinistra
$_availableLangs
array
Lingue disponibili
$_langPrefix
string
Prefisso URL (es. '/fr' o '')
Impostazioni scheda video
Variabile
Tipo
Descrizione
$_cardShowDuration
bool
Mostra il badge durata
$_cardShowTitle
bool
Mostra il titolo del video
$_cardMetaLeft
string
Meta sinistra: 'views', 'likes', 'time', 'none'
$_cardMetaRight
string
Meta destra (stesse opzioni)
$_cardGridGap
int
Spaziatura della griglia in pixel
$_cardBorderRadius
int
Raggio del bordo della scheda in pixel
$_cardThumbnailHover
bool
Effetto hover sulla miniatura
$_cardTitleLines
int
Righe del titolo (1 o 2)
Impostazioni pagina di visualizzazione
Variabile
Tipo
Descrizione
$_watchShowViews
bool
Mostra il contatore visualizzazioni
$_watchShowDuration
bool
Mostra la durata
$_watchShowDate
bool
Mostra la data di pubblicazione
$_watchShowLikes
bool
Mostra mi piace / non mi piace
$_watchShowFavorites
bool
Mostra il pulsante preferiti
$_watchShowPornstars
bool
Mostra i performer
$_watchShowChannels
bool
Mostra i canali
$_watchShowCategories
bool
Mostra le categorie
$_watchShowTags
bool
Mostra i tag
$_commentsEnabled
bool
Commenti abilitati
Queste sono impostazioni, non magia. Ogni valore $_card* e $_watch* proviene direttamente dalla schermata Aspetto nell'amministrazione, così i proprietari del sito possono ridisegnare il tuo tema senza toccare il codice — purché tu legga queste variabili invece di inserire valori fissi.
Community
Variabile
Tipo
Descrizione
$_subscriptionsEnabled
bool
Le iscrizioni ai canali sono attive e il tema le supporta
$_subscriptionsUnseen
int
Nuovi video dai canali del membro dalla sua ultima visita (0 per gli ospiti)
$_memberUploadsEnabled
bool
I caricamenti dei membri sono attivi e il tema li supporta
$_pwaEnabled
bool
L’app installabile è attiva
Variabili specifiche per template
Oltre alle globali, ogni template riceve i propri dati.
home.php
Variabile
Tipo
$videos
array — righe video
$pagination
oggetto Pagination
$sort
string — chiave di ordinamento corrente
video.php
Variabile
Tipo
$video
array — video completo con categorie, tag, performer, canali
$categories, $tags, $performers
array
$comments
array
$similar
array — video simili
$recommended
array — video consigliati
$userVote
string|null — 'like', 'dislike' o null
$isFavorited
bool
$subscriptionsOn
bool — mostra il pulsante Iscriviti (impostazione attiva e supporto del tema)
$channelSubscribed, $channelSubscribers
bool, int — lo stato di chi guarda e il numero di iscritti del primo canale del video
$ownerPreview
bool — chi ha caricato il video sta guardando il proprio video non pubblicato
Il controller chiama il renderer.ThemeRenderer::render('home', ['videos' => $videos, …]).
Le variabili globali vengono iniettate. Vengono aggiunte le variabili con prefisso $_ per sito, aspetto, locale e impostazioni scheda/visualizzazione.
I plugin possono modificare i dati. Viene eseguito HookSystem::applyFilter('theme.template_data', $data, $templateName).
Il template viene renderizzato. Il tuo file template viene inserito in un buffer come $content.
Il layout viene caricato.layout.php riceve $content più tutte le variabili.
Le impression vengono inviate.ImpressionTracker::flush() invia l'aggiornamento batch delle impression (CTR).
Il cron viene eseguito.CronManager::run() esegue eventuali attività pianificate in scadenza.
Requisiti di layout.php
Il file layout.php di un tema deve fare tutto quanto segue:
Produrre l'intera struttura HTML (<!DOCTYPE html> … </html>).
Includere <?= ThemeRenderer::renderCSS() ?> in <head>.
Includere <?= $_colorOverrides ?> in <head>.
Stampare $content all'interno di <main>.
Includere <?= ThemeRenderer::renderJS() ?> prima di </body>.
Chiamare <?php ImpressionTracker::flush(); ?> prima di </body> (per CTR).
Chiamare <?php HookSystem::doAction('head.meta'); ?> in <head>.
Chiamare <?php HookSystem::doAction('footer.scripts'); ?> prima di </body>.
Fallback del template
Se un template è assente dal tema attivo, TubePress ricorre al tema Simply incluso. Un tema personalizzato deve quindi sovrascrivere solo i template che vuole effettivamente modificare — inizia da un template e aggiungi man mano.