如何缩短DSpace中显示的文件名

时间:2015-08-04 02:31:58

标签: java xslt-1.0 dspace

我想缩短简单项目视图中显示的文件名。

如果我有一个很长的文件名,这将显示在简单的项目记录中:

simple-view

如果查看完整项目记录,则缩短此示例文件名:

full-record-view

但如果您编辑此项并单击项目比特流标签,则文件名显示如下:

enter image description here

我的目标是将编辑比特流(第3张图片)中显示的内容应用于简单和完整项目视图。我不知道这个转换在哪里产生。我查看了administrative.xsl,我找不到任何缩短文件名的内容。请告知如何实现这一目标或在何处寻找这种转变。

2 个答案:

答案 0 :(得分:2)

“Item Bitstreams”选项卡中文件名的重写是用Java代码完成的,而不是在XSL中完成的。它在这里:EditItemBitstreamsForm.java

您的项目页面截图看起来像是在使用XMLUI / Mirage 2,是吗?您最好的选择是在shortenStringcode)中使用org.dspace.app.xmlui.utils.XSLUtils方法。实际上也许你没有使用幻影2,因为幻影2就是这样,请参阅item-view.xsl

<xsl:value-of select="util:shortenString(mets:FLocat[@LOCTYPE='URL']/@xlink:title, 30, 5)"/>

答案 1 :(得分:1)

感谢Andrea的回答。这是我的代码以及我如何使用它。

我在shortenFileName

中创建了一个新方法org.dspace.app.xmlui.utils.XSLUtils
    public static String shortenFileName(String string, String middle, int targetLength) {
        targetLength = Math.abs(targetLength);

        if (string != null && string.length() > targetLength) {
            // If the file name is too long then shorten it so that it will display nicely.
            return StringUtils.abbreviateMiddle(string, middle, targetLength);
        }
        else
            return string;
    }

然后在item-view.xsl中使用它,如下所示:

<xsl:value-of select="util:shortenFileName(mets:FLocat[@LOCTYPE='URL']/@xlink:title, ' &#8230; ', 20)" />

文件名现在看起来像这样:

enter image description here