diff --git a/modules/site_users_microsite/site_users_microsite.module b/modules/site_users_microsite/site_users_microsite.module
index 3da6950..058b17f 100644
--- a/modules/site_users_microsite/site_users_microsite.module
+++ b/modules/site_users_microsite/site_users_microsite.module
@@ -17,9 +17,12 @@ function site_users_microsite_theme(): array {
'photo_url' => NULL,
'photo_alt' => '',
'name' => NULL,
- 'bio' => NULL,
- 'phone' => NULL,
- 'email' => NULL,
+ 'bio' => NULL,
+ 'phone' => NULL,
+ 'email' => 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 946f94e..070dcd3 100644
--- a/modules/site_users_microsite/src/Plugin/Block/MicrositeHeaderBlock.php
+++ b/modules/site_users_microsite/src/Plugin/Block/MicrositeHeaderBlock.php
@@ -68,6 +68,9 @@ class MicrositeHeaderBlock extends BlockBase implements ContainerFactoryPluginIn
'#bio' => $this->getProcessedValue($user, 'field_user_bio'),
'#phone' => $this->getFieldValue($user, 'field_user_phone'),
'#email' => $user->getEmail(),
+ '#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'),
'#cache' => [
'tags' => $user->getCacheTags(),
'contexts' => ['route'],
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 4a1a8d8..6f2c463 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,9 @@
* - bio: Biografia (string|null).
* - phone: Telefone (string|null).
* - email: E-mail (string|null).
+ * - lattes_id: ID do Currículo Lattes (string|null).
+ * - orcid_id: ORCID iD (string|null).
+ * - mathscinet_id: MathSciNet Author ID (string|null).
*/
#}
diff --git a/src/Plugin/Field/FieldFormatter/LattesLinkFormatter.php b/src/Plugin/Field/FieldFormatter/LattesLinkFormatter.php
new file mode 100644
index 0000000..262f9aa
--- /dev/null
+++ b/src/Plugin/Field/FieldFormatter/LattesLinkFormatter.php
@@ -0,0 +1,48 @@
+getName() === 'field_user_id_lattes';
+ }
+
+ public function viewElements(FieldItemListInterface $items, $langcode): array {
+ $elements = [];
+ foreach ($items as $delta => $item) {
+ $id = (string) $item->value;
+ $elements[$delta] = [
+ '#type' => 'link',
+ '#title' => $id,
+ '#url' => Url::fromUri('https://lattes.cnpq.br/' . $id),
+ '#attributes' => ['target' => '_blank', 'rel' => 'noopener noreferrer'],
+ ];
+ }
+ return $elements;
+ }
+
+}
diff --git a/src/Plugin/Field/FieldFormatter/MathSciNetLinkFormatter.php b/src/Plugin/Field/FieldFormatter/MathSciNetLinkFormatter.php
new file mode 100644
index 0000000..116d214
--- /dev/null
+++ b/src/Plugin/Field/FieldFormatter/MathSciNetLinkFormatter.php
@@ -0,0 +1,48 @@
+getName() === 'field_user_mathscinetid';
+ }
+
+ public function viewElements(FieldItemListInterface $items, $langcode): array {
+ $elements = [];
+ foreach ($items as $delta => $item) {
+ $id = (string) $item->value;
+ $elements[$delta] = [
+ '#type' => 'link',
+ '#title' => $id,
+ '#url' => Url::fromUri('https://mathscinet.ams.org/mathscinet/author?AuthorID=' . $id),
+ '#attributes' => ['target' => '_blank', 'rel' => 'noopener noreferrer'],
+ ];
+ }
+ return $elements;
+ }
+
+}
diff --git a/src/Plugin/Field/FieldFormatter/OrcidLinkFormatter.php b/src/Plugin/Field/FieldFormatter/OrcidLinkFormatter.php
new file mode 100644
index 0000000..161b674
--- /dev/null
+++ b/src/Plugin/Field/FieldFormatter/OrcidLinkFormatter.php
@@ -0,0 +1,48 @@
+getName() === 'field_user_orcid';
+ }
+
+ public function viewElements(FieldItemListInterface $items, $langcode): array {
+ $elements = [];
+ foreach ($items as $delta => $item) {
+ $id = $item->value;
+ $elements[$delta] = [
+ '#type' => 'link',
+ '#title' => $id,
+ '#url' => Url::fromUri('https://orcid.org/' . $id),
+ '#attributes' => ['target' => '_blank', 'rel' => 'noopener noreferrer'],
+ ];
+ }
+ return $elements;
+ }
+
+}
diff --git a/themes/site_users_microsite_theme/css/microsite.css b/themes/site_users_microsite_theme/css/microsite.css
index 6fd2863..1117273 100644
--- a/themes/site_users_microsite_theme/css/microsite.css
+++ b/themes/site_users_microsite_theme/css/microsite.css
@@ -253,6 +253,26 @@ body.microsite {
text-decoration: underline;
}
+/* --- Links acadêmicos (Lattes, ORCID, MathSciNet) ------------------------- */
+
+.msite-header-block__academic-links {
+ display: flex;
+ gap: 0.6rem;
+ margin-top: 0.75rem;
+}
+
+.msite-header-block__academic-link svg {
+ display: block;
+ width: 32px;
+ height: 32px;
+ transition: opacity 0.15s, transform 0.15s;
+}
+
+.msite-header-block__academic-link:hover svg {
+ opacity: 0.85;
+ transform: scale(1.1);
+}
+
/* Top Bar ------------------------------------------------------------------ */
/*
* Barra estreita no topo da página, antes do header.