我想缩短简单项目视图中显示的文件名。
如果我有一个很长的文件名,这将显示在简单的项目记录中:
如果查看完整项目记录,则缩短此示例文件名:
但如果您编辑此项并单击项目比特流标签,则文件名显示如下:
我的目标是将编辑比特流(第3张图片)中显示的内容应用于简单和完整项目视图。我不知道这个转换在哪里产生。我查看了administrative.xsl,我找不到任何缩短文件名的内容。请告知如何实现这一目标或在何处寻找这种转变。
答案 0 :(得分:2)
“Item Bitstreams”选项卡中文件名的重写是用Java代码完成的,而不是在XSL中完成的。它在这里:EditItemBitstreamsForm.java。
您的项目页面截图看起来像是在使用XMLUI / Mirage 2,是吗?您最好的选择是在shortenString
(code)中使用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, ' … ', 20)" />
文件名现在看起来像这样: