În Drupal 9, încerc să folosesc hook_ENTITY_TYPE_view_alter()
pentru a modifica câmpul de corp al unui bloc personalizat.
Cu toate acestea, nu știu cum să accesez datele din $build
matrice pentru a o schimba. Aceasta este o descărcare parțială a $build
matrice. Vreau să modific linkurile HTML din corp camp.
matrice (8) {
["#block_content"]=> obiect(Drupal\block_content\Entity\BlockContent)#4946 (30) {
["theme":protected] => NULL
["valori":protected] => matrice(17) {
["id"]=> array(1) { ["x-default"] => string(1) "4" }
["revision_id"]=> array(1) { ["x-default"] => string(1) "4" }
["tip"]=> matrice (1) { ["x-default"] => șir(5) "de bază" }
["uuid"]=> matrice(1) { ["x-default"]=> șir(36) "f0c17429-584a-4221-995c-c00f4c41c714" }
["langcode"]=> array(1) { ["x-default"] => string(2) "ro" }
["revision_user"]=> matrice(1) { ["x-default"]=> NULL }
["revision_created"] => array(1) { ["x-default"] => string(10) "1632243859" }
["revision_log"]=> matrice(1) { ["x-default"]=> NULL }
["revision_default"]=> matrice(1) { ["x-default"]=> șir(1) "1" }
["isDefaultRevision"]=> matrice(1) { ["x-default"]=> șir(1) "1" }
["status"]=> matrice(1) { ["x-default"] => șir(1) "1" }
["info"]=> array(1) { ["x-default"] => string(11) "Adăugați conținut" }
["schimbat"] => matrice (1) { ["x-default"] => șir (10) "1632457827" }
["default_langcode"]=> matrice(1) { ["x-default"]=> șir(1) "1" }
["revision_translation_affected"]=> matrice(1) { ["x-default"]=> șir(1) "1" }
["reutilizabil"]=> matrice(1) { ["x-default"]=> șir(1) "1" }
["body"] => matrice(1) {
["x-default"] => matrice(1) {
[0] => matrice(3) {
["value"] => string(652) "[â¦]"
["summary"] => string(0) ""
["format"] => string(11) "sbn_toolbar"
}
}
}
}
}
}
Se pare că nu pot găsi un răspuns simplu la acest lucru prin căutările mele. Cel mai aproape m-am apropiat de ceea ce încerc să fac este acest cod.
$build['content']['#markup'] = Markup::create('Textul dvs. aici');
Eșuează cu această eroare.
sbn_block_content_view_alter(Matrice, obiect, obiect) (linia: 539)
Drupal\Core\Extension\ModuleHandler->alter('block_content_view', Array, Object, Object) (Linia: 305)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (linia: 29)
Drupal\block_content\BlockContentViewBuilder->viewMultiple(Matrice, „full”, NULL) (linia: 17)
Drupal\block_content\BlockContentViewBuilder->view(Object, 'full') (Linia: 187)
Drupal\block_content\Plugin\Block\BlockContentBlock->build() (linia: 105)
Drupal\layout_builder\EventSubscriber\BlockComponentRenderArray->onBuildRender(Object, 'section_component.build.render_array', Object) call_user_func(Array, Object, 'section_component.build.render_array', Object) (Linia: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'section_component.build.render_array') (Linia: 90)
Drupal\layout_builder\SectionComponent->toRenderArray(Array, ) (Linie: 86)
Drupal\layout_builder\Section->toRenderArray(Array) (linia: 317)
Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay->buildSections(Object) (linia: 276)
Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay->buildMultiple(Array) (linia: 340)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Linia: 282)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (linia: 239)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Matrice, Matrice) (Linie: 101)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callback-urile trebuie să fie metode ale unei clase care implementează \Drupal\Core\Security\TrustedCallbackInterface sau să fie o funcție anonimă. Callback-ul a fost %s. Vezi https://www.drupal.org/node/2966725', „excepție”, „Drupal\Core\Render\Element\RenderCallbackInterface”) (linia: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Linia: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Linie: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Linie: 241)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent{closure}() (Linia: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Linia: 242)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Linia: 132)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Linie: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) call_user_func(Array, Object, 'kernel.view', Object) (Linie: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Linia: 163)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Linie: 80)
Symfony\Component\HttpKernel\HttpKernel->handle(Obiect, 1, 1) (Linie: 57)
Drupal\Core\StackMiddleware\Session->handle(Obiect, 1, 1) (Linie: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Obiect, 1, 1) (Linie: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Linie: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Linie: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Obiect, 1, 1) (Linie: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Obiect, 1, 1) (Linia: 23)
Stack\StackedHttpKernel->handle(Obiect, 1, 1) (Linie: 706)
Drupal\Core\DrupalKernel->handle(Obiect) (Linia: 19)