SUNScholar/XMLUI Theme/M2/Customisation/Multiple Themes

Back to Mirage 2 Customisation

PLEASE NOTE:
Please do not attempt this until you have successfully customised the main Mirage2 theme!

This procedure is still in the testing phase.

Introduction
This procedure was used to create distinct themes on our development server.

Basically any folder you create in the following folder will be interpreted as a Mirage2 based theme: $HOME//dspace/modules/xmlui-mirage2/src/main/webapp/themes

See below details of the procedure we used, please modify according to your particular situation.

Step 1 - Create folders
We have ten top level communities as faculties, therefore we need to create ten distinct themes, one per faculty.

Type the following; cd $HOME//dspace/modules/xmlui-mirage2/src/main/webapp

mkdir -p themes/{01..10}/styles

Step 2 - Create files
Now we have the style folders, the next step is to create the style file in styles folder.

First, we create styles template file;

cd /tmp

nano _styles.scss

Copy and paste the following into the file /**
 * Faculty branding

header .navbar-default { background-color: #76273c; } Now we copy the style template to each of the styles folders; cd $HOME//dspace/modules/xmlui-mirage2/src/main/webapp/themes

for x in 01 02 03 04 05 06 07 08 09 10; do cp /tmp/_styles.scss $x/styles; done

Step 3 - Modify brand color
Now there is a style file in each style folder.

Go to each style folder, in each of the top level folders and edit the color variable "background-color" in the style file, to match the color per faculty.

See: http://wiki.lib.sun.ac.za/index.php/SUNScholar/Theme/Color_Palette for an example of a faculty palette.

Step 4 - Map themes
Now we need to map the themes to the relevant top level communities in the DSpace XMLUI.

First we record the handle per top level community manually on a piece of paper.

Then we do the mapping, top level community handle to theme name and path;

cd $HOME//dspace/config

nano xmlui.xconf

Copy and paste the following into the section as the  first  theme definitions; (Please read the comments in the file about the order in which the themes are rendered)           Replace the handles with the handles for your top level communities.

See example below.     <theme name="05" handle="99999.1/172" path="05/" /> <theme name="06" handle="99999.1/173" path="06/" /> <theme name="07" handle="99999.1/174" path="07/" /> <theme name="08" handle="99999.1/175" path="08/" /> <theme name="09" handle="99999.1/176" path="09/" /> <theme name="10" handle="99999.1/177" path="10/" />

<theme name="Mirage2" regex=".*" path="Mirage2/" />