मैं विषय लोगो कैसे सेट करूं?


16

मैं Drupal 8 में अपने कस्टम थीम में लोगो कैसे सेट कर सकता हूं?

मैं देख सकता हूं कि Drupal logo.svg फ़ाइल के लिए दिखता है। मेरे पास एक पीएनजी लोगो है। पीएनजी फ़ाइल जो मैंने ड्रुपल 7 में इस्तेमाल की है और मैं इसे फिर से उपयोग करना चाहूंगा। मैं Drupal 7 में थीम सेटिंग के रूप में लोगो सेट नहीं कर सकता।

लोगो सेट करने के लिए यूआई या कस्टम कोड के माध्यम से एक तरीका है?


Drupal 8 कोड को देखते हुए, मैं देख सकता हूं कि अभी भी कस्टम लोगो के लिए सेटिंग है, यदि डिफ़ॉल्ट को सक्षम नहीं किया गया है।
kiamlaluno

हां, वास्तव में यदि आप "थीम द्वारा आपूर्ति की गई डिफ़ॉल्ट लोगो का उपयोग करें" को अक्षम करते हैं, तो आप एक लोगो चुन सकते हैं। मैं ड्रुपल को अपना लोगो चुनने के बारे में सोच रहा था। डिफ़ॉल्ट लोगो के रूप में
पीएनजी

जवाबों:


15

Drupal के बाद 8.6.x

अपने THEME.info.ymlऐड में जैसे कोई लाइन logo: logo.png। इस परिवर्तन का पता लगाने के लिए आपको Drupal के लिए कैश साफ़ करने की आवश्यकता है।

Drupal से पहले 8.6.x

डिफ़ॉल्ट लोगो फ़ाइल अब logo.svgDrupal 8 में बन गई है। हालांकि, उपयोग logo.pngया कुछ और करने के लिए, आपको अपने विषय में कस्टम सेटिंग्स परिभाषा जोड़ने की आवश्यकता है। ऐसा करने के लिए, config/install/THEME.settings.ymlअपने थीम फ़ोल्डर में फ़ाइल करने के लिए निम्न पंक्तियों को जोड़ें ( THEMEअपने विषय के मशीन के नाम से बदलें )।

logo:
  path: 'themes/THEME/logo.png'
  use_default: false

ऐसा करने के बाद, यदि पहले से ही स्थापित है, तो आपको अपने विषय को पुनर्स्थापित करना होगा। फ़ाइल Drupal को थीम स्थापित होने पर दी गई सेटिंग्स को स्थापित करने के लिए कहती है। इसलिए, जब आप विषय को स्थापित करते हैं, तो लोगो pathपैरामीटर डेटाबेस में सहेजा जाता है और डिफ़ॉल्ट लोगो use_defaultपैरामीटर द्वारा अक्षम होता है ।


1
आशा है कि आपने निर्देशों का उल्लेख किया है। इसके अलावा, विषय को फिर से स्थापित करना या कॉन्फ़िगरेशन को आयात करना न भूलें drush cim -y --partial --source=path/to/theme/config/install। मैंने कई बार इसका उपयोग किया है और यह काम करता है।
जिगरीस

आप निम्न कोड (जैसे अपडेट हुक से) का उपयोग करके कॉन्फ़िगर को फिर से आयात कर सकते हैं। ध्यान दें कि यह विषय स्थापित होने के बाद जोड़े गए किसी भी विन्यास को मिटा देगा:\Drupal::service('config.installer')->installDefaultConfig('theme', 'theme_name');
leon.nk

मैंने बार्टिक को थीम सेट करने की कोशिश की है और फिर वापस अपने विषय पर और सेटिंग्स को अपडेट किया है। मुझे ड्रश के लिए कमांड लाइन तक पहुंच नहीं है। मैं विषय को कैसे पुनर्स्थापित करूं?
जेफ

6

नियमित थीम के लिए, आप केवल उपस्थिति पृष्ठ पर जा सकते हैं, सेटिंग टैब पर जा सकते हैं और अचयनित कर सकते हैं Use the logo supplied by the theme। दिखाई देने वाला अपलोड फ़ॉर्म इसके बजाय दूसरी छवि अपलोड करने की अनुमति देता है।

