Referensi Theme API TubePress: setiap variabel template global, fungsi helper dan kelas yang tersedia saat membangun atau menyesuaikan tema situs tube.
Halaman ini adalah referensi lengkap untuk semua yang dapat digunakan oleh sebuah tema: variabel global yang diinjeksikan ke setiap template, variabel yang spesifik untuk setiap template, dan kelas helper yang tersedia dalam kode tema. Jika Anda sedang membangun atau menyesuaikan tema, buka halaman ini bersama Pengembangan tema.
Setiap template dirender oleh ThemeRenderer::render($template, $data). Renderer menginjeksikan sekumpulan variabel dengan awalan $_, menggabungkan $data yang spesifik untuk template, menjalankan filter theme.template_data, menyangga template Anda ke dalam $content, lalu memuat layout.php.
Variabel global
Variabel-variabel ini tersedia di setiap template dan di layout.php.
Ini adalah pengaturan, bukan keajaiban. Setiap nilai $_card* dan $_watch* berasal langsung dari layar Tampilan admin, sehingga pemilik situs dapat mengubah gaya tema Anda tanpa menyentuh kode — asalkan Anda membaca variabel-variabel ini alih-alih menulis nilai langsung.
Komunitas
Variabel
Tipe
Deskripsi
$_subscriptionsEnabled
bool
Langganan saluran aktif dan tema mendukungnya
$_subscriptionsUnseen
int
Video baru dari saluran anggota sejak kunjungan terakhirnya (0 untuk tamu)
$_memberUploadsEnabled
bool
Unggahan anggota aktif dan tema mendukungnya
$_pwaEnabled
bool
Aplikasi yang dapat dipasang aktif
Variabel khusus template
Selain variabel global, setiap template menerima datanya sendiri.
home.php
Variabel
Tipe
$videos
array — baris video
$pagination
Objek Pagination
$sort
string — kunci sortir saat ini
video.php
Variabel
Tipe
$video
array — video lengkap beserta kategori, tag, performer, saluran
$categories, $tags, $performers
array
$comments
array
$similar
array — video serupa
$recommended
array — video yang direkomendasikan
$userVote
string|null — 'like', 'dislike' atau null
$isFavorited
bool
$subscriptionsOn
bool — tampilkan tombol Ikuti (pengaturan aktif dan didukung tema)
$channelSubscribed, $channelSubscribers
bool, int — status penonton dan jumlah pelanggan saluran pertama video
$ownerPreview
bool — pengunggah sedang melihat videonya sendiri yang belum diterbitkan
Variabel global diinjeksikan. Variabel situs, tampilan, lokal, dan kartu/tonton dengan awalan $_ ditambahkan.
Plugin dapat mengubah data.HookSystem::applyFilter('theme.template_data', $data, $templateName) dijalankan.
Template dirender. File template Anda disangga ke dalam $content.
Layout dimuat.layout.php menerima $content beserta semua variabel.
Impresi dikirim.ImpressionTracker::flush() mengirimkan pembaruan impresi yang dikelompokkan (CTR).
Cron berjalan.CronManager::run() mengeksekusi tugas terjadwal yang sudah waktunya.
Persyaratan layout.php
layout.php tema harus melakukan semua hal berikut:
Menghasilkan shell HTML lengkap (<!DOCTYPE html> … </html>).
Menyertakan <?= ThemeRenderer::renderCSS() ?> di dalam <head>.
Menyertakan <?= $_colorOverrides ?> di dalam <head>.
Menampilkan $content di dalam <main>.
Menyertakan <?= ThemeRenderer::renderJS() ?> sebelum </body>.
Memanggil <?php ImpressionTracker::flush(); ?> sebelum </body> (untuk CTR).
Memanggil <?php HookSystem::doAction('head.meta'); ?> di dalam <head>.
Memanggil <?php HookSystem::doAction('footer.scripts'); ?> sebelum </body>.
Fallback template
Jika sebuah template tidak ada di tema aktif, TubePress akan kembali ke tema Simply bawaan. Tema kustom oleh karena itu hanya perlu mengganti template yang benar-benar ingin diubah — mulai dari satu template dan kembangkan dari sana.