TubePress थीम API संदर्भ: ट्यूब साइट थीम बनाते या कस्टमाइज़ करते समय उपलब्ध प्रत्येक वैश्विक टेम्पलेट वेरिएबल, हेल्पर फ़ंक्शन और क्लास।
यह पृष्ठ उन सभी चीज़ों का पूर्ण संदर्भ है जो एक थीम उपयोग कर सकती है: हर टेम्पलेट में इंजेक्ट किए जाने वाले वैश्विक वेरिएबल, प्रत्येक टेम्पलेट के लिए विशिष्ट वेरिएबल, और थीम कोड में उपलब्ध हेल्पर क्लासें। यदि आप थीम बना रहे हैं या कस्टमाइज़ कर रहे हैं, तो इस पृष्ठ को थीम विकास के साथ खुला रखें।
हर टेम्पलेट को ThemeRenderer::render($template, $data) द्वारा रेंडर किया जाता है। रेंडरर वैश्विक $_-प्रीफिक्स्ड वेरिएबल का एक सेट इंजेक्ट करता है, टेम्पलेट-विशिष्ट $data को मर्ज करता है, theme.template_data फ़िल्टर चलाता है, आपके टेम्पलेट को $content में बफ़र करता है, फिर layout.php लोड करता है।
ये सेटिंग्स हैं, जादू नहीं। प्रत्येक $_card* और $_watch* मान सीधे एडमिन दिखावट स्क्रीन से आता है, इसलिए साइट मालिक आपकी थीम को बिना कोड छुए री-स्टाइल कर सकते हैं — जब तक आप हार्ड-कोडिंग के बजाय इन वेरिएबल को पढ़ते हैं।
कम्युनिटी
वेरिएबल
प्रकार
विवरण
$_subscriptionsEnabled
bool
चैनल सब्सक्रिप्शन चालू हैं और थीम उन्हें सपोर्ट करती है
$_subscriptionsUnseen
int
सदस्य की पिछली विज़िट के बाद से उसके चैनलों के नए वीडियो (गेस्ट के लिए 0)
$_memberUploadsEnabled
bool
सदस्य अपलोड चालू हैं और थीम उन्हें सपोर्ट करती है
$_pwaEnabled
bool
इंस्टॉल करने योग्य ऐप चालू है
टेम्पलेट-विशिष्ट वेरिएबल
वैश्विक वेरिएबल के अतिरिक्त, प्रत्येक टेम्पलेट अपना खुद का डेटा प्राप्त करता है।
home.php
वेरिएबल
प्रकार
$videos
array — वीडियो पंक्तियां
$pagination
Pagination ऑब्जेक्ट
$sort
string — वर्तमान सॉर्ट की
video.php
वेरिएबल
प्रकार
$video
array — श्रेणियों, टैग, परफ़ॉर्मर, चैनल सहित पूरा वीडियो
$categories, $tags, $performers
array
$comments
array
$similar
array — समान वीडियो
$recommended
array — अनुशंसित वीडियो
$userVote
string|null — 'like', 'dislike' या null
$isFavorited
bool
$subscriptionsOn
bool — सब्सक्राइब बटन दिखाएँ (सेटिंग चालू और थीम सपोर्ट)
$channelSubscribed, $channelSubscribers
bool, int — दर्शक की स्थिति और वीडियो के पहले चैनल के सब्सक्राइबर की संख्या
$ownerPreview
bool — अपलोड करने वाला अपना अप्रकाशित वीडियो देख रहा है
कंट्रोलर रेंडरर को कॉल करता है।ThemeRenderer::render('home', ['videos' => $videos, …]).
वैश्विक वेरिएबल इंजेक्ट किए जाते हैं।$_-प्रीफिक्स्ड साइट, दिखावट, लोकेल और कार्ड/वॉच वेरिएबल जोड़े जाते हैं।
प्लगइन डेटा को संशोधित कर सकते हैं।HookSystem::applyFilter('theme.template_data', $data, $templateName) चलाया जाता है।
टेम्पलेट रेंडर होता है। आपकी टेम्पलेट फ़ाइल को $content में बफ़र किया जाता है।
लेआउट लोड होता है।layout.php को $content और सभी वेरिएबल मिलते हैं।
इंप्रेशन फ्लश होते हैं।ImpressionTracker::flush() बैच किए गए इंप्रेशन अपडेट (CTR) भेजता है।
Cron चलता है।CronManager::run() किसी भी देय शेड्यूल किए गए कार्य को निष्पादित करता है।
layout.php आवश्यकताएं
एक थीम के layout.php को निम्नलिखित सभी काम करने चाहिए:
पूरा HTML शेल आउटपुट करें (<!DOCTYPE html> … </html>).
<head> में <?= ThemeRenderer::renderCSS() ?> शामिल करें।
<head> में <?= $_colorOverrides ?> शामिल करें।
<main> के अंदर $content echo करें।
</body> से पहले <?= ThemeRenderer::renderJS() ?> शामिल करें।
</body> से पहले <?php ImpressionTracker::flush(); ?> कॉल करें (CTR के लिए)।
<head> में <?php HookSystem::doAction('head.meta'); ?> कॉल करें।
</body> से पहले <?php HookSystem::doAction('footer.scripts'); ?> कॉल करें।
टेम्पलेट फ़ॉलबैक
यदि कोई टेम्पलेट सक्रिय थीम में अनुपस्थित है, तो TubePress बंडल किए गए Simply थीम पर फ़ॉलबैक करता है। इसलिए एक कस्टम थीम को केवल उन टेम्पलेट को ओवरराइड करने की ज़रूरत है जिन्हें वह वास्तव में बदलना चाहती है — एक टेम्पलेट से शुरू करें और वहां से आगे बढ़ें।