ใน Drupal 8 มีวิธีใดบ้างที่จะคิดว่าคุณใช้ชุดรูปแบบใดในโมดูล ฉันต้องได้รับชื่อทางการเขียนโปรแกรมภายในรหัสของโมดูล
ใน Drupal 8 มีวิธีใดบ้างที่จะคิดว่าคุณใช้ชุดรูปแบบใดในโมดูล ฉันต้องได้รับชื่อทางการเขียนโปรแกรมภายในรหัสของโมดูล
คำตอบ:
การใช้ตัวจัดการชุดรูปแบบเป็นวิธีที่เหมาะสมในการรับข้อมูลเกี่ยวกับชุดรูปแบบของคุณ Drupal 8
\Drupal::service('theme.manager')->getActiveTheme()
กฎทั่วไปใน drupal 8 คือการค้นหาบริการ manager (/ handler)
** หมายเหตุ: เป็นNeograph734ชี้ออก\Drupal::service('theme.manager')->getActiveTheme()
จะกลับวัตถุรูปแบบการใช้งาน หากคุณต้องการได้รับชื่อเครื่องธีมให้ใช้\Drupal::service('theme.manager')->getActiveTheme()->getName()
สิ่งนี้จะทำ:
$config = \Drupal::config('system.theme');
print $config->get('default');
คุณสามารถใช้ drush เพื่อสำรวจการตั้งค่าที่คุณมีอยู่เสมอ:
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
ทรัพย์สินซึ่งเป็นสิ่งที่คุณขอ
getActiveTheme()
ฟังก์ชั่นจะกลับมาเหมือนเดิม: $this->configFactory->get('system.theme')->get('default')
administration theme
รวม:
$activeThemeName = \Drupal::service('theme.manager')->getActiveTheme();
theme used in front
ไม่
admistartion theme
ใช้:
$defaultThemeName = \Drupal::config('system.theme')->get('default');
getName()
กับ ดังนั้นเพื่อให้ได้ชื่อธีมที่จะใช้\Drupal::service('theme.manager')->getActiveTheme()->getName();