#drupal-8 #alter
Вопрос:
Я могу изменить содержимое блока, используя крючок, как показано ниже. Но я хотел бы изменить содержимое блока (например, system_main_block), только если оно отображается на определенной странице. Но я не уверен, как получить идентификатор страницы или заголовок в крючках ниже. Ценю помощь.
function yourmodule_block_view_alter(array amp;$build, DrupalCoreBlockBlockPluginInterface $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;
}
Ответ №1:
Вы можете проверить название маршрута следующим образом:
function yourmodule_block_view_alter(array amp;$build, DrupalCoreBlockBlockPluginInterface $block) {
if ($block->getBaseId() === 'system_powered_by_block' amp;amp; Drupal::routeMatch()->getRouteName() === '<your_route_name>') {
$build['#pre_render'][] = '_yourmodule_block_poweredby_prerender';
}
}