Я пытаюсь создать сообщество DSpace, содержащее две коллекции.Сборник 1 содержит документы конференции, загруженные вручную в DSpace с использованием функции отправки.Коллекция 2 содержит только метаданные журнальных работ, собранных с сайта OJS через OAI-PMH.Я хотел бы иметь возможность просматривать и искать среди всех конференций и журнальных работ вместе.Однако есть несколько расхождений в полях метаданных, назначенных загруженным вручную документам конференций, по сравнению с полями метаданных собранных журнальных статей.Например, журнальные работы содержат реферат в поле «dc.description», который не отображается в теме Mirage2, поскольку требует, чтобы реферат хранился в «dc.description.abstract».Точно так же тема Mirage2 ожидает, что дата будет сохранена в «dc.date.issued», в то время как журнальные статьи содержат даты выпуска в поле «dc.date».Есть ли какой-нибудь способ, которым DSpace может быть дано указание сопоставить одно поле метаданных с другим для решения этой проблемы?
Я попытался отредактировать [dspace] / webapps / xmlui / themes / Mirage2 / xsl / aspect / artifactbrowser /Файл item-view.xsl, позволяющий DSpace искать поля «dc.date» или «dc.date.issued» при отображении даты выпуска, но это не решает такие проблемы, как фильтрация функции обнаружения только на основе «dc»..date.issued».Я думаю, что должно быть более простое решение для этого.
Вот пример изменений, которые я внес в шаблон itemSummaryView-DIM-date
<xsl:template name="itemSummaryView-DIM-date">
<xsl:if test="dim:field[@element='date' and @qualifier='issued' and descendant::text()]">
<div class="simple-item-view-date word-break item-page-field-wrapper table">
<h5>
<b><i18n:text>xmlui.dri2xhtml.METS-1.0.item-date</i18n:text></b>
</h5>
<xsl:for-each select="dim:field[@element='date' and @qualifier='issued']">
<xsl:copy-of select="substring(./node(),1,10)"/>
<xsl:if test="count(following-sibling::dim:field[@element='date' and @qualifier='issued']) != 0">
<br/>
</xsl:if>
</xsl:for-each>
</div>
</xsl:if>
<xsl:if test="dim:field[@element='date' and not(@qualifier) and descendant::text()]">
<div class="simple-item-view-date word-break item-page-field-wrapper table">
<h5>
<b><i18n:text>xmlui.dri2xhtml.METS-1.0.item-date</i18n:text></b>
</h5>
<xsl:for-each select="dim:field[@element='date' and not(@qualifier)]">
<xsl:copy-of select="substring(./node(),1,10)"/>
<xsl:if test="count(following-sibling::dim:field[@element='date' and not(@qualifier)]) != 0">
<br/>
</xsl:if>
</xsl:for-each>
</div>
</xsl:if>
</xsl:template>
I 'Мы внесли изменения, аналогичные шаблонам itemSummaryView-DIM-abstract и itemSummaryView-DIM-URI, но я думаю, что для этого должно быть более элегантное решение.