diff --git a/config/optional/field.field.user.user.field_user_homepage.yml b/config/optional/field.field.user.user.field_user_homepage.yml new file mode 100644 index 0000000..d26772f --- /dev/null +++ b/config/optional/field.field.user.user.field_user_homepage.yml @@ -0,0 +1,22 @@ +langcode: en +status: true +dependencies: + config: + - field.storage.user.field_user_homepage + module: + - link + - user +id: user.user.field_user_homepage +field_name: field_user_homepage +entity_type: user +bundle: user +label: 'Personal homepage' +description: 'URL of the user personal homepage.' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + title: 0 + link_type: 16 +field_type: link diff --git a/config/optional/field.storage.user.field_user_homepage.yml b/config/optional/field.storage.user.field_user_homepage.yml new file mode 100644 index 0000000..3893c7a --- /dev/null +++ b/config/optional/field.storage.user.field_user_homepage.yml @@ -0,0 +1,20 @@ +langcode: en +status: true +dependencies: + module: + - link + - user +id: user.field_user_homepage +field_name: field_user_homepage +entity_type: user +type: link +settings: + title: 0 + link_type: 16 +module: link +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/translations/pt-br/field.field.user.user.field_user_homepage.yml b/config/translations/pt-br/field.field.user.user.field_user_homepage.yml new file mode 100644 index 0000000..a52f0ea --- /dev/null +++ b/config/translations/pt-br/field.field.user.user.field_user_homepage.yml @@ -0,0 +1,2 @@ +label: 'Página pessoal' +description: 'Endereço web da página pessoal do usuário.' diff --git a/modules/site_users_microsite/site_users_microsite.module b/modules/site_users_microsite/site_users_microsite.module index 058b17f..55a54ab 100644 --- a/modules/site_users_microsite/site_users_microsite.module +++ b/modules/site_users_microsite/site_users_microsite.module @@ -20,6 +20,7 @@ function site_users_microsite_theme(): array { 'bio' => NULL, 'phone' => NULL, 'email' => NULL, + 'homepage' => NULL, 'lattes_id' => NULL, 'orcid_id' => NULL, 'mathscinet_id' => NULL, diff --git a/modules/site_users_microsite/src/Plugin/Block/MicrositeHeaderBlock.php b/modules/site_users_microsite/src/Plugin/Block/MicrositeHeaderBlock.php index 070dcd3..c1afd6e 100644 --- a/modules/site_users_microsite/src/Plugin/Block/MicrositeHeaderBlock.php +++ b/modules/site_users_microsite/src/Plugin/Block/MicrositeHeaderBlock.php @@ -68,6 +68,7 @@ class MicrositeHeaderBlock extends BlockBase implements ContainerFactoryPluginIn '#bio' => $this->getProcessedValue($user, 'field_user_bio'), '#phone' => $this->getFieldValue($user, 'field_user_phone'), '#email' => $user->getEmail(), + '#homepage' => $this->getFieldUri($user, 'field_user_homepage'), '#lattes_id' => $this->getFieldValue($user, 'field_user_id_lattes'), '#orcid_id' => $this->getFieldValue($user, 'field_user_orcid'), '#mathscinet_id' => $this->getFieldValue($user, 'field_user_mathscinetid'), @@ -125,6 +126,16 @@ class MicrositeHeaderBlock extends BlockBase implements ContainerFactoryPluginIn return $media ? $media->label() : ''; } + /** + * Retorna a URI de um campo link do usuário. + */ + protected function getFieldUri(UserInterface $user, string $field_name): ?string { + if ($user->hasField($field_name) && !$user->get($field_name)->isEmpty()) { + return $user->get($field_name)->uri; + } + return NULL; + } + /** * Retorna o valor de texto de um campo do usuário. */ diff --git a/modules/site_users_microsite/templates/microsite-header-block.html.twig b/modules/site_users_microsite/templates/microsite-header-block.html.twig index 6f2c463..cc7e595 100644 --- a/modules/site_users_microsite/templates/microsite-header-block.html.twig +++ b/modules/site_users_microsite/templates/microsite-header-block.html.twig @@ -11,6 +11,7 @@ * - bio: Biografia (string|null). * - phone: Telefone (string|null). * - email: E-mail (string|null). + * - homepage: URL da página pessoal (string|null). * - lattes_id: ID do Currículo Lattes (string|null). * - orcid_id: ORCID iD (string|null). * - mathscinet_id: MathSciNet Author ID (string|null). @@ -57,9 +58,18 @@ {% endif %} - {% if lattes_id or orcid_id or mathscinet_id %} + {% if homepage or lattes_id or orcid_id or mathscinet_id %}