【发布时间】:2015-08-14 09:20:22
【问题描述】:
我在一些使用 XMLUI 的存储库中看到,它们显示的不是首页中的默认 Communities in DSpace,而是显示特色出版物。不知道如何做到这一点,精选出版物列表是如何选择的?
WorldBank's Open Knowledge Repository 就是一个很好的例子。
【问题讨论】:
标签: dspace
我在一些使用 XMLUI 的存储库中看到,它们显示的不是首页中的默认 Communities in DSpace,而是显示特色出版物。不知道如何做到这一点,精选出版物列表是如何选择的?
WorldBank's Open Knowledge Repository 就是一个很好的例子。
【问题讨论】:
标签: dspace
最好只联系运行该特定存储库的人员 - 我确信有很多不同的方法可以实现这种事情。
One of "my" DSpace instances 有一个特色项目(“本周阅读”)。它被实现为自定义 XMLUI 方面。当前选择只是存储在 DSpace 目录中的一个文本文件中;我们故意保持简单(即不涉及数据库),因为不需要保留以前特色项目的历史记录。
方面大致是这样的:
(1) 将特色商品信息添加到主页 DRI -- 使用子类org.dspace.app.xmlui.cocoon.AbstractDSpaceTransformer。在其addBody 方法中,转换器添加了一个指向该项目的参考集:
// reading the featured item's handle from the file on disk,
// then retrieve the item by handle (instance of org.dspace.content.Item)
if (item != null) {
Division readOfWeekHome = body.addDivision("read-of-week-home", "primary repository");
Division readOfWeek = readOfWeekHome.addDivision("read-of-week", "secondary read-of-week");
readOfWeek.setHead(READ_OF_THE_WEEK);
ReferenceSet refset = readOfWeek.addReferenceSet("read-of-week-set", ReferenceSet.TYPE_SUMMARY_LIST, null, "read-of-week");
refset.addReference(item);
}
这最终会出现在主页 DRI 中,如下所示:
<div id="nz.ac.lconz.irr.dspace.app.xmlui.aspect.readofweek.ReadOfWeekTransformer.div.read-of-week-home" rend="primary repository" n="read-of-week-home">
<div id="nz.ac.lconz.irr.dspace.app.xmlui.aspect.readofweek.ReadOfWeekTransformer.div.read-of-week" rend="secondary read-of-week" n="read-of-week">
<head>Read of the Week</head>
<referenceSet id="nz.ac.lconz.irr.dspace.app.xmlui.aspect.readofweek.ReadOfWeekTransformer.referenceSet.read-of-week-set" rend="read-of-week" n="read-of-week-set" type="summaryList">
<reference repositoryID="10292" type="DSpace Item" url="/metadata/handle/123456789/1234/mets.xml"/>
</referenceSet>
</div>
</div>
我不记得主题 XSL 中是否有任何特殊代码来呈现此引用集;我相信它只是重用了其他 summaryList 参考集(即最近添加的列表)的呈现,但有一点自定义 CSS 来增加字体大小。
(2) 提供管理屏幕,让 repo 工作人员选择当前的特色项目(第一个屏幕输入项目的 id/句柄,第二个屏幕预览项目并确认选择)并向管理添加一个条目侧边栏的一部分,因此回购人员可以访问这些屏幕。
方面有自己的 sitemap.xmap 来为主页拉入转换器,并使用方面的流程脚本通过管理屏幕引导工作流。如果您不需要管理屏幕(例如,如果您很乐意在特色项目更改时编辑文件),您的站点地图只需要在主页上拉入转换器:
<!-- Match dspace home page -->
<map:match pattern="">
<map:transform type="ReadOfWeekTransformer"/>
<map:serialize type="xml"/>
</map:match>
在 GitHub 上的 3-Clause BSD 下:
【讨论】:
config/modules/lconz-aspect.cfg 下featured.item.file 的默认/示例条目/值是什么?谢谢!