İçeriğe atla
TubePress — ücretsiz, kendi sunucunda & aktif olarak geliştirilen
Geliştirici referansı

Tema API referansı

TubePress Tema API referansı: bir tube sitesi teması oluştururken veya özelleştirirken kullanabileceğiniz her genel şablon değişkeni, yardımcı işlev ve sınıf.

Bu sayfa, bir temanın kullanabileceği her şeyin tam referansıdır: her şablona enjekte edilen genel değişkenler, her şablona özgü değişkenler ve tema kodunda kullanılabilen yardımcı sınıflar. Bir tema oluşturuyor veya özelleştiriyorsanız, bu sayfayı Tema geliştirme ile birlikte açık tutun.

Her şablon ThemeRenderer::render($template, $data) tarafından işlenir. İşleyici, $_ önekli bir dizi genel değişken enjekte eder, şablona özgü $data ile birleştirir, theme.template_data filtresini çalıştırır, şablonunuzu $content içine arabelleğe alır, ardından layout.php'yi yükler.

Genel değişkenler

Bunlar her şablonda ve layout.php'de mevcuttur.

Site

DeğişkenTürAçıklama
$_templatestringGeçerli şablon adı (örn. 'home', 'video')
$_siteNamestringAyarlardan site adı
$_siteDescriptionstringSite açıklaması
$_siteUrlstringSite URL'si
$_videosPerRowintIzgara sütunları (4, 5 veya 6)
$_userarray\|nullOturum açmış kullanıcı veya null
$_footerPagesarrayAlt bilgi için işaretlenmiş statik sayfalar
$_registrationEnabledboolKayıt açma/kapatma
$_ctrEnabledboolCTR sıralama açma/kapatma

Görünüm

DeğişkenTürAçıklama
$_siteLogostringLogo dosya adı (/uploads/branding/ içinde)
$_siteFaviconstringFavicon dosya adı
$_siteBackgroundstringArka plan resmi dosya adı
$_siteBackgroundModestring'cover', 'contain' veya 'repeat'
$_colorOverridesstringCSS özel özellikleri içeren <style> bloğu
$_menuSearchboolArama çubuğunu göster
$_menuItemsarrayGezinme öğeleri (key, label, url, enabled, templates)

Yerel ayar

DeğişkenTürAçıklama
$_localestringGeçerli yerel ayar kodu (örn. 'en')
$_directionstring'ltr' veya 'rtl'
$_isRtlboolSağdan sola dil
$_availableLangsarrayMevcut diller
$_langPrefixstringURL öneki (örn. '/fr' veya '')

Video kartı ayarları

DeğişkenTürAçıklama
$_cardShowDurationboolSüre rozetini göster
$_cardShowTitleboolVideo başlığını göster
$_cardMetaLeftstringSol meta: 'views', 'likes', 'time', 'none'
$_cardMetaRightstringSağ meta (aynı seçenekler)
$_cardGridGapintIzgara boşluğu (piksel)
$_cardBorderRadiusintKart köşe yarıçapı (piksel)
$_cardThumbnailHoverboolKüçük resim üzerine gelme efekti
$_cardTitleLinesintBaşlık satırları (1 veya 2)

İzleme sayfası ayarları

DeğişkenTürAçıklama
$_watchShowViewsboolİzlenme sayısını göster
$_watchShowDurationboolSüreyi göster
$_watchShowDateboolYayın tarihini göster
$_watchShowLikesboolBeğeni / beğenmeme göster
$_watchShowFavoritesboolFavori düğmesini göster
$_watchShowPornstarsboolOyuncuları göster
$_watchShowChannelsboolKanalları göster
$_watchShowCategoriesboolKategorileri göster
$_watchShowTagsboolEtiketleri göster
$_commentsEnabledboolYorumlar etkin
Bunlar ayardır, sihir değil. Her $_card* ve $_watch* değeri doğrudan yönetici Görünüm ekranından gelir; böylece site sahipleri koda dokunmadan temanızı yeniden biçimlendirebilir — bu değişkenleri sabit kodlamak yerine okuduğunuz sürece.

Şablona özgü değişkenler

Genel değişkenlere ek olarak, her şablon kendi verilerini alır.

home.php

DeğişkenTür
$videosarray — video satırları
$paginationPagination nesnesi
$sortstring — geçerli sıralama anahtarı

video.php

DeğişkenTür
$videoarray — kategoriler, etiketler, oyuncular, kanallar içeren tam video
$categories, $tags, $performersarray
$commentsarray
$similararray — benzer videolar
$recommendedarray — önerilen videolar
$userVotestring\|null — 'like', 'dislike' veya null
$isFavoritedbool

category.php / tag.php / performer.php / channel.php

DeğişkenTür
$category / $tag / $performer / $channelarray — varlık
$videosarray — video satırları
$paginationPagination nesnesi
$sortstring

Listeleme şablonları

ŞablonÖnemli değişkenler
categories.php$categories — her birinin video_count'u vardır; CTR açıkken best_video_thumbnail
performers.php$performersvideo_count; CTR açıkken best_video_thumbnail, total_ctr, CTR'ye göre sıralanmış; $pagination
channels.phpOyuncularla aynı yapı
search.php$query, $videos, $pagination

Yardımcı sınıflar

Bu statik yardımcılar her şablonda mevcuttur.

SınıfTemel metotlar
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)Çeviri yardımcısı
url($path)Router::url($path) için kısayol

İşleme akışı

  1. Kontrolcü işleyiciyi çağırır. ThemeRenderer::render('home', ['videos' => $videos, …]).
  2. Genel değişkenler enjekte edilir. $_ önekli site, görünüm, yerel ayar ve kart/izleme değişkenleri eklenir.
  3. Eklentiler veriyi değiştirebilir. HookSystem::applyFilter('theme.template_data', $data, $templateName) çalışır.
  4. Şablon işlenir. Şablon dosyanız $content'e arabelleğe alınır.
  5. Düzen yüklenir. layout.php, $content'i ve tüm değişkenleri alır.
  6. Gösterimler temizlenir. ImpressionTracker::flush(), toplu gösterim güncellemesini (CTR) gönderir.
  7. Cron çalışır. CronManager::run(), vadesi gelen planlanmış görevleri yürütür.

layout.php gereksinimleri

Bir temanın layout.php dosyası aşağıdakilerin tümünü yapmalıdır:

  1. Tam HTML kabuğunu çıktıla (<!DOCTYPE html></html>).
  2. <head> içine <?= ThemeRenderer::renderCSS() ?> ekle.
  3. <head> içine <?= $_colorOverrides ?> ekle.
  4. <main> içine $content'i yazdır.
  5. </body> öncesine <?= ThemeRenderer::renderJS() ?> ekle.
  6. </body> öncesinde <?php ImpressionTracker::flush(); ?> çağır (CTR için).
  7. <head> içinde <?php HookSystem::doAction('head.meta'); ?> çağır.
  8. </body> öncesinde <?php HookSystem::doAction('footer.scripts'); ?> çağır.

Şablon geri dönüşü

Etkin temada bir şablon eksikse, TubePress, paketlenmiş Simply temasına geri döner. Bu nedenle özel bir tema yalnızca gerçekten değiştirmek istediği şablonları geçersiz kılması gerekir — bir şablondan başlayın ve oradan büyütün.

Sonraki adımlar

Hâlâ takıldınız mı?

Kontrol panelinizden bir destek talebi açın, ekibimiz size yardımcı olacaktır.

Canlı demoyu deneyin → TubePress'i indirin →