Puncte:0

Cum pot extinde clasa personalizată extinzând BlockBase în modulul contrib?

drapel id

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.

drapel cn
Ce vrei să spui prin _nu declanșează blocarea_, mai exact? Dacă vrei să spui că nu îl poți vedea în pagina de aspect al blocului, probabil că nu ai adăugat adnotarea „@Block”
rukya avatar
drapel id
Am adaugat asta, dar nimic nu se schimba...

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.