getStorage('node_type') ->load('blog_post'); if ($type) { node_add_body_field($type, 'Conteúdo'); } } /** * Adiciona field_site_section ao blog_post e preenche posts existentes. */ function site_users_blog_update_10001(): string { $entity_type_manager = \Drupal::entityTypeManager(); // Cria a instância do campo se ainda não existir. if (!\Drupal\field\Entity\FieldConfig::loadByName('node', 'blog_post', 'field_site_section')) { \Drupal\field\Entity\FieldConfig::create([ 'field_name' => 'field_site_section', 'entity_type' => 'node', 'bundle' => 'blog_post', 'label' => 'Seção do site', 'required' => FALSE, 'translatable' => FALSE, ])->save(); // Oculta o campo no formulário padrão. $form_display = $entity_type_manager ->getStorage('entity_form_display') ->load('node.blog_post.default'); if ($form_display) { $form_display->removeComponent('field_site_section')->save(); } // Oculta o campo nas exibições padrão e teaser. foreach (['default', 'teaser'] as $mode) { $view_display = $entity_type_manager ->getStorage('entity_view_display') ->load('node.blog_post.' . $mode); if ($view_display) { $view_display->removeComponent('field_site_section')->save(); } } } // Preenche posts existentes que ainda não têm field_site_section. $nids = $entity_type_manager->getStorage('node')->getQuery() ->condition('type', 'blog_post') ->notExists('field_site_section') ->accessCheck(FALSE) ->execute(); $count = 0; foreach ($nids as $nid) { $node = $entity_type_manager->getStorage('node')->load($nid); if ($node) { $node->set('field_site_section', [ 'target_type' => 'user', 'target_id' => $node->getOwnerId(), ]); $node->save(); $count++; } } return "field_site_section adicionado ao blog_post; $count posts existentes atualizados."; }