【问题标题】:Featured publications in DSpace front pageDSpace 头版的特色出版物
【发布时间】:2015-08-14 09:20:22
【问题描述】:

我在一些使用 XMLUI 的存储库中看到,它们显示的不是首页中的默认 Communities in DSpace,而是显示特色出版物。不知道如何做到这一点,精选出版物列表是如何选择的?

WorldBank's Open Knowledge Repository 就是一个很好的例子。

【问题讨论】:

    标签: dspace


    【解决方案1】:

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

    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 下:

    【讨论】:

    • 您好 Andrea,如果您能告诉我您的“本周阅读”是如何实现的,我将不胜感激。我真的很感兴趣如何将存储在文本文件中的选择提取并添加到主页 DRI。如果您想扩展答案,我希望它适合这里。提前致谢。
    • 嗨@euler - 不确定您是否收到来自SO的通知。我已经扩展了我的答案并且代码也可用,希望它有所帮助。同样,我并不是说这是唯一/最好的方法,但它有效:)
    • 哇!谢谢安德里亚。我一定会实现的。
    • 嗨 Andrea,我想问一下config/modules/lconz-aspect.cfgfeatured.item.file 的默认/示例条目/值是什么?谢谢!
    • 很高兴听到您成功了。对于重新排序,请在此处查看此问题:stackoverflow.com/questions/25413032/… -- Tim 的答案有一个 jquery 解决方案,而 Terry 的一个在 XSL 中工作(我个人会采用 XSL 路线)。
    猜你喜欢
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 2017-10-15
    相关资源
    最近更新 更多