कदम

यदि आप वास्तव में विषय का निर्माण कर रहे हैं और एक डिफ़ॉल्ट छवि की आपूर्ति करना चाहते हैं, तो कृपया अन्य उत्तरों में से एक का संदर्भ लें।


5

अपने विषय के MYTHEME.theme फ़ाइल में, निम्न कोड जोड़ें।

/**
 * Implements hook_preprocess_HOOK() for block templates.
 */

function MYTHEME_preprocess_block(&$variables) {
  switch ($variables['base_plugin_id']) {
    case 'system_branding_block':
      $variables['site_logo'] = '';
      if ($variables['content']['site_logo']['#access'] && $variables['content']['site_logo']['#uri']) {
        $variables['site_logo'] = str_replace('.svg', '.png', $variables['content']['site_logo']['#uri']);
      }
      break;

  }
}

लोगो फ़ाइल को MYTHEME डायरेक्टरी में रखें। अपने विषय के मशीन के नाम के साथ MYTHEME बदलें।


5

Drupal 8.6 के अनुसार आपकी कंट्रीब या कस्टम थीम (इसे mythemename कहा जाता है) आसानी से अपनी mythemename.info.ymlफ़ाइल में डिफ़ॉल्ट लोगो को परिभाषित कर सकती है :

logo: images/acme-logo-stacked.png

Https://www.drupal.org/docs/8/theming-drupal-8/defining-a-theme-with-an-infoyml-file#logo देखें

ध्यान दें कि लोगो use_defaultसेटिंग का उपयोग करने के लिए सही होना चाहिए।


यह अब अंदर है, देखिए ThemeInitialization
बर्लिन

4

Drupal 8 में, डिफ़ॉल्ट लोगो को SVG फ़ाइल होना चाहिए। आप अभी भी कस्टम लोगो के साथ PNG फ़ाइल का उपयोग कर सकते हैं, या यदि थीम में गैर-SVG डिफ़ॉल्ट लोगो के लिए समर्थन देने के लिए अतिरिक्त कस्टम सेटिंग्स हैं।

यह वही है जो थीम के लिए डिफ़ॉल्ट लोगो प्रकार में बताया गया है , SVG है , जो Drupal 8.0.0-beta5 के लिए एक परिवर्तन रिकॉर्ड है।

जैसा कि टिप्पणी में बताया गया है, आप थीम सेटिंग फ़ाइल में निम्न का भी उपयोग कर सकते हैं।

logo:
  path: 'themes/THEME_NAME/logo.png'
  use_default: false

यह स्वतः ही UI से सेटिंग के बिना एक कस्टम लोगो का उपयोग करेगा।


3

/Your-drupal-folder/themes/THEME.theme फ़ाइल में इसे जोड़ें:

function THEME_preprocess_page(&$variables) {
  global $base_url, $base_path;
  $variables['logo'] = $base_url . $base_path . drupal_get_path('theme','THEME') . '/logo.svg';

  ##Uncomment this if you want to use png instead of svg image
  #$variables['logo'] = str_replace('.svg', '.png', $variables['logo']);
}

1

Drupal 8.6 में यह आपके .info.yml फ़ाइल में निम्नानुसार सेट किया जा सकता है:

logo: 'images/MY_THEME_LOGO.png'

थीम पथ स्वचालित रूप से src पथ में जोड़ दिया जाता है


0

मुझे नहीं लगता कि आपको कोड बदलने की आवश्यकता है। कुछ मामलों में, Global settingsसंबंधित विषय लोगो लेने के लिए आपको रोक सकता है। इसलिए, ग्लोबल सेटिंग्स के बारे LOGO IMAGEमें सुनिश्चित करें और Drupal 8 (कुछ मामलों) में आपका थीम लोगो समान होना चाहिए।


0

एक सरल विकल्प लोगो को कस्टम ब्लॉक में रखना है।

/ व्यवस्थापक / संरचना / ब्लॉक / ब्लॉक सामग्री

यदि आप उस लोगो को साइट के अन्य अनुभागों में अलग-अलग दिखाना चाहते हैं, तो यह लचीला और सूक्ष्म उपयोगी है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.