Giả sử tôi có hook 'opigno_documents_last_group_block':
<!-- GỠ LỖI CHỦ ĐỀ -->
<!-- MÓC CHỦ ĐỀ: 'opigno_documents_last_group_block' -->
<!-- BẮT ĐẦU ĐẦU RA từ 'mô-đun/contrib/opigno_learning_path/templates/opigno-documents-latest-group-block.html.twig' -->
<div class="content-box">
...
Làm cách nào tôi có thể nhập nó để chuyển thêm một số biến vào mẫu?
tôi đã thử:
THEME_NAME_opigno_documents_last_group_block
THEME_NAME_opigno_documents_last_group_block_preprocess
hoặc
THEME_NAME_preprocess_block
hooks và một số thứ khác, nhưng dường như không có gì kích hoạt khối này, nhưng nó dường như biến mất (cùng với nhiều khối khác) khi tôi bỏ đặt npx_main_content_block.
Khối opigno_documents_last_group_block nằm trong opigno_learning_path/src/Plugin/Block/DocumentsLastGroupBlock.php, có dạng như sau:
<?php
không gian tên Drupal\opigno_learning_path\Plugin\Block;
sử dụng Drupal\Core\Block\BlockBase;
sử dụng Drupal\Core\Url;
/**
* Cung cấp một khối documentslastgroupblock.
*
* @Chặn(
* id = "opigno_documents_last_group_block",
* admin_label = @Translation("DocumentsLastGroupBlock"),
* danh mục = @Translation("Tùy chỉnh")
* )
*/
lớp DocumentsLastGroupBlock mở rộng BlockBase {
/**
* @var \Drupal\Component\Plugin\Context\ContextInterface[]|hỗn hợp
*/
$groupId được bảo vệ;
/**
* {@inheritdoc}
*/
xây dựng chức năng công cộng () {
$this->groupId = $gid = $this->configuration["group"];
$tid = _tft_get_group_tid($gid);
$content = _tft_folder_content($tid, FALSE, $gid);
$content = array_slice($content ?: [], 0, 4);
foreach ($content as $index => $item) {
$content[$index] = [
'#theme' => 'opigno_documents_last_group_item',
'#type' => $item["type"] == 'file' ? 'thư mục tập tin',
'#item' => $item,
'#label' => $item["name"],
'#link' => $this->itemLink($item),
];
}
$build['nội dung'] = [
'#theme' => 'opigno_documents_last_group_block',
'nội dung' => $nội dung,
];
trả lại bản dựng $;
}
(...)
và được đính kèm trong LearningPathController trong mô-đun này:
/**
* Khối tài liệu đào tạo.
*/
đào tạo hàm công khaiContentDocuments(&$content, $group) {
// $TFTController = new TFTController();
// $listGroup = $TFTController->listGroup($group->id());
$tft_url = Url::fromRoute('tft.group', ['group' => $group->id()])->toString();
$content['tabs'][] = $tft_url = [
'#markup' => '<div class="see-all see-all-files"><a href="' . $tft_url . '">' . $this->t('Xem tất cả') . '</a></div>',
];
$block_render = $this->attachBlock('opigno_documents_last_group_block', ['group' => $group->id()]);
$block_render["content"]['link'] = $tft_url;
$content['tab_content']['documents'] = (isset($block_render["content"]["content"]) && !empty($block_render["content"]["content"])) ? [
'#type' => 'thùng chứa',
'#thuộc tính' => [
'id' => 'tài liệu',
],
'chặn' => [
'nội dung' => $block_render["nội dung"],
],
] : [];
}