drupal 8 – Modificar el contenido del bloque

Pregunta:

Estoy intentando alterar un bloque de módulo personalizado, sin éxito. Mi clase de bloque es la siguiente.

class BreadcrumbBlock extends BlockBase {

public function build() {
    return [
        '#theme' => 'breadcrumb_block',
        '#content' => array('value' => 1),
        '#cache' => array(
                'contexts' => array('url'),
        ),
    ];
 }
 .....

En hook_block_view_alter() dónde puedo alterar el bloque? ¿Dónde están $data['subject'] y $data['content'] en un bloque?

Respuesta:

Creo que debes usar un 'pre_render'. Algo como: http://www.drupal8.ovh/en/tutoriels/150/change-drupal-8-powered-by-block

use Drupal\Core\Render\Markup;

function yourmodule_block_view_alter(array &$build, \Drupal\Core\Block\BlockPluginInterface $block) {
  if ($block->getBaseId() === 'system_powered_by_block') {
    $build['#pre_render'][] = '_yourmodule_block_poweredby_prerender';
  }
}

function _yourmodule_block_poweredby_prerender(array $build) {
    $build['content']['#markup'] = Markup::create('Your text');
    return $build;
}

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım