আমি কীভাবে প্রোগ্রামিয়ালি থিমের নাম পেতে পারি?


8

ড্রুপাল 8-এ, আপনি বর্তমানে কোনও মডিউলে কোন থিমটি ব্যবহার করছেন তা বের করার কোনও উপায় আছে? মডিউলের কোডের মধ্যে আমার প্রোগ্রামামিকভাবে নামটি নেওয়া দরকার।

উত্তর:


23

থিম ম্যানেজারটি ব্যবহার করা আপনার থিম সম্পর্কে তথ্য পাওয়ার সঠিক ড্রুপাল 8 উপায়।

\Drupal::service('theme.manager')->getActiveTheme()

ড্রুপাল 8-এ একটি সাধারণ নিয়ম হ'ল ম্যানেজার (/ হ্যান্ডলার) পরিষেবাটি সন্ধান করা।

** দ্রষ্টব্য: Neographic734 হিসাবে চিহ্নিত হিসাবে , সক্রিয় থিম অবজেক্টটি\Drupal::service('theme.manager')->getActiveTheme() ফিরিয়ে দেবে । আপনি যদি থিম মেশিন-নাম পেতে চান তবে ব্যবহার করুন\Drupal::service('theme.manager')->getActiveTheme()->getName()


5
নোট করুন যে আসল থিমের নামটি সাথে অ্যাক্টিভ থিম থেকে নেওয়া যেতে পারে getName()। তাই থিমের নামটি পেতে একটি ব্যবহার করবে\Drupal::service('theme.manager')->getActiveTheme()->getName();
Neographic734

5

এটি এটি করবে:

$config = \Drupal::config('system.theme');    
print $config->get('default');

আপনি আপনার উপলব্ধ কনফিগারগুলি অন্বেষণ করতে সর্বদা ড্রাশ ব্যবহার করতে পারেন:

drush config-list

এবং

drush config-list system

আমাকে একটি তালিকা দিয়েছে:

...
system.rss
system.site
system.theme.global
system.theme
...

এবং তারপরে আমি নিম্নলিখিতগুলির সাথে চেক করতে পারি:

drush cget system.theme.global

এবং

drush cget system.theme

অবশেষে এটি অনুসন্ধান করার জন্য যে এটি এমন একটি defaultসম্পত্তি রাখে যা আপনি যা চেয়েছিলেন তা ছিল।


4
এই উত্তরগুলি ডিফল্ট থিমটি দেয়। ওপি বর্তমান থিমের জন্য জিজ্ঞাসা করেছে, এবং গৃহীত উত্তরটি বর্তমান থিমটি দেয়। সাধারণত এটি কোনও বিষয় নয়, তবে যদি এমন কোনও মডিউল থাকে যা পৃষ্ঠা / ডোমেন / ব্যবহারকারী ইত্যাদির উপর নির্ভর করে কোনও থিম নির্বাচন করে তবে পার্থক্যটি গুরুত্বপূর্ণ।
আদমস

1
সত্য, যদি খেলায় কোনও কাস্টম থিম আলোচক থাকে তবে ফলাফলগুলি পৃথক হবে। যদি তা না হয় তবে getActiveTheme()ফাংশনটি ঠিক একইরকম ফিরে আসবে: $this->configFactory->get('system.theme')->get('default')
স্টেফানোস পেট্রাকিস

1
  1. যদি আপনি প্রকৃত সক্রিয় থিমের নাম administration themeঅন্তর্ভুক্ত পেতে চান তবে ব্যবহার করুন:

 $activeThemeName = \Drupal::service('theme.manager')->getActiveTheme(); 

  1. আপনি যদি চান আপনার ডিফল্ট নির্বাচিত থিমটি ব্যবহার করবেন theme used in frontনা admistartion theme:

 $defaultThemeName = \Drupal::config('system.theme')->get('default');    

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.