getComponent('field_user_name')) { $form_display->setComponent('field_user_name', [ 'type' => 'string_textfield', 'weight' => 10, 'settings' => [ 'size' => 60, 'placeholder' => '', ], 'region' => 'content', ]); } // Campo Telefone. if (!$form_display->getComponent('field_user_phone')) { $form_display->setComponent('field_user_phone', [ 'type' => 'telephone_default', 'weight' => 11, 'settings' => [ 'placeholder' => '', ], 'region' => 'content', ]); } // Campo Fotos - Media Library widget. if (!$form_display->getComponent('field_user_photos')) { $form_display->setComponent('field_user_photos', [ 'type' => 'media_library_widget', 'weight' => 14, 'settings' => [ 'media_types' => [], ], 'region' => 'content', ]); } // Campo Biografia. if (!$form_display->getComponent('field_user_bio')) { $form_display->setComponent('field_user_bio', [ 'type' => 'text_textarea', 'weight' => 15, 'settings' => [ 'rows' => 5, 'placeholder' => '', ], 'region' => 'content', ]); } // Campo Foto Padrão - oculto no form (será gerenciado via hook_form_alter). $form_display->removeComponent('field_user_default_photo'); $form_display->save(); } // Configurar view display para os campos de usuário. $view_display = EntityViewDisplay::load('user.user.default'); if ($view_display) { // Campo Nome. if (!$view_display->getComponent('field_user_name')) { $view_display->setComponent('field_user_name', [ 'type' => 'string', 'weight' => 10, 'label' => 'above', 'settings' => [ 'link_to_entity' => FALSE, ], 'region' => 'content', ]); } // Campo Telefone. if (!$view_display->getComponent('field_user_phone')) { $view_display->setComponent('field_user_phone', [ 'type' => 'telephone_link', 'weight' => 11, 'label' => 'above', 'settings' => [ 'title' => '', ], 'region' => 'content', ]); } // Campo Fotos. if (!$view_display->getComponent('field_user_photos')) { $view_display->setComponent('field_user_photos', [ 'type' => 'entity_reference_entity_view', 'weight' => 14, 'label' => 'above', 'settings' => [ 'view_mode' => 'default', 'link' => FALSE, ], 'region' => 'content', ]); } // Campo Biografia. if (!$view_display->getComponent('field_user_bio')) { $view_display->setComponent('field_user_bio', [ 'type' => 'text_default', 'weight' => 15, 'label' => 'above', 'settings' => [], 'region' => 'content', ]); } // Campo Foto Padrão. if (!$view_display->getComponent('field_user_default_photo')) { $view_display->setComponent('field_user_default_photo', [ 'type' => 'entity_reference_entity_view', 'weight' => 5, 'label' => 'hidden', 'settings' => [ 'view_mode' => 'default', 'link' => FALSE, ], 'region' => 'content', ]); } $view_display->save(); } } /** * Adiciona o campo field_user_default_photo para seleção de foto padrão. */ function site_users_update_10001() { // Criar field storage se não existir. if (!FieldStorageConfig::loadByName('user', 'field_user_default_photo')) { FieldStorageConfig::create([ 'field_name' => 'field_user_default_photo', 'entity_type' => 'user', 'type' => 'entity_reference', 'settings' => [ 'target_type' => 'media', ], 'cardinality' => 1, 'translatable' => FALSE, ])->save(); } // Criar field instance se não existir. if (!FieldConfig::loadByName('user', 'user', 'field_user_default_photo')) { FieldConfig::create([ 'field_name' => 'field_user_default_photo', 'entity_type' => 'user', 'bundle' => 'user', 'label' => 'Default Photo', 'description' => 'Select the main profile photo.', 'required' => FALSE, 'settings' => [ 'handler' => 'default:media', 'handler_settings' => [ 'target_bundles' => [ 'image' => 'image', ], 'sort' => [ 'field' => '_none', 'direction' => 'ASC', ], 'auto_create' => FALSE, 'auto_create_bundle' => '', ], ], ])->save(); } // Configurar view display. $view_display = EntityViewDisplay::load('user.user.default'); if ($view_display && !$view_display->getComponent('field_user_default_photo')) { $view_display->setComponent('field_user_default_photo', [ 'type' => 'entity_reference_entity_view', 'weight' => 5, 'label' => 'hidden', 'settings' => [ 'view_mode' => 'default', 'link' => FALSE, ], 'region' => 'content', ])->save(); } // Ocultar do form display (será gerenciado via hook_form_alter). $form_display = EntityFormDisplay::load('user.user.default'); if ($form_display) { $form_display->removeComponent('field_user_default_photo')->save(); } return t('Default photo field created successfully.'); }