थीम API संदर्भ
TubePress थीम API संदर्भ: ट्यूब साइट थीम बनाते या कस्टमाइज़ करते समय उपलब्ध प्रत्येक वैश्विक टेम्पलेट वेरिएबल, हेल्पर फ़ंक्शन और क्लास।
यह पृष्ठ उन सभी चीज़ों का पूर्ण संदर्भ है जो एक थीम उपयोग कर सकती है: हर टेम्पलेट में इंजेक्ट किए जाने वाले वैश्विक वेरिएबल, प्रत्येक टेम्पलेट के लिए विशिष्ट वेरिएबल, और थीम कोड में उपलब्ध हेल्पर क्लासें। यदि आप थीम बना रहे हैं या कस्टमाइज़ कर रहे हैं, तो इस पृष्ठ को थीम विकास के साथ खुला रखें।
हर टेम्पलेट को ThemeRenderer::render($template, $data) द्वारा रेंडर किया जाता है। रेंडरर वैश्विक $_-प्रीफिक्स्ड वेरिएबल का एक सेट इंजेक्ट करता है, टेम्पलेट-विशिष्ट $data को मर्ज करता है, theme.template_data फ़िल्टर चलाता है, आपके टेम्पलेट को $content में बफ़र करता है, फिर layout.php लोड करता है।
वैश्विक वेरिएबल
ये हर टेम्पलेट में और layout.php में उपलब्ध हैं।
साइट
| वेरिएबल | प्रकार | विवरण |
|---|---|---|
$_template | string | वर्तमान टेम्पलेट नाम (जैसे 'home', 'video') |
$_siteName | string | सेटिंग्स से साइट का नाम |
$_siteDescription | string | साइट विवरण |
$_siteUrl | string | साइट URL |
$_videosPerRow | int | ग्रिड कॉलम (4, 5 या 6) |
$_user | array\|null | लॉग-इन उपयोगकर्ता, या null |
$_footerPages | array | फ़ुटर के लिए चिह्नित स्थिर पृष्ठ |
$_registrationEnabled | bool | पंजीकरण टॉगल |
$_ctrEnabled | bool | CTR रैंकिंग टॉगल |
दिखावट
| वेरिएबल | प्रकार | विवरण |
|---|---|---|
$_siteLogo | string | लोगो फ़ाइल नाम (/uploads/branding/ में) |
$_siteFavicon | string | Favicon फ़ाइल नाम |
$_siteBackground | string | बैकग्राउंड इमेज फ़ाइल नाम |
$_siteBackgroundMode | string | 'cover', 'contain' या 'repeat' |
$_colorOverrides | string | CSS कस्टम प्रॉपर्टीज़ के साथ <style> ब्लॉक |
$_menuSearch | bool | सर्च बार दिखाएं |
$_menuItems | array | नेविगेशन आइटम (key, label, url, enabled, templates) |
लोकेल
| वेरिएबल | प्रकार | विवरण |
|---|---|---|
$_locale | string | वर्तमान लोकेल कोड (जैसे 'en') |
$_direction | string | 'ltr' या 'rtl' |
$_isRtl | bool | दाएं-से-बाएं भाषा |
$_availableLangs | array | उपलब्ध भाषाएं |
$_langPrefix | string | URL प्रीफ़िक्स (जैसे '/fr' या '') |
वीडियो कार्ड सेटिंग्स
| वेरिएबल | प्रकार | विवरण |
|---|---|---|
$_cardShowDuration | bool | अवधि बैज दिखाएं |
$_cardShowTitle | bool | वीडियो शीर्षक दिखाएं |
$_cardMetaLeft | string | बाईं मेटा: 'views', 'likes', 'time', 'none' |
$_cardMetaRight | string | दाईं मेटा (समान विकल्प) |
$_cardGridGap | int | ग्रिड गैप पिक्सेल में |
$_cardBorderRadius | int | कार्ड बॉर्डर रेडियस पिक्सेल में |
$_cardThumbnailHover | bool | थंबनेल होवर इफ़ेक्ट |
$_cardTitleLines | int | शीर्षक पंक्तियां (1 या 2) |
वॉच पृष्ठ सेटिंग्स
| वेरिएबल | प्रकार | विवरण |
|---|---|---|
$_watchShowViews | bool | व्यू काउंट दिखाएं |
$_watchShowDuration | bool | अवधि दिखाएं |
$_watchShowDate | bool | प्रकाशन तारीख दिखाएं |
$_watchShowLikes | bool | लाइक / डिसलाइक दिखाएं |
$_watchShowFavorites | bool | फ़ेवरेट बटन दिखाएं |
$_watchShowPornstars | bool | परफ़ॉर्मर दिखाएं |
$_watchShowChannels | bool | चैनल दिखाएं |
$_watchShowCategories | bool | श्रेणियां दिखाएं |
$_watchShowTags | bool | टैग दिखाएं |
$_commentsEnabled | bool | टिप्पणियां सक्षम |
$_card* और $_watch* मान सीधे एडमिन दिखावट स्क्रीन से आता है, इसलिए साइट मालिक आपकी थीम को बिना कोड छुए री-स्टाइल कर सकते हैं — जब तक आप हार्ड-कोडिंग के बजाय इन वेरिएबल को पढ़ते हैं।टेम्पलेट-विशिष्ट वेरिएबल
वैश्विक वेरिएबल के अतिरिक्त, प्रत्येक टेम्पलेट अपना खुद का डेटा प्राप्त करता है।
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 |
category.php / tag.php / performer.php / channel.php
| वेरिएबल | प्रकार |
|---|---|
$category / $tag / $performer / $channel | array — एंटिटी |
$videos | array — वीडियो पंक्तियां |
$pagination | Pagination ऑब्जेक्ट |
$sort | string |
लिस्टिंग टेम्पलेट
| टेम्पलेट | उल्लेखनीय वेरिएबल |
|---|---|
categories.php | $categories — प्रत्येक में video_count है; CTR चालू होने पर, best_video_thumbnail |
performers.php | $performers — video_count; CTR चालू होने पर, best_video_thumbnail, total_ctr, CTR के अनुसार क्रमबद्ध; $pagination |
channels.php | performers जैसा ही स्वरूप |
search.php | $query, $videos, $pagination |
हेल्पर क्लासें
ये स्टैटिक हेल्पर हर टेम्पलेट में उपलब्ध हैं।
| क्लास | मुख्य मेथड |
|---|---|
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) | अनुवाद हेल्पर |
url($path) | Router::url($path) का शॉर्टकट |
रेंडरिंग प्रवाह
- कंट्रोलर रेंडरर को कॉल करता है।
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>के अंदर$contentecho करें।</body>से पहले<?= ThemeRenderer::renderJS() ?>शामिल करें।</body>से पहले<?php ImpressionTracker::flush(); ?>कॉल करें (CTR के लिए)।<head>में<?php HookSystem::doAction('head.meta'); ?>कॉल करें।</body>से पहले<?php HookSystem::doAction('footer.scripts'); ?>कॉल करें।
टेम्पलेट फ़ॉलबैक
यदि कोई टेम्पलेट सक्रिय थीम में अनुपस्थित है, तो TubePress बंडल किए गए Simply थीम पर फ़ॉलबैक करता है। इसलिए एक कस्टम थीम को केवल उन टेम्पलेट को ओवरराइड करने की ज़रूरत है जिन्हें वह वास्तव में बदलना चाहती है — एक टेम्पलेट से शुरू करें और वहां से आगे बढ़ें।
अगले चरण
अभी भी अटके हैं?
अपने डैशबोर्ड से टिकट खोलें और हमारी टीम आपकी मदद करेगी।