Blocul opigno_documents_last_group_block se află în opigno_learning_path/src/Plugin/Block/DocumentsLastGroupBlock.php, care arată astfel:
<?php
spațiu de nume Drupal\opigno_learning_path\Plugin\Block;
utilizați Drupal\Core\Block\BlockBase;
utilizați Drupal\Core\Url;
/**
* Oferă un bloc documentlastgroupblock.
*
* @Bloc(
* id = "opigno_documents_last_group_block",
* admin_label = @Translation ("DocumentsLastGroupBlock"),
* categorie = @Translation(„Personalizat”)
* )
*/
clasa DocumentsLastGroupBlock extinde BlockBase {
/**
* @var \Drupal\Component\Plugin\Context\ContextInterface[]|mixt
*/
protejat $groupId;
/**
* {@inheritdoc}
*/
public function build() {
$this->groupId = $gid = $this->configuration["grup"];
$tid = _tft_get_group_tid($gid);
$conținut = _tft_folder_content($tid, FALSE, $gid);
$conținut = array_slice($conținut ?: [], 0, 4);
foreach ($conținut ca $index => $articol) {
$conținut[$index] = [
'#theme' => 'opigno_documents_last_group_item',
'#type' => $item["type"] == 'fișier' ? 'dosar fișier',
'#item' => $item,
'#label' => $item["nume"],
'#link' => $this->itemLink($item),
];
}
$build['conținut'] = [
'#theme' => 'opigno_documents_last_group_block',
'conținut' => $conținut,
];
returnează $build;
}
(...)
și este atașat în LearningPathController în acest modul:
/**
* Bloc document de instruire.
*/
instruire pentru funcții publiceContentDocuments(&$conținut, $grup) {
// $TFTController = nou 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('Vedeți tot') . „</a></div>”,
];
$block_render = $this->attachBlock('opigno_documents_last_group_block', ['group' => $group->id()]);
$block_render["conținut"]['link'] = $tft_url;
$content['tab_content']['documents'] = (isset($block_render["conținut"]["conținut"]) && !empty($block_render["conținut"]["conținut"])) ? [
'#type' => 'container',
'#attributes' => [
'id' => 'documente',
],
'bloc' => [
„conținut” => $block_render[„conținut”],
],
] : [];
}
Am încercat să-l extind în modul personalizat: web/modules/custom/npx_files/src/Plugin/Block/NpxFilesDocumentsLastGroupBlock.php:
<?php
spațiu de nume Drupal\npx_files\Plugin\Block;
utilizați Drupal\opigno_learning_path\Plugin\Block;
clasa NpxFilesDocumentsLastGroupBlock extinde DocumentsLastGroupBlock {
funcția publică build(){
întoarcere [
'#markup' => $this->t('Salut, lume!'),
];
}
}
Cu toate acestea, nu declanșează blocarea, care este modalitatea bună de a extinde acest lucru?
Cache-ul golit și modulul activat, desigur.