सामग्री पर जाएं
TubePress — मुफ़्त, स्व-होस्टेड & सक्रिय रूप से अनुरक्षित
डेवलपर संदर्भ

थीम API संदर्भ

TubePress थीम API संदर्भ: ट्यूब साइट थीम बनाते या कस्टमाइज़ करते समय उपलब्ध प्रत्येक वैश्विक टेम्पलेट वेरिएबल, हेल्पर फ़ंक्शन और क्लास।

यह पृष्ठ उन सभी चीज़ों का पूर्ण संदर्भ है जो एक थीम उपयोग कर सकती है: हर टेम्पलेट में इंजेक्ट किए जाने वाले वैश्विक वेरिएबल, प्रत्येक टेम्पलेट के लिए विशिष्ट वेरिएबल, और थीम कोड में उपलब्ध हेल्पर क्लासें। यदि आप थीम बना रहे हैं या कस्टमाइज़ कर रहे हैं, तो इस पृष्ठ को थीम विकास के साथ खुला रखें।

हर टेम्पलेट को ThemeRenderer::render($template, $data) द्वारा रेंडर किया जाता है। रेंडरर वैश्विक $_-प्रीफिक्स्ड वेरिएबल का एक सेट इंजेक्ट करता है, टेम्पलेट-विशिष्ट $data को मर्ज करता है, theme.template_data फ़िल्टर चलाता है, आपके टेम्पलेट को $content में बफ़र करता है, फिर layout.php लोड करता है।

वैश्विक वेरिएबल

ये हर टेम्पलेट में और layout.php में उपलब्ध हैं।

साइट

वेरिएबलप्रकारविवरण
$_templatestringवर्तमान टेम्पलेट नाम (जैसे 'home', 'video')
$_siteNamestringसेटिंग्स से साइट का नाम
$_siteDescriptionstringसाइट विवरण
$_siteUrlstringसाइट URL
$_videosPerRowintग्रिड कॉलम (4, 5 या 6)
$_userarray\|nullलॉग-इन उपयोगकर्ता, या null
$_footerPagesarrayफ़ुटर के लिए चिह्नित स्थिर पृष्ठ
$_registrationEnabledboolपंजीकरण टॉगल
$_ctrEnabledboolCTR रैंकिंग टॉगल

दिखावट

वेरिएबलप्रकारविवरण
$_siteLogostringलोगो फ़ाइल नाम (/uploads/branding/ में)
$_siteFaviconstringFavicon फ़ाइल नाम
$_siteBackgroundstringबैकग्राउंड इमेज फ़ाइल नाम
$_siteBackgroundModestring'cover', 'contain' या 'repeat'
$_colorOverridesstringCSS कस्टम प्रॉपर्टीज़ के साथ <style> ब्लॉक
$_menuSearchboolसर्च बार दिखाएं
$_menuItemsarrayनेविगेशन आइटम (key, label, url, enabled, templates)

लोकेल

वेरिएबलप्रकारविवरण
$_localestringवर्तमान लोकेल कोड (जैसे 'en')
$_directionstring'ltr' या 'rtl'
$_isRtlboolदाएं-से-बाएं भाषा
$_availableLangsarrayउपलब्ध भाषाएं
$_langPrefixstringURL प्रीफ़िक्स (जैसे '/fr' या '')

वीडियो कार्ड सेटिंग्स

वेरिएबलप्रकारविवरण
$_cardShowDurationboolअवधि बैज दिखाएं
$_cardShowTitleboolवीडियो शीर्षक दिखाएं
$_cardMetaLeftstringबाईं मेटा: 'views', 'likes', 'time', 'none'
$_cardMetaRightstringदाईं मेटा (समान विकल्प)
$_cardGridGapintग्रिड गैप पिक्सेल में
$_cardBorderRadiusintकार्ड बॉर्डर रेडियस पिक्सेल में
$_cardThumbnailHoverboolथंबनेल होवर इफ़ेक्ट
$_cardTitleLinesintशीर्षक पंक्तियां (1 या 2)

वॉच पृष्ठ सेटिंग्स

वेरिएबलप्रकारविवरण
$_watchShowViewsboolव्यू काउंट दिखाएं
$_watchShowDurationboolअवधि दिखाएं
$_watchShowDateboolप्रकाशन तारीख दिखाएं
$_watchShowLikesboolलाइक / डिसलाइक दिखाएं
$_watchShowFavoritesboolफ़ेवरेट बटन दिखाएं
$_watchShowPornstarsboolपरफ़ॉर्मर दिखाएं
$_watchShowChannelsboolचैनल दिखाएं
$_watchShowCategoriesboolश्रेणियां दिखाएं
$_watchShowTagsboolटैग दिखाएं
$_commentsEnabledboolटिप्पणियां सक्षम
ये सेटिंग्स हैं, जादू नहीं। प्रत्येक $_card* और $_watch* मान सीधे एडमिन दिखावट स्क्रीन से आता है, इसलिए साइट मालिक आपकी थीम को बिना कोड छुए री-स्टाइल कर सकते हैं — जब तक आप हार्ड-कोडिंग के बजाय इन वेरिएबल को पढ़ते हैं।

