如何在DSpace的摘要视图中显示自定义元数据?

时间:2015-08-18 14:05:07

标签: xslt dspace

我只是在我的办公室“继承”了这个存储库。我根本没有任何经验,我被要求在摘要视图中的项目标题下方显示自定义元数据。自定义元数据已经注册(称为dc.magazine.title),我设法编辑输入表单,以便可以在数据库中注册所有新元数据。

存储库正在使用XMLUI的默认海市蜃楼主题。我已经更改了文件DIM-Handler.xsl中的一些代码,试图模拟其他信息的呈现方式,但我不知道它是如何工作的,所以我的方法没有给出任何结果。这就是我试过的:

<!-- Magazine row -->

            <tr class="ds-table-row {$phase}">
                <td><span class="bold"><i18n:text>xmlui.dri2xhtml.METS-1.0.item-title</i18n:text>: </span></td>
                <td>
                    <xsl:choose>
                        <xsl:when test="count(dim:field[@element='magazine'][@qualifier='title']) = 1">
                            <xsl:value-of select="dim:field[@element='magazine'][@qualifier='title'][1]/node()"/>
                        </xsl:when>
                        <xsl:otherwise>
                            <i18n:text>xmlui.dri2xhtml.METS-1.0.no-title</i18n:text>
                        </xsl:otherwise>
                    </xsl:choose>
                </td>
            </tr>
            <xsl:call-template name="itemSummaryView-DIM-fields">
              <xsl:with-param name="clause" select="($clause + 1)"/>
              <xsl:with-param name="phase" select="$otherPhase"/>
            </xsl:call-template>

但除了默认元数据之外什么也没有显示。有人可以帮我介绍一下如何显示这个新的元数据吗?有关此代码如何工作的一些线索,以便我可以进行未来的更改将非常感谢!

2 个答案:

答案 0 :(得分:2)

如果您使用Mirage 1主题使用DSpace的默认安装,则项目元数据的显示将在[DSpace-installed-directory]/webapps/xmlui/themes/Mirage/lib/xsl/aspect/artifac‌​tbrowser/item-view.xsl中呈现。在我的评论中,我指定[DSpace-installed-directory],因为我不确定您“继承的”存储库是否可以使用具有除Mirage之外的其他主题名称的自定义主题。

您说您需要在项目标题下方显示自定义元数据。尝试在<!-- Author(s) row -->

之前插入此内容
      <xsl:when test="$clause = 2 and (dim:field[@element='magazine' and @qualifier='title' and descendant::text()])">
                <div class="simple-item-view-other">
                <span class="bold"><i18n:text>xmlui.dri2xhtml.METS-1.0.item-title</i18n:text>:</span>
                <span>
                    <xsl:for-each select="dim:field[@element='magazine' and @qualifier='title']">
                        <xsl:value-of select="./node()"/>
                         <xsl:if test="count(following-sibling::dim:field[@element='magazine' and @qualifier='title']) != 0">
                        <br/>
                    </xsl:if>
                    </xsl:for-each>
                </span>
            </div>
          <xsl:call-template name="itemSummaryView-DIM-fields">
            <xsl:with-param name="clause" select="($clause + 1)"/>
            <xsl:with-param name="phase" select="$otherPhase"/>
          </xsl:call-template>
      </xsl:when>

请注意$clause号码。你应该更新下面的所有条款号,即作者的行应该$clause = 3

部分
        <!-- IMPORTANT: This test should be updated if clauses are added! -->
        <xsl:if test="$clause &lt; 8">
          <xsl:call-template name="itemSummaryView-DIM-fields">
            <xsl:with-param name="clause" select="($clause + 1)"/>
            <xsl:with-param name="phase" select="$phase"/>
          </xsl:call-template>
        </xsl:if>

答案 1 :(得分:0)

@euler感谢您的回答,尽管您的帖子(尽管已有4年历史了),但我能够弄清此简单项目视图的工作原理,并使用dc.identifier.citation创建了一个条目。如下

      <xsl:when test="$clause = 6 and (dim:field[@element='identifier' and @qualifier='citation'])">
        <div class="simple-item-view-other">
          <span class="bold"><i18n:text>xmlui.ETCRiverRun.METS-1.0.item-citation</i18n:text>:</span>
          <span>
            <xsl:for-each select="dim:field[@element='identifier' and @qualifier='citation']">
              <xsl:copy-of select="./node()"/>
              <xsl:if test="count(following-sibling::dim:field[@element='identifier' and @qualifier='citation']) != 0">
                <br/>
              </xsl:if>````