在DSpace中,如何使用多个重用代码的XMLUI主题?

时间:2014-09-02 19:46:28

标签: dspace

假设我有一个基础XMLUI主题/Mirage1,另一个主题/Mirage1-green/Mirage1-red。我怎样才能使Mirage1-greenMirage1-red不必拥有所有XSL代码和逻辑的副本,而只需拥有green.xsl,green.js和green.css,然后另一个主题有red.xsl,red.js和red.css?

我这样做的目的是让我可以对基本主题Mirage1进行错误修复和其他改进,而不必重复修改其他主题。

我认为解决方案涉及Mirage1-green主题的sitemap.xmap导入Mirage1-green / xsl / green.xsl,然后导入../Mirage1/aspect/artifactbrowser/common.xsl等等,但链接到代码,或者其他指南将非常感激。

2 个答案:

答案 0 :(得分:1)

我们已经实施了类似的解决方案,我们可以轻松推出一个新的自定义主题,只需进行少量更改。

我们倾向于为每个集合自定义标题图像和链接目标,页脚文本和一些CSS样式。

  • 创建MirageBase.xsl和MirageBase.css
    • 应在MirageBase.xsl
    • 中应用样式表逻辑的全局更改
  • Mirage1站点地图指向Mirage1 xsl,css,js
    • Mirage1 xsl执行MirageBase.xsl的xsl:import
    • Mirage1 css导入MirageBase.css
  • Mirage2站点地图指向Mirage2 xsl,css,js
    • Mirage2 xsl执行MirageBase.xsl的xsl:import
    • Mirage2 css导入MirageBase.css
  • Mirage3站点地图指向Mirage3 xsl,css,js
    • Mirage3 xsl执行MirageBase.xsl的xsl:import
    • Mirage3 css导入MirageBase.css

以下是我们的自定义收藏样式表的示例。

<xsl:stylesheet xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
    xmlns:dri="http://di.tamu.edu/DRI/1.0/" xmlns:mets="http://www.loc.gov/METS/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"     xmlns:dim="http://www.dspace.org/xmlns/dspace/dim"
    xmlns:mods="http://www.loc.gov/mods/v3" xmlns:xlink="http://www.w3.org/TR/xlink/"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:import href="../non-GU-lib.xsl" />
    <xsl:output indent="yes" />

    <xsl:variable name="header-logo"
       select="concat($context-path,'/themes/GU-base-theme/non-GU-lib/ir/images/ir-logo.png')" />
    <xsl:variable name="header-logo-link">
        http://library.georgetown.edu/ir/home
    </xsl:variable>
    <xsl:variable name="teaser-image"
        select="concat($theme-path,'/images/ir-teaser.jpg')" />

</xsl:stylesheet>

答案 1 :(得分:1)

以下内容仅适用于基于最近提供的幻影2主题的XMLUI主题:

基础Mirage 2主题的继承是隐式和自动的。

  1. 在src / dspace / modules / xmlui-mirage2 / src / main / webapp / themes中创建一个新的主题文件夹
  2. 您放入的任何文件都将覆盖Mirage 2原始文件。
  3. 在DSpace主分支中已经建立了一个示例,以明确这一点:

    https://github.com/DSpace/DSpace/tree/master/dspace/modules/xmlui-mirage2/src/main/webapp/themes/Mirage2/styles

    此文件夹当前包含一个_style.scss文件,覆盖Mirage 2源文件中styles文件夹中的_style.scss:

    https://github.com/DSpace/DSpace/tree/master/dspace-xmlui-mirage2/src/main/webapp