khối mô-đun tùy chỉnh của tôi, được cho là không có bộ đệm
<?php
không gian tên Drupal\amu_social_icon\Plugin\Block;
sử dụng Drupal\Core\Block\BlockBase;
/**
* Cung cấp Khối 'Biểu tượng'
*
* @Chặn(
* id = "amu_social_icon_block",
* admin_label = @Translation("Khối biểu tượng xã hội"),
* )
*/
lớp IconBlock mở rộng BlockBase {
/**
* {@inheritdoc}
*/
xây dựng chức năng công cộng () {
$config = \Drupal::config('amu_social_icon.settings');
trở lại [
'#theme' => 'amu_social_icon_block',
'#icons' => $config->get('amu_social_icon_icons'),
'#đính kèm' => [
'thư viện' => [
'amu_social_icon/kiểu dáng toàn cầu',
],
],
];
}
/**
* @return int
*/
hàm công khai getCacheMaxAge() {
trả về 0;
}
}
bối cảnh ngôn ngữ tôi đang cố gắng thêm vào các url nội bộ
<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>
tôi hiểu biến được truyền bởi hook_theme là tĩnh nên tôi đã cố gắng ghi đè lên nó trên khối tiền xử lý
function amu_social_icon_theme($current, $type, $theme, $path) {
trở lại [
'amu_social_icon_block' => [
'biến' => [
'biểu tượng' => không,
'ngôn ngữ' => \Drupal::languageManager()->getCurrentLanguage()->getId()
],
],
];
}
function amu_social_icon_pre process_block(&$vars) {
if ($vars['plugin_id'] == 'amu_social_icon_block') {
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
$vars['language'] = $language;
}
}
Không có cái nào trong số này hoạt động. Tôi cần làm trống bộ đệm drupal để
{{ kết xuất(ngôn ngữ) }}
hiển thị đúng ngôn ngữ hiện tại