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;
}