โปรดแนะนำวิธีที่เราสามารถขยายคลาสบล็อกหลัก Drupal\system\Plugin\Block\SystemBrandingBlock เพื่อเพิ่มวิธีการที่กำหนดเอง
ในกรณีของฉัน ฉันต้องการรวมฟังก์ชัน buildToArray() เพื่อรับข้อมูลบล็อกในรูปแบบอาร์เรย์แทนที่จะเป็นอาร์เรย์ที่แสดงผล
วิธีการสร้าง () ที่มีอยู่:
สร้างฟังก์ชั่นสาธารณะ () {
$สร้าง = [];
$site_config = $this->configFactory->get('system.site');
$build['site_logo'] = [
'#theme' => 'รูปภาพ',
'#uri' => theme_get_setting('logo.url'),
'#alt' => $this->t('หน้าแรก'),
'#access' => $this->configuration['use_site_logo'],
];
$build['site_name'] = [
'#markup' => $site_config->get('ชื่อ'),
'#access' => $this->configuration['use_site_name'],
];
$build['site_slogan'] = [
'#markup' => $site_config->get('สโลแกน'),
'#access' => $this->configuration['use_site_slogan'],
];
ส่งคืน $build;
}
วิธีที่จำเป็นในการเพิ่ม:
ฟังก์ชั่นสาธารณะ buildToArray () {
$site_config = $this->configFactory->get('system.site');
กลับ [
'site_logo' => theme_get_setting('logo.url'),
'site_name' => $site_config->get('ชื่อ'),
'site_slogan' => $this->configuration['use_site_slogan'],
];
}