如何在DSpace XMLUI中重新排序DRI div

时间:2014-08-20 19:33:57

标签: dspace

我需要将其修改为home的div的顺序,默认的当前DRI是

<div id="aspect.artifactbrowser.CommunityBrowser.div.comunity-browser" rend="primary" n="comunity-browser">...</div>
<div id="aspect.discovery.SiteRecentSubmissions.div.site-home" rend="primary repository" n="site-home">...</div>

我需要

<div id="aspect.discovery.SiteRecentSubmissions.div.site-home" rend="primary repository" n="site-home">
<div id="aspect.artifactbrowser.CommunityBrowser.div.comunity-browser" rend="primary" n="comunity-browser">...</div>

这个想法是首先显示最近的提交,而不是社区缩写链接。 我可以通过CSS修改它,但也会影响Comunity Browse选项。

德语

2 个答案:

答案 0 :(得分:2)

您应该只能使用div值对这些id进行重新排序(因为这些id值在主页和各个社区中会有所不同。)

有一个&#34; Use CSS to reorder DIVs&#34;这个问题提供了一些关于如何根据div值重新排序HTML id的好选项。我个人推荐JQuery solution,因为DSpace已经嵌入并使用了JQuery。

所以,最后,这样的事情应该有效:

$('#aspect.discovery.SiteRecentSubmissions.div.site-home').insertBefore('#aspect.artifactbrowser.CommunityBrowser.div.comunity-browser');

我不确定您使用的是哪个版本的DSpace(或哪个主题)。但是,假设您使用的是DSpace 4.2(截至目前的最新版本)和默认主题(Mirage),您可以将此自定义Javascript放入主题的page-structure.xsl文件中,特别是<xsl:template name="buildHead">(为每个页面构建HTML head标记。这是DSpace 4.2 Mirage主题代码区域的直接链接: https://github.com/DSpace/DSpace/blob/dspace-4.2/dspace-xmlui/src/main/webapp/themes/Mirage/lib/xsl/core/page-structure.xsl#L220

答案 1 :(得分:2)

如果您正在运行XMLUI,则可以覆盖ds:body的模板。请参阅下面的 xsl:otherwise 块。

<xsl:template match="dri:body">
    <div id="ds-body">
        <xsl:if test="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='alert'][@qualifier='message']">
            <div id="ds-system-wide-alert">
                <p>
                    <xsl:copy-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='alert'][@qualifier='message']/node()"/>
                </p>
            </div>
        </xsl:if>

        <!-- Check for the custom pages -->

        <xsl:choose>
            <xsl:when test="starts-with($request-uri, 'page/about')">
                <div>
                    <h1>About This Repository</h1>
                    <p>To add your own content to this page, edit webapps/xmlui/themes/dri2xhtml/structural.xsl and
                        add your own content to the title, trail, and body. If you wish to add additional pages, you
                        will need to create an additional xsl:when block and match the request-uri to whatever page
                        you are adding. Currently, static pages created through altering XSL are only available
                        under the URI prefix of page/.</p>
                </div>
            </xsl:when>
            <!-- Otherwise use default handling of body -->
            <xsl:otherwise>
                <xsl:apply-templates select="*[@n='item-related-container']"/>
                <xsl:apply-templates select="*[not(@n='item-related-container')]"/>
            </xsl:otherwise>
        </xsl:choose>


        <xsl:copy-of select="$SFXLink"/>
    </div>
</xsl:template>