टेम्पलेट-विशिष्ट वेरिएबल

वैश्विक वेरिएबल के अतिरिक्त, प्रत्येक टेम्पलेट अपना खुद का डेटा प्राप्त करता है।

home.php

वेरिएबलप्रकार
$videosarray — वीडियो पंक्तियां
$paginationPagination ऑब्जेक्ट
$sortstring — वर्तमान सॉर्ट की

video.php

वेरिएबलप्रकार
$videoarray — श्रेणियों, टैग, परफ़ॉर्मर, चैनल सहित पूरा वीडियो
$categories, $tags, $performersarray
$commentsarray
$similararray — समान वीडियो
$recommendedarray — अनुशंसित वीडियो
$userVotestring\|null — 'like', 'dislike' या null
$isFavoritedbool

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

वेरिएबलप्रकार
$category / $tag / $performer / $channelarray — एंटिटी
$videosarray — वीडियो पंक्तियां
$paginationPagination ऑब्जेक्ट
$sortstring

लिस्टिंग टेम्पलेट

टेम्पलेटउल्लेखनीय वेरिएबल
categories.php$categories — प्रत्येक में video_count है; CTR चालू होने पर, best_video_thumbnail
performers.php$performersvideo_count; CTR चालू होने पर, best_video_thumbnail, total_ctr, CTR के अनुसार क्रमबद्ध; $pagination
channels.phpperformers जैसा ही स्वरूप
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) का शॉर्टकट

रेंडरिंग प्रवाह

  1. कंट्रोलर रेंडरर को कॉल करता है। ThemeRenderer::render('home', ['videos' => $videos, …]).
  2. वैश्विक वेरिएबल इंजेक्ट किए जाते हैं। $_-प्रीफिक्स्ड साइट, दिखावट, लोकेल और कार्ड/वॉच वेरिएबल जोड़े जाते हैं।
  3. प्लगइन डेटा को संशोधित कर सकते हैं। HookSystem::applyFilter('theme.template_data', $data, $templateName) चलाया जाता है।
  4. टेम्पलेट रेंडर होता है। आपकी टेम्पलेट फ़ाइल को $content में बफ़र किया जाता है।
  5. लेआउट लोड होता है। layout.php को $content और सभी वेरिएबल मिलते हैं।
  6. इंप्रेशन फ्लश होते हैं। ImpressionTracker::flush() बैच किए गए इंप्रेशन अपडेट (CTR) भेजता है।
  7. Cron चलता है। CronManager::run() किसी भी देय शेड्यूल किए गए कार्य को निष्पादित करता है।

layout.php आवश्यकताएं

एक थीम के layout.php को निम्नलिखित सभी काम करने चाहिए:

  1. पूरा HTML शेल आउटपुट करें (<!DOCTYPE html></html>).
  2. <head> में <?= ThemeRenderer::renderCSS() ?> शामिल करें।
  3. <head> में <?= $_colorOverrides ?> शामिल करें।
  4. <main> के अंदर $content echo करें।
  5. </body> से पहले <?= ThemeRenderer::renderJS() ?> शामिल करें।
  6. </body> से पहले <?php ImpressionTracker::flush(); ?> कॉल करें (CTR के लिए)।
  7. <head> में <?php HookSystem::doAction('head.meta'); ?> कॉल करें।
  8. </body> से पहले <?php HookSystem::doAction('footer.scripts'); ?> कॉल करें।

टेम्पलेट फ़ॉलबैक

यदि कोई टेम्पलेट सक्रिय थीम में अनुपस्थित है, तो TubePress बंडल किए गए Simply थीम पर फ़ॉलबैक करता है। इसलिए एक कस्टम थीम को केवल उन टेम्पलेट को ओवरराइड करने की ज़रूरत है जिन्हें वह वास्तव में बदलना चाहती है — एक टेम्पलेट से शुरू करें और वहां से आगे बढ़ें।

अगले चरण

अभी भी अटके हैं?

अपने डैशबोर्ड से टिकट खोलें और हमारी टीम आपकी मदद करेगी।

लाइव डेमो आज़माएं → TubePress डाउनलोड करें →