DSpace首页的特色出版物

时间:2015-08-14 09:20:23

标签: dspace

我在一些使用XMLUI的存储库中看到,而不是在首页中找到的默认Communities in DSpace,它们正在显示特色出版物。我想知道如何实现这一目标以及如何选择特色出版物清单?

这方面的一个很好的例子是WorldBank's Open Knowledge Repository

1 个答案:

答案 0 :(得分:1)

最好只联系运行该特定存储库的人员 - 我确信有很多不同的方法可以实现这类事情。

One of "my" DSpace instances有一个特色项目(“本周阅读”)。它是作为自定义XMLUI方面实现的。当前选择只存储在DSpace目录中的文本文件中;我们故意保持它简单(即没有数据库参与),因为没有必要例如保留以前特色项目的历史记录。

方面大致如下:

(1)使用子类org.dspace.app.xmlui.cocoon.AbstractDSpaceTransformer的类将特色项信息添加到主页DRI。在其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)提供管理员屏幕,让回购人员选择当前特色的项目(第一个屏幕输入项目的ID /句柄,第二个屏幕预览项目并确认选择)并向管理员添加一个条目侧边栏的一部分,所以回购员工可以访问这些屏幕。

方面有自己的sitemap.xmap,用于引入主页的转换器,并使用方面的流程图引导工作流通过管理屏幕。如果您不需要管理员屏幕(例如,如果您很乐意在特色项目更改时编辑文件),您的站点地图只需要在主页上提取变换器:

        <!-- Match dspace home page -->
        <map:match pattern="">
            <map:transform type="ReadOfWeekTransformer"/>
            <map:serialize type="xml"/>
        </map:match>

它是在GitHub下的3条款BSD: