Alex'in cevabı ile ilgili olarak , ben nasıl config_pages kullanmak ve global_footer blok oluşturmak için nasıl değiştirildi :
<?php
public function build() {
$config_name = 'global_footer';
$config = config_pages_config($config_name);
$build = array();
$markup = array();
$fieldsToRender = array(
'field_body', 'field_foo', 'field_bar'
);
$viewmode = 'default';
$entityType = 'config_pages';
$display = entity_get_display($entityType, $config_name, $viewmode);
$viewBuilder = \Drupal::entityTypeManager()->getViewBuilder($entityType);
foreach ($fieldsToRender as $field_name) {
if (isset($config->{$field_name}) && $field = $config->{$field_name}) {
$fieldRenderable = $viewBuilder->viewField($field, $display->getComponent($field_name));
if (count($fieldRenderable) &&! empty($fieldRenderable)) {
$markup[] = \Drupal::service('renderer')->renderRoot($fieldRenderable);
}
}
}
if (count($markup)) {
$build = array(
'#type' => 'markup',
'#markup' => implode("", $markup),
);
}
return $build;
}
Bir düğümden veri çekmenin aksine bir config_pages kurulumundan rastgele alanları oluşturmak muhtemelen daha iyidir, ancak sanırım gerçekten hangi yöntemin en iyi olduğuna dair özel kullanım durumuna bağlıdır.
$nodeview
sahip#node
anahtar olarak