diff --git a/src/app/item-page/field-components/metadata-doi-values/metadata-doi-values.component.html b/src/app/item-page/field-components/metadata-doi-values/metadata-doi-values.component.html
new file mode 100644
index 00000000000..bdef2c58c3a
--- /dev/null
+++ b/src/app/item-page/field-components/metadata-doi-values/metadata-doi-values.component.html
@@ -0,0 +1,8 @@
+
+
+
+ {{ linkText || mdValue.value }}
+
+
+
+
diff --git a/src/app/item-page/field-components/metadata-doi-values/metadata-doi-values.component.ts b/src/app/item-page/field-components/metadata-doi-values/metadata-doi-values.component.ts
new file mode 100644
index 00000000000..bb2b001c24e
--- /dev/null
+++ b/src/app/item-page/field-components/metadata-doi-values/metadata-doi-values.component.ts
@@ -0,0 +1,60 @@
+import {
+ NgForOf,
+ NgIf,
+} from '@angular/common';
+import {
+ Component,
+ Input,
+} from '@angular/core';
+import { TranslateModule } from '@ngx-translate/core';
+
+import { MetadataValue } from '../../../core/shared/metadata.models';
+import { MetadataFieldWrapperComponent } from '../../../shared/metadata-field-wrapper/metadata-field-wrapper.component';
+import { MetadataValuesComponent } from '../metadata-values/metadata-values.component';
+
+/**
+ * This component renders DOIs into the `ds-metadata-field-wrapper` component as clickable links.
+ * Each DOI is transformed into a valid URL (e.g., `https://doi.org/...`) and displayed with custom text if provided.
+ */
+@Component({
+ selector: 'ds-metadata-doi-values',
+ templateUrl: './metadata-doi-values.component.html',
+ imports: [
+ MetadataFieldWrapperComponent,
+ TranslateModule,
+ NgForOf,
+ NgIf,
+ ],
+ standalone: true,
+})
+export class MetadataDoiValuesComponent extends MetadataValuesComponent {
+ /**
+ * The metadata values (DOIs) to display
+ */
+ @Input() mdValues: MetadataValue[];
+
+ /**
+ * The separator used between multiple DOIs
+ */
+ @Input() separator: string;
+
+ /**
+ * The label for this field
+ */
+ @Input() label: string;
+
+ /**
+ * Optional custom text for the DOI links
+ * If undefined, the raw DOI value is displayed
+ */
+ @Input() linkText: string;
+
+ /**
+ * Converts a raw DOI value into a full URL
+ * @param doi Raw DOI string (e.g., `10.1234/example.doi`)
+ * @returns Full URL for the DOI (e.g., `https://doi.org/10.1234/example.doi`)
+ */
+ formatDoiUrl(doi: string): string {
+ return `https://doi.org/${doi}`;
+ }
+}
diff --git a/src/app/item-page/simple/field-components/specific-field/doi/item-page-doi-field.component.html b/src/app/item-page/simple/field-components/specific-field/doi/item-page-doi-field.component.html
new file mode 100644
index 00000000000..2de3ac9a9b6
--- /dev/null
+++ b/src/app/item-page/simple/field-components/specific-field/doi/item-page-doi-field.component.html
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/src/app/item-page/simple/field-components/specific-field/doi/item-page-doi-field.component.ts b/src/app/item-page/simple/field-components/specific-field/doi/item-page-doi-field.component.ts
new file mode 100644
index 00000000000..e88571ec719
--- /dev/null
+++ b/src/app/item-page/simple/field-components/specific-field/doi/item-page-doi-field.component.ts
@@ -0,0 +1,49 @@
+import {
+ Component,
+ Input,
+} from '@angular/core';
+import { MetadataDoiValuesComponent } from 'src/app/item-page/field-components/metadata-doi-values/metadata-doi-values.component';
+
+import { Item } from '../../../../../core/shared/item.model';
+import { ItemPageFieldComponent } from '../item-page-field.component';
+
+/**
+ * This component displays DOIs on a simple item page using the MetadataDoiValuesComponent.
+ * It converts DOIs into clickable links, separators, and labels.
+ */
+@Component({
+ selector: 'ds-item-page-doi-field',
+ templateUrl: './item-page-doi-field.component.html',
+ standalone: true,
+ imports: [
+ MetadataDoiValuesComponent,
+ ],
+})
+export class ItemPageDoiFieldComponent extends ItemPageFieldComponent {
+ /**
+ * The item to display metadata for
+ */
+ @Input() item: Item;
+
+ /**
+ * Separator string between multiple DOIs
+ */
+ @Input() separator = ', ';
+
+ /**
+ * Metadata fields containing DOIs
+ */
+ @Input() fields: string[] = ['dc.identifier.doi'];
+
+ /**
+ * Label for the DOI field
+ */
+ @Input() label = 'item.page.doi';
+
+ /**
+ * Get metadata values for the provided fields
+ */
+ get doiValues() {
+ return this.item?.allMetadata(this.fields) || [];
+ }
+}
diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5
index e59f8396d73..0535edad749 100644
--- a/src/assets/i18n/en.json5
+++ b/src/assets/i18n/en.json5
@@ -2790,6 +2790,8 @@
"item.page.uri": "URI",
+ "item.page.doi": "DOI",
+
"item.page.bitstreams.view-more": "Show more",
"item.page.bitstreams.collapse": "Collapse",
@@ -5612,7 +5614,7 @@
"thumbnail.person.placeholder": "No Profile Picture Available",
- title: "DSpace",
+ "title": "DSpace",
"vocabulary-treeview.header": "Hierarchical tree view",
@@ -6909,4 +6911,4 @@
"qulto.home.welcome.description": "{{ dspaceName }} is a digital storage for electronic documents, designed for archiving and making documents accessible.",
"qulto.home.welcome.functions": "Its purpose is to provide researchers, educators, and interested parties with easy access to scientific and professional materials, promoting the free flow of knowledge and the wider dissemination of the work of the academic community.",
-}
\ No newline at end of file
+}
diff --git a/src/assets/i18n/hu.json5 b/src/assets/i18n/hu.json5
index 978c9ee72c1..183a62b6921 100644
--- a/src/assets/i18n/hu.json5
+++ b/src/assets/i18n/hu.json5
@@ -2762,6 +2762,8 @@
"item.page.uri": "URI",
+ "item.page.doi": "DOI",
+
"item.page.bitstreams.view-more": "Tovább",
"item.page.bitstreams.collapse": "Bezár",
@@ -6851,4 +6853,4 @@
"qulto.home.welcome.description": "A {{ dspaceName }} elektronikus dokumentumok digitális tárhelye, archiválásra és a dokumentumok hozzáférhetővé tételére szolgál.",
"qulto.home.welcome.functions": "Célja, hogy biztosítsa a kutatók, oktatók és érdeklődők számára a tudományos és szakmai anyagok könnyű elérhetőségét, elősegítve a tudás szabad áramlását és a tudományos közösség munkájának szélesebb körű terjesztését.",
-}
\ No newline at end of file
+}
diff --git a/src/themes/qulto/app/item-page/simple/item-types/untyped-item/untyped-item.component.html b/src/themes/qulto/app/item-page/simple/item-types/untyped-item/untyped-item.component.html
new file mode 100644
index 00000000000..c22b7e6a1e2
--- /dev/null
+++ b/src/themes/qulto/app/item-page/simple/item-types/untyped-item/untyped-item.component.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/themes/qulto/app/item-page/simple/item-types/untyped-item/untyped-item.component.scss b/src/themes/qulto/app/item-page/simple/item-types/untyped-item/untyped-item.component.scss
new file mode 100644
index 00000000000..902a64c4345
--- /dev/null
+++ b/src/themes/qulto/app/item-page/simple/item-types/untyped-item/untyped-item.component.scss
@@ -0,0 +1 @@
+@import '../../../../../../../../src/styles/_variables.scss';
diff --git a/src/themes/qulto/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts b/src/themes/qulto/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts
new file mode 100644
index 00000000000..dfc27f695bb
--- /dev/null
+++ b/src/themes/qulto/app/item-page/simple/item-types/untyped-item/untyped-item.component.ts
@@ -0,0 +1,68 @@
+import {
+ AsyncPipe,
+ NgIf,
+} from '@angular/common';
+import {
+ ChangeDetectionStrategy,
+ Component,
+} from '@angular/core';
+import { RouterLink } from '@angular/router';
+import { TranslateModule } from '@ngx-translate/core';
+import { Context } from 'src/app/core/shared/context.model';
+import { UntypedItemComponent as BaseComponent } from 'src/app/item-page/simple/item-types/untyped-item/untyped-item.component';
+
+import { Item } from '../../../../../../../app/core/shared/item.model';
+import { ViewMode } from '../../../../../../../app/core/shared/view-mode.model';
+import { CollectionsComponent } from '../../../../../../../app/item-page/field-components/collections/collections.component';
+import { ThemedMediaViewerComponent } from '../../../../../../../app/item-page/media-viewer/themed-media-viewer.component';
+import { MiradorViewerComponent } from '../../../../../../../app/item-page/mirador-viewer/mirador-viewer.component';
+import { ThemedFileSectionComponent } from '../../../../../../../app/item-page/simple/field-components/file-section/themed-file-section.component';
+import { ItemPageAbstractFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/abstract/item-page-abstract-field.component';
+import { ItemPageCcLicenseFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/cc-license/item-page-cc-license-field.component';
+import { ItemPageDateFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/date/item-page-date-field.component';
+import { ItemPageDoiFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/doi/item-page-doi-field.component';
+import { GenericItemPageFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/generic/generic-item-page-field.component';
+import { ThemedItemPageTitleFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/title/themed-item-page-field.component';
+import { ItemPageUriFieldComponent } from '../../../../../../../app/item-page/simple/field-components/specific-field/uri/item-page-uri-field.component';
+import { ThemedMetadataRepresentationListComponent } from '../../../../../../../app/item-page/simple/metadata-representation-list/themed-metadata-representation-list.component';
+import { DsoEditMenuComponent } from '../../../../../../../app/shared/dso-page/dso-edit-menu/dso-edit-menu.component';
+import { MetadataFieldWrapperComponent } from '../../../../../../../app/shared/metadata-field-wrapper/metadata-field-wrapper.component';
+import { listableObjectComponent } from '../../../../../../../app/shared/object-collection/shared/listable-object/listable-object.decorator';
+import { ThemedResultsBackButtonComponent } from '../../../../../../../app/shared/results-back-button/themed-results-back-button.component';
+import { ThemedThumbnailComponent } from '../../../../../../../app/thumbnail/themed-thumbnail.component';
+
+/**
+ * Component that represents a publication Item page
+ */
+
+@listableObjectComponent(Item, ViewMode.StandalonePage, Context.Any, 'qulto')
+@Component({
+ selector: 'ds-untyped-item',
+ styleUrls: ['./untyped-item.component.scss'],
+ templateUrl: './untyped-item.component.html',
+ changeDetection: ChangeDetectionStrategy.OnPush,
+ standalone: true,
+ imports: [
+ NgIf,
+ ThemedResultsBackButtonComponent,
+ MiradorViewerComponent,
+ ThemedItemPageTitleFieldComponent,
+ DsoEditMenuComponent,
+ MetadataFieldWrapperComponent,
+ ThemedThumbnailComponent,
+ ThemedMediaViewerComponent,
+ ThemedFileSectionComponent,
+ ItemPageDateFieldComponent,
+ ThemedMetadataRepresentationListComponent,
+ GenericItemPageFieldComponent,
+ ItemPageAbstractFieldComponent,
+ ItemPageUriFieldComponent,
+ CollectionsComponent,
+ RouterLink,
+ AsyncPipe,
+ TranslateModule,
+ ItemPageCcLicenseFieldComponent,
+ ItemPageDoiFieldComponent,
+ ],
+})
+export class UntypedItemComponent extends BaseComponent {}
diff --git a/src/themes/qulto/eager-theme.module.ts b/src/themes/qulto/eager-theme.module.ts
index b4f52c16127..699505d3539 100644
--- a/src/themes/qulto/eager-theme.module.ts
+++ b/src/themes/qulto/eager-theme.module.ts
@@ -6,6 +6,7 @@ import { FooterComponent } from './app/footer/footer.component';
import { HeaderComponent } from './app/header/header.component';
import { HeaderNavbarWrapperComponent } from './app/header-nav-wrapper/header-navbar-wrapper.component';
import { HomeNewsComponent } from './app/home-page/home-news/home-news.component';
+import { UntypedItemComponent } from './app/item-page/simple/item-types/untyped-item/untyped-item.component';
import { NavbarComponent } from './app/navbar/navbar.component';
import { LangSwitchComponent } from './app/shared/lang-switch/lang-switch.component';
import { CommunityListElementComponent } from './app/shared/object-list/community-list-element/community-list-element.component';
@@ -26,6 +27,7 @@ const DECLARATIONS = [
NavbarComponent,
FooterComponent,
LangSwitchComponent,
+ UntypedItemComponent,
];
@NgModule({