Mirage Theme Configuration and Customization

Introduction

Mirage is a new XMLUI theme, added in DSpace 1.7 by @mire. The code was mainly developed by Art Lowel. The main benefits of Mirage are:

Configuration Parameters

Property:

xmlui.theme.mirage.item-list.emphasis

Example Value:

xmlui.theme.mirage.item-list.emphasis = metadata

Informational Note:

Determines which style should be used to display item lists. Allowed values: 

  • metadata: includes item abstracts in the listing and is suited for scientific articles.
  • file: immediately shows you whether files are attached to the items, by displaying a large thumbnail icon for each of the items.
    metadata is the default value.

Property:

xmlui.theme.enableConcatenation

Example Value:

xmlui.theme.enableConcatenation = false

Informational Note:

Allows to enable concatenation for .js and .css files. Enhances performance when enabled by lowering the number of files that needs to be sent to the client per page request (as multiple files will be concatenated together and sent as one file).  Value can be true or false.  False by default.

Property:

xmlui.theme.enableMinification

Example Value:

xmlui.theme.enableMinification = false

Informational Note:

Allows to enable minification for .js and .css files. Enhances performance when enabled by removing unnecessary whitespaces and other characters, thus reducing the size of files to be sent.  Value can be true or false.  False by default.

Technical Features

Look & Feel

Structural enhancements for easier customization.

Enhanced Performance

Troubleshooting

Errors using HTTPS

DSpace 1.7.0 ships with a hardcoded http:// link for JQuery, causing problems for users running 1.7.0 Mirage on HTTPS. While awaiting the implementation of this fix in an upcoming release, you can solve in the following file: lib/core/page-structure.xsl, addJavascript template. In this file, you will need to replace

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">&#160;</script>

with

        <script type="text/javascript">
            <xsl:text disable-output-escaping="yes">var JsHost = (("https:" == document.location.protocol) ? "https://" : "http://");
            document.write(unescape("%3Cscript src='" + JsHost + "ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'%3E%3C/script%3E"));</xsl:text>
        </script>

Thanks Peter Dietz for providing this fix. Note: This issue is resolved in 1.7.1