ฉันจะตั้งโลโก้ชุดรูปแบบได้อย่างไร


16

ฉันจะตั้งโลโก้ในธีมที่กำหนดเองใน Drupal 8 ได้อย่างไร

ฉันเห็นว่า Drupal ค้นหาไฟล์ logo.svg ฉันมีไฟล์ PNG logo.png ที่ฉันใช้ใน Drupal 7 และฉันต้องการใช้อีกครั้ง ฉันไม่สามารถตั้งค่าโลโก้เป็นการตั้งค่าธีมเช่นเดียวกับใน Drupal 7

มีวิธีการผ่าน UI หรือรหัสที่กำหนดเองในชุดรูปแบบเพื่อตั้งโลโก้หรือไม่


ดูรหัส Drupal 8 ฉันเห็นว่ายังคงมีการตั้งค่าสำหรับโลโก้ที่กำหนดเองหากยังไม่ได้เปิดใช้งานค่าเริ่มต้น
kiamlaluno

ใช่แน่นอนถ้าคุณปิดการใช้งาน "ใช้โลโก้เริ่มต้นที่จัดทำโดยชุดรูปแบบ" จากนั้นคุณสามารถเลือกโลโก้ ฉันกำลังคิดที่จะให้ Drupal เลือกโลโก้ของฉันเป็นโลโก้เริ่มต้น
batigolix

คำตอบ:


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ยังไม่ลืมที่จะติดตั้งชุดรูปแบบหรือนำเข้าการกำหนดเช่น ฉันใช้มันหลายครั้งและใช้งานได้
Jigarius

คุณสามารถนำเข้าการกำหนดค่าอีกครั้งโดยใช้รหัสต่อไปนี้ (เช่นจากเบ็ดการอัพเดท) หมายเหตุสิ่งนี้จะลบการกำหนดค่าใด ๆ ที่เพิ่มเข้ามาหลังจากที่ติดตั้งชุดรูปแบบ:\Drupal::service('config.installer')->installDefaultConfig('theme', 'theme_name');
leon.nk

ฉันได้ลองตั้งค่าชุดรูปแบบเป็น Bartik จากนั้นกลับไปที่ชุดรูปแบบของฉันและการตั้งค่าที่ไม่ได้รับการปรับปรุง ฉันไม่มีสิทธิ์เข้าถึง command line สำหรับ drush ฉันจะติดตั้งธีมใหม่ได้อย่างไร
Jeff

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 contrib หรือธีมที่กำหนดเองของคุณ (กล่าวว่ามันคือ 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
berliner

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

ตัวเลือกที่ง่ายคือการวางโลโก้ไว้ในบล็อกที่กำหนดเอง

/ ผู้ดูแลระบบ / โครงสร้าง / บล็อก / บล็อกเนื้อหา

สิ่งนี้มีความยืดหยุ่นและมีประโยชน์อย่างยิ่งหากคุณต้องการให้โลโก้นั้นแสดงความแตกต่างในส่วนอื่น ๆ ของไซต์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.