1

这是我的 DSpace 搜索结果页面的样子:

在此处输入图像描述 单击该项目会打开一个新页面,显示其描述:

在此处输入图像描述

描述页面在单击查看/打开时打开文件。是否可以在结果页面上单击其标题后直接打开文件?我想跳过项目描述页面。

据我了解,Java被调用来渲染项目的文件。我需要对此文件进行更改吗?sitemap或者是否可以通过简单地修改和xsl文件来实现我想要的?

4

3 回答 3

3

生成缩略图的代码在这里。

https://github.com/DSpace/DSpace/blob/dspace-6_x/dspace-xmlui/src/main/webapp/themes/dri2xhtml/General-Handler.xsl#L34-L47

您可以创建类似的逻辑来创建原始比特流的 href。

查看 /metadata/handle/xxx/yyy/mets.xml 中的 XML,其中 xxx/yyy 是您的项目句柄。您应该会看到将您指向原始比特流的信息。

于 2015-02-19T16:37:30.123 回答
2

正如评论中所说,要修改的xsl模板是discovery.xsl中的“itemSummaryList”

将该 href 值替换为$metsDoc//mets:FLocat[@LOCTYPE='URL']/@xlink:href"

            <xsl:element name="a">
                <xsl:attribute name="href">
                    <xsl:value-of select="$metsDoc//mets:FLocat[@LOCTYPE='URL']/@xlink:href"/>
                </xsl:attribute>
                <xsl:choose>
                    <xsl:when test="dri:list[@n=(concat($handle, ':dc.title')) and descendant::text()]">
                        <xsl:apply-templates select="dri:list[@n=(concat($handle, ':dc.title'))]/dri:item"/>
                    </xsl:when>
                    <xsl:otherwise>
                        <i18n:text>xmlui.dri2xhtml.METS-1.0.no-title</i18n:text>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:element>
于 2015-02-24T07:40:28.327 回答
1

在 Antoine Snyers、terrywb 和这个链接的帮助下,我能够实现我想要的。正如 terrywb 所指出的,我需要读取的信息,即上传文件的比特流地址,存储在metsDoc. 这是我metsDocfileSec扩展截图:

在此处输入图像描述

为了能够访问fileSecmetsDoc我将discovery.xsl中的这一行和 common.xsl中的这一行更改为<xsl:text>?sections=dmdSec,fileSec&amp;fileGrpTypes=ORIGINAL,THUMBNAIL</xsl:text>.

itemSummaryList然后我在in 中添加/修改了以下代码,discovery.xsl以便标题超链接现在指向文件比特流。

<xsl:variable name="filetype">
    <xsl:value-of select="$metsDoc/mets:METS/mets:fileSec/mets:fileGrp[@USE='CONTENT']"/>
</xsl:variable> 

<xsl:variable name="fileurl">
    <xsl:value-of select="$metsDoc/mets:METS/mets:fileSec/mets:fileGrp[@USE='CONTENT']/mets:file/mets:FLocat[@LOCTYPE='URL']/@xlink:href"/>
</xsl:variable> 


<div class="artifact-title">

            <xsl:element name="a">
                <xsl:attribute name="href">
                    <xsl:choose>
                        <xsl:when test="$metsDoc/mets:METS/mets:dmdSec/mets:mdWrap/mets:xmlData/dim:dim/@withdrawn">
                            <xsl:value-of select="$metsDoc/mets:METS/@OBJEDIT"/>
                        </xsl:when>


            <xsl:when test="$filetype">
                <xsl:value-of select="$fileurl"/>
            </xsl:when>

                    </xsl:choose>

                </xsl:attribute>

同样,我也对文件进行了更改item-list.xsl,并将这一行添加<xsl:apply-templates select="mets:fileSec/mets:fileGrp[@USE='CONTENT']" mode="itemSummaryList-DIM"/>到模板itemSummaryList-DIM中。

所以最后我得到了我想要的结果: 在此处输入图像描述

在检查器中可见,href标题的属性现在指向文件的原始比特流:)

于 2015-03-07T04:57:32.910 回答