如何缩短DSpace中显示的文件名
How to shorten filename displayed in DSpace
我想缩短简单项目视图中显示的文件名。
如果我有一个很长的文件名,这会显示在简单的项目记录中:
如果您查看完整的项目记录,此示例文件名会缩短:
但是如果您编辑此项目并单击 Item Bitstreams 选项卡,文件名将显示如下:
我的目标是将编辑比特流(第 3 张图片)中显示的内容应用到简单且完整的项目视图中。我不知道这种转变是在哪里产生的。我查看了 administrative.xsl,但找不到关于缩短文件名的任何信息。请就如何实现此目标或在哪里寻找此转换提出建议。
"Item Bitstreams" 选项卡中文件名的重写是在 Java 代码中完成的,而不是在 XSL 中。在这里:EditItemBitstreamsForm.java.
您的项目页面屏幕截图看起来像是在 XMLUI / Mirage 2 中工作,对吗?最好的办法是在 org.dspace.app.xmlui.utils.XSLUtils
中使用 shortenString
方法(code). Actually maybe you aren't using Mirage 2 because Mirage 2 does just that, see item-view.xsl:
<xsl:value-of select="util:shortenString(mets:FLocat[@LOCTYPE='URL']/@xlink:title, 30, 5)"/>
感谢 Andrea 的回答。这是我的代码以及我是如何使用它的。
我在 org.dspace.app.xmlui.utils.XSLUtils
中创建了一个新方法 shortenFileName
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)" />
文件名现在看起来像这样:
我想缩短简单项目视图中显示的文件名。
如果我有一个很长的文件名,这会显示在简单的项目记录中:
如果您查看完整的项目记录,此示例文件名会缩短:
但是如果您编辑此项目并单击 Item Bitstreams 选项卡,文件名将显示如下:
我的目标是将编辑比特流(第 3 张图片)中显示的内容应用到简单且完整的项目视图中。我不知道这种转变是在哪里产生的。我查看了 administrative.xsl,但找不到关于缩短文件名的任何信息。请就如何实现此目标或在哪里寻找此转换提出建议。
"Item Bitstreams" 选项卡中文件名的重写是在 Java 代码中完成的,而不是在 XSL 中。在这里:EditItemBitstreamsForm.java.
您的项目页面屏幕截图看起来像是在 XMLUI / Mirage 2 中工作,对吗?最好的办法是在 org.dspace.app.xmlui.utils.XSLUtils
中使用 shortenString
方法(code). Actually maybe you aren't using Mirage 2 because Mirage 2 does just that, see item-view.xsl:
<xsl:value-of select="util:shortenString(mets:FLocat[@LOCTYPE='URL']/@xlink:title, 30, 5)"/>
感谢 Andrea 的回答。这是我的代码以及我是如何使用它的。
我在 org.dspace.app.xmlui.utils.XSLUtils
shortenFileName
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)" />
文件名现在看起来像这样: