บล็อกโมดูลที่กำหนดเองของฉันโดยไม่มีแคช
<?php
เนมสเปซ Drupal\amu_social_icon\Plugin\Block;
ใช้ Drupal\Core\Block\BlockBase;
/**
* ให้บล็อก 'ไอคอน'
*
* @ปิดกั้น(
* id = "amu_social_icon_block",
* admin_label = @Translation("บล็อกไอคอนโซเชียล"),
* )
*/
คลาส IconBlock ขยาย BlockBase {
/**
* {@inheritdoc}
*/
สร้างฟังก์ชั่นสาธารณะ () {
$config = \Drupal::config('amu_social_icon.settings');
กลับ [
'#theme' => 'amu_social_icon_block',
'#icons' => $config->get('amu_social_icon_icons'),
'#attached' => [
'ห้องสมุด' => [
'amu_social_icon/global-styling',
]
]
];
}
/**
* @กลับ int
*/
ฟังก์ชั่นสาธารณะ getCacheMaxAge () {
กลับ 0;
}
}
บริบทภาษาที่ฉันพยายามเพิ่มใน URL ภายใน
<ul class="social-icon menu socialicon-nav">
{{ dump(language) }}
{% for icon in icons %}
{% if icon.url is not empty %}
{% if icon.url starts with '/' %}
<li><a href="/{{ language }}{{ icon.url }}" aria-label="{{ icon.aria_label }}"><i aria-hidden="true" class="{{ icon.icon }}"></i></a></li>
{% else %}
<li><a href="{{ icon.url }}" aria-label="{{ icon.aria_label }}"><i aria-hidden="true" class="{{ icon.icon }}"></i></a></li>
{% endif %}
{% endif %}
{% endfor %}
</ul>
ฉันเข้าใจว่าตัวแปรที่ส่งโดย hook_theme นั้นคงที่ ดังนั้นฉันจึงพยายามแทนที่มันในบล็อกการประมวลผลล่วงหน้า
ฟังก์ชัน amu_social_icon_theme($existing, $type, $theme, $path) {
กลับ [
'amu_social_icon_block' => [
'ตัวแปร' => [
'icons' => null,
'ภาษา' => \Drupal::languageManager()->getCurrentLanguage()->getId()
]
]
];
}
ฟังก์ชัน amu_social_icon_preprocess_block(&$vars) {
ถ้า ($vars['plugin_id'] == 'amu_social_icon_block') {
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
$vars['ภาษา'] = $ภาษา;
}
}
ไม่มีการทำงานเหล่านี้ ฉันต้องการล้างแคช drupal เพื่อที่
{{ การถ่ายโอนข้อมูล (ภาษา) }}
แสดงภาษาปัจจุบันที่ถูกต้อง