Theme API-referentie
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.
Site
| Variabele | Type | Beschrijving |
|---|---|---|
$_template | string | Huidige sjabloonnaam (bijv. 'home', 'video') |
$_siteName | string | Sitenaam uit instellingen |
$_siteDescription | string | Sitebeschrijving |
$_siteUrl | string | Site-URL |
$_videosPerRow | int | Rasterkolommen (4, 5 of 6) |
$_user | array\|null | Ingelogde gebruiker, of null |
$_footerPages | array | Statische pagina's gemarkeerd voor de voettekst |
$_registrationEnabled | bool | Registratie aan/uit |
$_ctrEnabled | bool | CTR-rangschikking aan/uit |
Uiterlijk
| Variabele | Type | Beschrijving |
|---|---|---|
$_siteLogo | string | Bestandsnaam van het logo (in /uploads/branding/) |
$_siteFavicon | string | Bestandsnaam van het favicon |
$_siteBackground | string | Bestandsnaam van de achtergrondafbeelding |
$_siteBackgroundMode | string | 'cover', 'contain' of 'repeat' |
$_colorOverrides | string | <style>-blok met CSS-aangepaste eigenschappen |
$_menuSearch | bool | Toon de zoekbalk |
$_menuItems | array | Navigatie-items (key, label, url, enabled, templates) |
Lokalisatie
| Variabele | Type | Beschrijving |
|---|---|---|
$_locale | string | Huidige landinstelling (bijv. 'en') |
$_direction | string | 'ltr' of 'rtl' |
$_isRtl | bool | Rechts-naar-links taal |
$_availableLangs | array | Beschikbare talen |
$_langPrefix | string | URL-prefix (bijv. '/fr' of '') |
Videokaartinstellingen
| Variabele | Type | Beschrijving |
|---|---|---|
$_cardShowDuration | bool | Toon de duurmarkering |
$_cardShowTitle | bool | Toon de videotitel |
$_cardMetaLeft | string | Linker meta: 'views', 'likes', 'time', 'none' |
$_cardMetaRight | string | Rechter meta (dezelfde opties) |
$_cardGridGap | int | Rasterafstand in pixels |
$_cardBorderRadius | int | Kaartrondingsstraal in pixels |
$_cardThumbnailHover | bool | Miniatuurhover-effect |
$_cardTitleLines | int | Titelregels (1 of 2) |
Bekijkpagina-instellingen
| Variabele | Type | Beschrijving |
|---|---|---|
$_watchShowViews | bool | Toon het aantal weergaven |
$_watchShowDuration | bool | Toon de duur |
$_watchShowDate | bool | Toon de publicatiedatum |
$_watchShowLikes | bool | Toon vind ik leuk / vind ik niet leuk |
$_watchShowFavorites | bool | Toon de favorietenknop |
$_watchShowPornstars | bool | Toon uitvoerders |
$_watchShowChannels | bool | Toon kanalen |
$_watchShowCategories | bool | Toon categorieën |
$_watchShowTags | bool | Toon tags |
$_commentsEnabled | bool | Reacties ingeschakeld |
$_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.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 |
category.php / tag.php / performer.php / channel.php
| Variabele | Type |
|---|---|
$category / $tag / $performer / $channel | array — de entiteit |
$videos | array — videorijen |
$pagination | Paginatie-object |
$sort | string |
Lijstsjablonen
| Sjabloon | Voornaamste variabelen |
|---|---|
categories.php | $categories — elk heeft video_count; met CTR ingeschakeld, best_video_thumbnail |
performers.php | $performers — video_count; met CTR ingeschakeld, best_video_thumbnail, total_ctr, gesorteerd op CTR; $pagination |
channels.php | Zelfde structuur als uitvoerders |
search.php | $query, $videos, $pagination |
Hulpklassen
Deze statische hulpfuncties zijn beschikbaar in elk sjabloon.
| Klasse | Voornaamste methoden |
|---|---|
ThemeRenderer | ::enqueueCSS($url, $priority), ::enqueueJS($url, $priority), ::partial($name, $data), ::bodyClass(), ::renderCSS(), ::renderJS() |
ThemeManager | ::assetUrl($path), ::themePath(), ::templatePath($t), ::active(), ::info($key) |
ImpressionTracker | ::collect($videoId), ::flush(), ::isBot() |
Format | ::number($n), ::duration($seconds), ::timeAgo($datetime), ::fileSize($bytes) |
Pagination | ->total, ->page, ->totalPages, ->offset, ->hasPrev(), ->hasNext(), ->pages(), ->prevUrl(), ->nextUrl() |
Router | ::url($path), ::csrfField(), ::csrfToken(), ::langPrefix() |
HookSystem | ::doAction($event, ...$args), ::applyFilter($filter, $value, ...$args) |
Auth | ::check(), ::user(), ::id() |
Setting | ::get($key, $default) |
__($key, $replacements) | Vertaalhulp |
url($path) | Snelkoppeling voor Router::url($path) |
De renderingsstroom
- 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.phpontvangt$contentplus 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
$contentin<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.
Volgende stappen
Nog vastgelopen?
Open een ticket vanuit uw dashboard en ons team helpt u verder.