SlideShare una empresa de Scribd logo
1 de 33
DSpace 4.2 XMLUI
Theming
DSpace 4.2 Advanced Training by James Creel is licensed under a
Creative Commons Attribution 4.0 International License. Special
thanks to the DuraSpace Foundation and the Texas Digital Library
for making this course possible.
Theming Module Outline
• Creating a new theme
• Colors, Fonts, Images, and Layouts with CSS
• Presentation of Data with XSL
• Interactive Interfaces with JavaScript
Theming for the XMLUI
• Themes are applied in the [dspace-install-
dir]configxmlui.xconf configuration file
• Each theme is configured in its constituent sitemap.xmap
file
• Inside the xmlui webapp, you can find a themes directory
containing the themes…
• As with other configuration changes, the server must be
restarted to enact changes to how themes are applied.
• However, a currently applied theme may be edited on-the-fly
while Tomcat is running – but make sure you save your work
elsewhere so it is not erased when you redeploy!
Applying themes in the XMLUI
• Within your [dspace-data-
dir]/config/xmlui.xconf file, have a look at the
<themes> section.
• Use the handle attribute to apply to specific handles in your
repo.
• Apply another theme to your favorite collection (look into
your [tomcat]/webapps/xmlui/themes directory for
a few options)
• Restart Tomcat to see the effects.
Ideas for Customizing Themes
Easy Intermediate Challenging
Fonts Adding new elements Ordering elements
logically
Colors Adjusting element
presentation
AJAX
Images Interactive animations
Removing elements
Create a custom theme
• Navigate your file browser to the
C:Developmenttomcatwebappsxmluithemes
directory.
• Duplicate the Mirage directory to MiragePlus or some such.
Rename the primary stylesheet as well.
• Open the sitemap.xmap within your new theme directory
to see how it is configured
• To enable it in the xmlui.xconf, we will need to change the
<theme-path> element.
Customizing a Theme with CSS -
Topics
• Basics
• Colors
• Images
• Fonts
• Positioning and displaying elements in the Box Model
Customizing a Theme with CSS -
Basics
• Elements within the <body> of the HTML document may
possess id attributes and class attributes, e.g.
• <p class=“someclass” id=“myFavoritePTag>
• Any id attribute value should be unique to an element of the
page
• The class element may have repeated values
Customizing a Theme with CSS -
Basics
• Declarations consist of a property (such as “color”) and a value (such
as “blue”)
• Rules are applied with selectors
• p would select all <p> elements
• p.foo selects all <p class=“foo”> elements
• p#bar selects all <p id=“bar”> elements
• p,div selects all <p> elements and all <div> elements
• div p selects all <p> elements that are children of a <div> element
• Styles take the form of selector {declaration; declaration; … }
• Declarations will be inherited by or cascade to contained elements
where appropriate
Customizing a Theme with CSS –
Colors
• Set using the color attribute and background-color attribute
• Rendered using combinations of red, green and blue light
• Value may be expressed as a pre-set string, hexadecimal, or a trio of
integers
body
{
color:red; /*looks red */
}
h1
{
color:#00ff00; /*looks green */
}
p
{
color:rgb(0,0,255); /*looks blue*/
}
Customizing a Theme with CSS –
Images
• Set using the image and background-image attributes
• Images are referred to with values of the form url('URL') which
can be relative or a full URL, as in
body
{
background-image:url(‘local-image.gif’);
}
div
{
background-image:url(‘http://website.com/remote.gif’);
}
Customizing a Theme with CSS -
Fonts
• Apply to any element in which text might occur
• font-family attribute allows one to list the fonts in order of
preference
• font-style attribute allows vaules of normal, italic, and oblique
• font-size specifiable in pixels or points
• font attribute is shorthand allowing one to specify all info about a
font in one declaration (order matters)
body
{
font-family: arial;
font-size: 30px;
font-style: italic;
}
Positioning an element with CSS –
The Box Model
• All HTML elements are rendered as rectangles within the
ultimate rectangle, the document body.
• The box-model represents each element as four nested
concentric rectangles, from center outward:
• Content
• Padding
• Border
• Margin
(Image credit:
W3C)
Positioning an element with CSS –
Block vs. Inline elements
• Block elements - These elements will start by default on a new line and
be as wide as their container. They may contain inline elements.
• Headings
• Tables
• Lists
• Forms
• Divisions
• Paragraphs
• Inline elements - These elements will start on the current line in their
container and have the width of their own content. They may contain
data or other inline elements
• Anchors
• Spans
• Images
• Buttons
• Inputs
• Labels
Positioning an element with CSS –
the Position properties
• There’s been a proliferation of possibilities in new browsers,
but the classic values for this attribute are
• static – the default, rendering by the flow in the box model
• relative – relative to where it would be appearing
• absolute – relative to first non-static ancestor
• Fixed- always fixed at the same position in the browser window
• Then do the actual positioning with top and left attributes.
div.alwaysThere
{
position:fixed;
top: 10px;
left: 10px;
}
Example: Aligining the Checkboxes
on Submssion – Initial Questions
• Might the initial checkboxes look better to the left of their
help text instead of below?
• No problem with relative positioning and moving them around
a few pixels.
• The trick is selecting these checkboxes uniquely among other
elements throughout DSpace’s many pages
• We will want to appeal to an id attribute
Controlling Data Presentation with
XSL - Outline
• Introduction
• XSLT and XPath
• How DSpace applies XSL
• Examples
• Eliding elements
• Amending elements
• Ordering elements
Customizing a Theme’s XSL
• Change the order and contents of the generated
page
• Add anything available in the DRI
• Add new CSS and Javascript files
Customizing a Theme’s XSL
• Bring up one your favorite collections.
• Put the string “/DRI” in between the webapp name and
“handle” as in
• http://localhost:8080/xmlui/DRI/handle/123
456789/4
• The resultant XML is transformed with the i18n messages.
• Get an even earlier version of the XML with the ?XML
parmeter, as in
• http://localhost:8080/xmlui/handle/1234567
89/4?XML
Controlling Data Presentation with
XSL – XSLT and XPath
• XSLT – Composed of <template> elements that select XML elements to
style
• Sub elements of the template are used to write the transformation (i.e. the
output) and to pass the control of flow to other parts of the stylesheet
• At least one template had better select the whole document to get started –
in fact, XSLT does this for you with a hidden first call of <xsl:apply-
templates select="/"/> which selects the root node. Thenceforth,
templates are applied to elements in the order that they occur in the source
XML and get matched by a template.
• In general, use <xsl:template match=“xpath”> to transform the
source nodes matching the xpath
• Use <xsl:apply-templates select = “xpath”> within a
template to pass the flow of control to any templates matching the xpath in
the current context
Controlling Data Presentation with
XSL – XSLT
• Transformations can be made to occur conditionally with the
<xsl:if test=“boolean-expression”>
• Multiple choice is achieved with the <xsl:choose> tag,
which may contain one or more <xsl:when
test=“boolean-expression”> tags and optionally a
final <xsl:otherwise> tag
• Iteration over sets of elements is achieved with the
<xsl:for-each select=“xpath”> tag
• The boolean expressions may employ XSL functions and
operators – some useful ones:
• &gt; and &lt; - greater than and less than
• = and != - equality and inequality
• not(expression) - negation
Controlling Data Presentation with
XSL – XSLT and XPath
• XPath – The language of selectors in XSLT
• / selects the root and also delimits steps on the selection path
• // selects with further sub-selectors starting from anywhere
• . is the current node
• .. is the previous node
• @ precedes an attribute name
• node selects elements named “node”
• Predicates:
• Use the brackets [] on a sub-selector to limit its selection with an
expression
• Wildcards:
• Use the star * to select any and all nodes in the context of the
current step along the path
• Multiple Paths
• Use the bar | as an AND operator between two selectors
DSpace applies XSL with Apache
Cocoon
• Flow of control determined in sitemap.xmap, themes.xmap,
and aspects.xmap
• All requests begin to be processed at [xmlui]/sitemap.xmap
• URLs for static resources get returned as such
• XMLUI resources are processed in [xmlui]/themes/themes.xmap
which reads the xmlui.xconf to pick the theme and makes an
internal request to generate the DRI for the page
• sitemap.xmap calls aspects.xmap which matches the request for
the DRI and loads xmlui.xconf to determine the aspects.
• Each aspect has its own sitemap.xmap which modifies the DRI in its
turn
• Low level details at
http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html
XSL Theming Capabilities
• Eliding elements - Simply delete an element from an XSL
template to stop it appearing from your page. Or add
conditionals to your selectors to elide a subset of a group of
rendered elements.
• Moving elements – Re-order elements in an XSL template by
moving them or even splitting them into programmatically
chosen categories
• Amending elements – Add an attribute directly as a static
value or programmatically with the <attribute> XSL element.
Appearances can also be altered by changing text (or keys)
that are used as labels, etc.
XSL Theming – Amending
Metadata Value Presentation in the
Simple Item View
• A common use case: customizing the simple item view for a collection
• In the the duplicated Mirage theme, we can find the item view
templates in libxslaspectartifactbrowseritem-
view.xsl
• The metadata field rows are indicated by nice comments.
• Track down the “Author(s) row”, and precede the <span> elements with
a textual label of your choice. Optionally, give it a class or id and some
CSS.
• To get this to apply to just a specific collection, you will of course need
to duplicate the theme before applying the changes and map it to your
chosen collection in the xmlui.xconf.
Customizing a Theme with
Javascript - Outline
Everything that CSS can do plus…
• Animation
• DOM manipulation
• AJAX
Many of these functions are achieved most easily with a
supplementary library such as jQuery.
Examples: The Discovery
Search Page Widgets
• Add filters button to provide new options to the user
• Sorting widget that reissues the search request
• Find the magic in
[tomcat]webappsxmluistaticjsdiscoverysearch-
controls.js
Example: Autocomplete for
Subject keywords with VIAF
• The Virtual International Authority File is a collaborative name
authority hosted by OCLC
• VIAF includes personal names, corporate names, place names,
and names of works among others.
• VIAF offers a web service that allows querying for XML output
as well as text-input autocomplete
Autocomplete for Subject
keywords with VIAF (1) –
upgrade jQuery
• Navigate to your duplicated Mirage theme and find the
libxslcorepage-structure.xsl file
• Find the addJavascript template at line 667
• Change the text value of the jqueryVersion variable to
“1.11.1”
• This will be automatically read from Google’s library hosting
service -
https://developers.google.com/speed/libraries/devguide#jquery
Autocomplete for Subject
keywords with VIAF (2) –
supply the code
• Find the codes on the share at Developmentcode-samples
• Add the viaf-autocomplete.js file to Tomcat’s (not
[dspace-install-dir]’s!)
webappsxmluithemes[themename]libjs directory
• Add the viaf-autocomplete.css file to the
webappsxmluithtmes[themename]libcss
directory
• Add the new javascript and css to the theme’s sitemap.xmap.
• Restart Tomcat
Autocomplete for Subject
keywords with VIAF (3) –
Check the Functionality
• Enter the item submission workflow –
• On the second Describe page, we will find the subject keyword
text input that the JavaScript file is hard-coded to find
Autocomplete for Subject
keywords with VIAF –
Reflections on Functionality
• dc.subject text values do not fully realize the potential of
linked open data
• The DC Terms schema gets closer, but not quite there yet
• Security concerns in the browser limit more robust access to
VIAF with Ajax.
• Safe browsers don’t permit cross-domain Ajax calls
• One could set up a local semantic-web service proxy
Topics To Explore Further
• Responsive design
• Paradigm for Mirage 2
• Interacting directly with the DSpace database
• One may, if necessary, issue queries directly to one’s database
through psql
• Caution is urged
• Coding Core DSpace
• Complete control over aspects as well as internal functionality
• However, if your changes don’t make it back into the next point
release, keeping your changes after an upgrade could be difficult
• Major challenges to rapid development:
• Build time
• Automated testing

Más contenido relacionado

La actualidad más candente

DSpace: Technical Basics
DSpace: Technical BasicsDSpace: Technical Basics
DSpace: Technical BasicsIryna Kuchma
 
Dspace configuration on XMLUI DSpace
Dspace configuration on XMLUI DSpaceDspace configuration on XMLUI DSpace
Dspace configuration on XMLUI DSpaceBharat Chaudhari
 
DSpace Tutorial : Open Source Digital Library
DSpace Tutorial : Open Source Digital LibraryDSpace Tutorial : Open Source Digital Library
DSpace Tutorial : Open Source Digital Libraryrajivkumarmca
 
Open writing-cloud-collab
Open writing-cloud-collabOpen writing-cloud-collab
Open writing-cloud-collabKaren Vuong
 
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...buildacloud
 
Drupal 8 theming deep dive
Drupal 8 theming deep diveDrupal 8 theming deep dive
Drupal 8 theming deep diveRomain Jarraud
 
The Way to Theme Enlightenment 2017
The Way to Theme Enlightenment 2017The Way to Theme Enlightenment 2017
The Way to Theme Enlightenment 2017Amanda Giles
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build themDick Olsson
 
Grok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb updateGrok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb updateLaura Scott
 
Introduction to Drupal (7) Theming
Introduction to Drupal (7) ThemingIntroduction to Drupal (7) Theming
Introduction to Drupal (7) ThemingRobert Carr
 
8 things to know about theming in drupal 8
8 things to know about theming in drupal 88 things to know about theming in drupal 8
8 things to know about theming in drupal 8Logan Farr
 
SBT by Aform Research, Saulius Valatka
SBT by Aform Research, Saulius ValatkaSBT by Aform Research, Saulius Valatka
SBT by Aform Research, Saulius ValatkaVasil Remeniuk
 
Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)Eugenio Minardi
 
An Introduction to Drupal & How to Use It by Sanket Jain
An Introduction to Drupal & How to Use It by Sanket JainAn Introduction to Drupal & How to Use It by Sanket Jain
An Introduction to Drupal & How to Use It by Sanket JainInnoraft
 
DSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDuraSpace
 

La actualidad más candente (19)

Introduction to DSpace
Introduction to DSpaceIntroduction to DSpace
Introduction to DSpace
 
D Space Installation
D Space InstallationD Space Installation
D Space Installation
 
DSpace: Technical Basics
DSpace: Technical BasicsDSpace: Technical Basics
DSpace: Technical Basics
 
Dspace configuration on XMLUI DSpace
Dspace configuration on XMLUI DSpaceDspace configuration on XMLUI DSpace
Dspace configuration on XMLUI DSpace
 
DSpace Tutorial : Open Source Digital Library
DSpace Tutorial : Open Source Digital LibraryDSpace Tutorial : Open Source Digital Library
DSpace Tutorial : Open Source Digital Library
 
Dspace software
Dspace softwareDspace software
Dspace software
 
Open writing-cloud-collab
Open writing-cloud-collabOpen writing-cloud-collab
Open writing-cloud-collab
 
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...
 
Drupal 8 theming deep dive
Drupal 8 theming deep diveDrupal 8 theming deep dive
Drupal 8 theming deep dive
 
The Way to Theme Enlightenment 2017
The Way to Theme Enlightenment 2017The Way to Theme Enlightenment 2017
The Way to Theme Enlightenment 2017
 
Drupal distributions - how to build them
Drupal distributions - how to build themDrupal distributions - how to build them
Drupal distributions - how to build them
 
Grok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb updateGrok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb update
 
Introduction to Drupal (7) Theming
Introduction to Drupal (7) ThemingIntroduction to Drupal (7) Theming
Introduction to Drupal (7) Theming
 
8 things to know about theming in drupal 8
8 things to know about theming in drupal 88 things to know about theming in drupal 8
8 things to know about theming in drupal 8
 
SBT by Aform Research, Saulius Valatka
SBT by Aform Research, Saulius ValatkaSBT by Aform Research, Saulius Valatka
SBT by Aform Research, Saulius Valatka
 
Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)Drupal theming - a practical approach (European Drupal Days 2015)
Drupal theming - a practical approach (European Drupal Days 2015)
 
An Introduction to Drupal & How to Use It by Sanket Jain
An Introduction to Drupal & How to Use It by Sanket JainAn Introduction to Drupal & How to Use It by Sanket Jain
An Introduction to Drupal & How to Use It by Sanket Jain
 
DSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & ConfigurationDSpace 4.2 Basics & Configuration
DSpace 4.2 Basics & Configuration
 
Intro to Drush
Intro to DrushIntro to Drush
Intro to Drush
 

Destacado

DSpace Training Presentation
DSpace Training PresentationDSpace Training Presentation
DSpace Training PresentationThomas King
 
Mirage 2: A responsive user interface for DSpace
Mirage 2: A responsive user interface for DSpaceMirage 2: A responsive user interface for DSpace
Mirage 2: A responsive user interface for DSpaceBram Luyten
 
3.15.17 DSpace: How to Contribute Webinar Slides
3.15.17 DSpace: How to Contribute Webinar Slides3.15.17 DSpace: How to Contribute Webinar Slides
3.15.17 DSpace: How to Contribute Webinar SlidesDuraSpace
 
Secrets of the DSpace Submission Form
Secrets of the DSpace Submission FormSecrets of the DSpace Submission Form
Secrets of the DSpace Submission FormBram Luyten
 
DSpace Current State, Concerns and Solution by DSquare Technologies (DSpace S...
DSpace Current State, Concerns and Solution by DSquare Technologies (DSpace S...DSpace Current State, Concerns and Solution by DSquare Technologies (DSpace S...
DSpace Current State, Concerns and Solution by DSquare Technologies (DSpace S...DSquare Technologies
 
Creation of Digital Libraries using Open Source Software
Creation of Digital Libraries using Open Source SoftwareCreation of Digital Libraries using Open Source Software
Creation of Digital Libraries using Open Source SoftwareArun VR
 
Michigan Libraries and Open Source Software
Michigan Libraries and Open Source SoftwareMichigan Libraries and Open Source Software
Michigan Libraries and Open Source Softwaremaniakes
 
Instalação DSpace 4.x Windows
Instalação DSpace 4.x WindowsInstalação DSpace 4.x Windows
Instalação DSpace 4.x WindowsRodrigo De Jesus
 
greenstone digital library software
greenstone digital library softwaregreenstone digital library software
greenstone digital library softwaresharon bacalzo
 
Open Source Software for Libraries
Open Source Software for LibrariesOpen Source Software for Libraries
Open Source Software for LibrariesNicole C. Engard
 
What is Greenstone Digital Library and Tips for Development
What is Greenstone Digital Library and Tips for DevelopmentWhat is Greenstone Digital Library and Tips for Development
What is Greenstone Digital Library and Tips for DevelopmentAshok Kumar Satapathy
 
Greenstone Digital Library
Greenstone Digital LibraryGreenstone Digital Library
Greenstone Digital LibraryImran Mansuri
 
พัฒนาห้องสมุดดิจิทัลด้วย GreenStone
พัฒนาห้องสมุดดิจิทัลด้วย GreenStoneพัฒนาห้องสมุดดิจิทัลด้วย GreenStone
พัฒนาห้องสมุดดิจิทัลด้วย GreenStoneSatapon Yosakonkun
 
Steve Jobs Inspirational Quotes
Steve Jobs Inspirational QuotesSteve Jobs Inspirational Quotes
Steve Jobs Inspirational QuotesInsideView
 

Destacado (18)

DSpace Training Presentation
DSpace Training PresentationDSpace Training Presentation
DSpace Training Presentation
 
Mirage 2: A responsive user interface for DSpace
Mirage 2: A responsive user interface for DSpaceMirage 2: A responsive user interface for DSpace
Mirage 2: A responsive user interface for DSpace
 
3.15.17 DSpace: How to Contribute Webinar Slides
3.15.17 DSpace: How to Contribute Webinar Slides3.15.17 DSpace: How to Contribute Webinar Slides
3.15.17 DSpace: How to Contribute Webinar Slides
 
Secrets of the DSpace Submission Form
Secrets of the DSpace Submission FormSecrets of the DSpace Submission Form
Secrets of the DSpace Submission Form
 
Setarea DSpace
Setarea DSpaceSetarea DSpace
Setarea DSpace
 
DSpace Current State, Concerns and Solution by DSquare Technologies (DSpace S...
DSpace Current State, Concerns and Solution by DSquare Technologies (DSpace S...DSpace Current State, Concerns and Solution by DSquare Technologies (DSpace S...
DSpace Current State, Concerns and Solution by DSquare Technologies (DSpace S...
 
Creation of Digital Libraries using Open Source Software
Creation of Digital Libraries using Open Source SoftwareCreation of Digital Libraries using Open Source Software
Creation of Digital Libraries using Open Source Software
 
Michigan Libraries and Open Source Software
Michigan Libraries and Open Source SoftwareMichigan Libraries and Open Source Software
Michigan Libraries and Open Source Software
 
Instalação DSpace 4.x Windows
Instalação DSpace 4.x WindowsInstalação DSpace 4.x Windows
Instalação DSpace 4.x Windows
 
greenstone digital library software
greenstone digital library softwaregreenstone digital library software
greenstone digital library software
 
Open Source Software for Libraries
Open Source Software for LibrariesOpen Source Software for Libraries
Open Source Software for Libraries
 
Digital library softaware greenstone & dsapce
Digital library softaware greenstone & dsapceDigital library softaware greenstone & dsapce
Digital library softaware greenstone & dsapce
 
MODELO SECI
MODELO SECIMODELO SECI
MODELO SECI
 
What is Greenstone Digital Library and Tips for Development
What is Greenstone Digital Library and Tips for DevelopmentWhat is Greenstone Digital Library and Tips for Development
What is Greenstone Digital Library and Tips for Development
 
Modelo seci nonakaytakeuchi2
Modelo seci nonakaytakeuchi2Modelo seci nonakaytakeuchi2
Modelo seci nonakaytakeuchi2
 
Greenstone Digital Library
Greenstone Digital LibraryGreenstone Digital Library
Greenstone Digital Library
 
พัฒนาห้องสมุดดิจิทัลด้วย GreenStone
พัฒนาห้องสมุดดิจิทัลด้วย GreenStoneพัฒนาห้องสมุดดิจิทัลด้วย GreenStone
พัฒนาห้องสมุดดิจิทัลด้วย GreenStone
 
Steve Jobs Inspirational Quotes
Steve Jobs Inspirational QuotesSteve Jobs Inspirational Quotes
Steve Jobs Inspirational Quotes
 

Similar a DSpace 4.2 XMLUI Theming

Flexbox, Grid and Sass
Flexbox, Grid and SassFlexbox, Grid and Sass
Flexbox, Grid and SassSeble Nigussie
 
Advanced guide to develop ajax applications using dojo
Advanced guide to develop ajax applications using dojoAdvanced guide to develop ajax applications using dojo
Advanced guide to develop ajax applications using dojoFu Cheng
 
Css Founder.com | Cssfounder in
Css Founder.com | Cssfounder inCss Founder.com | Cssfounder in
Css Founder.com | Cssfounder inCss Founder
 
Content query web part – get it all in one place and style it!
Content query web part – get it all in one place and style it!Content query web part – get it all in one place and style it!
Content query web part – get it all in one place and style it!Benjamin Niaulin
 
basic programming language AND HTML CSS JAVApdf
basic programming language AND HTML CSS JAVApdfbasic programming language AND HTML CSS JAVApdf
basic programming language AND HTML CSS JAVApdfelayelily
 
Getting Started With Xsl Templates
Getting Started With Xsl TemplatesGetting Started With Xsl Templates
Getting Started With Xsl TemplatesWill Trillich
 
Html and css easy steps
Html and css easy stepsHtml and css easy steps
Html and css easy stepsBiswa Ranjan
 
Intro to html, css & sass
Intro to html, css & sassIntro to html, css & sass
Intro to html, css & sassSean Wolfe
 
Stupid Index Block Tricks
Stupid Index Block TricksStupid Index Block Tricks
Stupid Index Block Trickshannonhill
 
SDP_-_Module_4.ppt
SDP_-_Module_4.pptSDP_-_Module_4.ppt
SDP_-_Module_4.pptssuser568d77
 
Web Programming& Scripting Lab
Web Programming& Scripting LabWeb Programming& Scripting Lab
Web Programming& Scripting LabSwapnali Pawar
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScriptkoppenolski
 
Cascading Style Sheets for web browser.pptx
Cascading Style Sheets for web browser.pptxCascading Style Sheets for web browser.pptx
Cascading Style Sheets for web browser.pptxalvindalejoyosa1
 

Similar a DSpace 4.2 XMLUI Theming (20)

Flexbox, Grid and Sass
Flexbox, Grid and SassFlexbox, Grid and Sass
Flexbox, Grid and Sass
 
Advanced guide to develop ajax applications using dojo
Advanced guide to develop ajax applications using dojoAdvanced guide to develop ajax applications using dojo
Advanced guide to develop ajax applications using dojo
 
Xml
XmlXml
Xml
 
ppt.ppt
ppt.pptppt.ppt
ppt.ppt
 
Css Founder.com | Cssfounder in
Css Founder.com | Cssfounder inCss Founder.com | Cssfounder in
Css Founder.com | Cssfounder in
 
Content query web part – get it all in one place and style it!
Content query web part – get it all in one place and style it!Content query web part – get it all in one place and style it!
Content query web part – get it all in one place and style it!
 
basic programming language AND HTML CSS JAVApdf
basic programming language AND HTML CSS JAVApdfbasic programming language AND HTML CSS JAVApdf
basic programming language AND HTML CSS JAVApdf
 
DHTML
DHTMLDHTML
DHTML
 
Css
CssCss
Css
 
Getting Started With Xsl Templates
Getting Started With Xsl TemplatesGetting Started With Xsl Templates
Getting Started With Xsl Templates
 
Html css
Html cssHtml css
Html css
 
Html and css easy steps
Html and css easy stepsHtml and css easy steps
Html and css easy steps
 
Intro to html, css & sass
Intro to html, css & sassIntro to html, css & sass
Intro to html, css & sass
 
Stupid Index Block Tricks
Stupid Index Block TricksStupid Index Block Tricks
Stupid Index Block Tricks
 
SDP_-_Module_4.ppt
SDP_-_Module_4.pptSDP_-_Module_4.ppt
SDP_-_Module_4.ppt
 
Web Programming& Scripting Lab
Web Programming& Scripting LabWeb Programming& Scripting Lab
Web Programming& Scripting Lab
 
uptu web technology unit 2 Css
uptu web technology unit 2 Cssuptu web technology unit 2 Css
uptu web technology unit 2 Css
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScript
 
CSS.pptx
CSS.pptxCSS.pptx
CSS.pptx
 
Cascading Style Sheets for web browser.pptx
Cascading Style Sheets for web browser.pptxCascading Style Sheets for web browser.pptx
Cascading Style Sheets for web browser.pptx
 

Más de DuraSpace

12.5.18 "How For-Profit Companies Can Be a Part of the Open Environment" pres...
12.5.18 "How For-Profit Companies Can Be a Part of the Open Environment" pres...12.5.18 "How For-Profit Companies Can Be a Part of the Open Environment" pres...
12.5.18 "How For-Profit Companies Can Be a Part of the Open Environment" pres...DuraSpace
 
11.20.18 DSpace for Research Data Management Webinar
11.20.18 DSpace for Research Data Management Webinar11.20.18 DSpace for Research Data Management Webinar
11.20.18 DSpace for Research Data Management WebinarDuraSpace
 
10.24.18 "Securing Community-Controlled Infrastructure: SPARC’s plan of actio...
10.24.18 "Securing Community-Controlled Infrastructure: SPARC’s plan of actio...10.24.18 "Securing Community-Controlled Infrastructure: SPARC’s plan of actio...
10.24.18 "Securing Community-Controlled Infrastructure: SPARC’s plan of actio...DuraSpace
 
9.26.18 Beyond NA presentation slides
9.26.18 Beyond NA presentation slides9.26.18 Beyond NA presentation slides
9.26.18 Beyond NA presentation slidesDuraSpace
 
9.19.18 ArchivesDirect Overview: Standards-Based Preservation with Hosted Arc...
9.19.18 ArchivesDirect Overview: Standards-Based Preservation with Hosted Arc...9.19.18 ArchivesDirect Overview: Standards-Based Preservation with Hosted Arc...
9.19.18 ArchivesDirect Overview: Standards-Based Preservation with Hosted Arc...DuraSpace
 
5.24.18 DuraCloud in 2018 Presentation Slides
5.24.18 DuraCloud in 2018 Presentation Slides5.24.18 DuraCloud in 2018 Presentation Slides
5.24.18 DuraCloud in 2018 Presentation SlidesDuraSpace
 
5.17.18 "The 2.5% Commitment: Investing in Open" presentation slides
5.17.18 "The 2.5% Commitment: Investing in Open" presentation slides5.17.18 "The 2.5% Commitment: Investing in Open" presentation slides
5.17.18 "The 2.5% Commitment: Investing in Open" presentation slidesDuraSpace
 
3.28.18 "Open Source Repository Upgrades: Top Advice from Practitioners" Pres...
3.28.18 "Open Source Repository Upgrades: Top Advice from Practitioners" Pres...3.28.18 "Open Source Repository Upgrades: Top Advice from Practitioners" Pres...
3.28.18 "Open Source Repository Upgrades: Top Advice from Practitioners" Pres...DuraSpace
 
2.28.18 Getting Started with Fedora presentation slides
2.28.18 Getting Started with Fedora presentation slides2.28.18 Getting Started with Fedora presentation slides
2.28.18 Getting Started with Fedora presentation slidesDuraSpace
 
6.15.17 DSpace-Cris Webinar Presentation Slides
6.15.17 DSpace-Cris Webinar Presentation Slides6.15.17 DSpace-Cris Webinar Presentation Slides
6.15.17 DSpace-Cris Webinar Presentation SlidesDuraSpace
 
5.15.17 Powering Linked Data and Hosted Solutions with Fedora Webinar Slides
5.15.17 Powering Linked Data and Hosted Solutions with Fedora Webinar Slides5.15.17 Powering Linked Data and Hosted Solutions with Fedora Webinar Slides
5.15.17 Powering Linked Data and Hosted Solutions with Fedora Webinar SlidesDuraSpace
 
Digital Preservation in Production (DPN and DuraCloud Vault)
Digital Preservation in Production (DPN and DuraCloud Vault)Digital Preservation in Production (DPN and DuraCloud Vault)
Digital Preservation in Production (DPN and DuraCloud Vault)DuraSpace
 
3.7.17 DSpace for Data: issues, solutions and challenges Webinar Slides
3.7.17 DSpace for Data: issues, solutions and challenges Webinar Slides3.7.17 DSpace for Data: issues, solutions and challenges Webinar Slides
3.7.17 DSpace for Data: issues, solutions and challenges Webinar SlidesDuraSpace
 
2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar SlidesDuraSpace
 
DuraSpace is OPEN, OR2016
DuraSpace is OPEN, OR2016DuraSpace is OPEN, OR2016
DuraSpace is OPEN, OR2016DuraSpace
 
DuraSpace and LYRASIS CEO Town Hall Meeting -- April 29, 2016
DuraSpace and LYRASIS CEO Town Hall Meeting -- April 29, 2016DuraSpace and LYRASIS CEO Town Hall Meeting -- April 29, 2016
DuraSpace and LYRASIS CEO Town Hall Meeting -- April 29, 2016DuraSpace
 
DuraSpace and LYRASIS CEO Town Hall Meeting -- April 21, 2016
DuraSpace and LYRASIS CEO Town Hall Meeting -- April 21, 2016DuraSpace and LYRASIS CEO Town Hall Meeting -- April 21, 2016
DuraSpace and LYRASIS CEO Town Hall Meeting -- April 21, 2016DuraSpace
 
How to Get Started Tracking Scholarly Activity with VIVO and SHARE
How to Get Started Tracking Scholarly Activity with VIVO and SHAREHow to Get Started Tracking Scholarly Activity with VIVO and SHARE
How to Get Started Tracking Scholarly Activity with VIVO and SHAREDuraSpace
 
3.11.16 Slides, “Institutional Perspectives on the Impact of SHARE and VIVO T...
3.11.16 Slides, “Institutional Perspectives on the Impact of SHARE and VIVO T...3.11.16 Slides, “Institutional Perspectives on the Impact of SHARE and VIVO T...
3.11.16 Slides, “Institutional Perspectives on the Impact of SHARE and VIVO T...DuraSpace
 
2.24.16 Slides, “VIVO plus SHARE: Closing the Loop on Tracking Scholarly Acti...
2.24.16 Slides, “VIVO plus SHARE: Closing the Loop on Tracking Scholarly Acti...2.24.16 Slides, “VIVO plus SHARE: Closing the Loop on Tracking Scholarly Acti...
2.24.16 Slides, “VIVO plus SHARE: Closing the Loop on Tracking Scholarly Acti...DuraSpace
 

Más de DuraSpace (20)

12.5.18 "How For-Profit Companies Can Be a Part of the Open Environment" pres...
12.5.18 "How For-Profit Companies Can Be a Part of the Open Environment" pres...12.5.18 "How For-Profit Companies Can Be a Part of the Open Environment" pres...
12.5.18 "How For-Profit Companies Can Be a Part of the Open Environment" pres...
 
11.20.18 DSpace for Research Data Management Webinar
11.20.18 DSpace for Research Data Management Webinar11.20.18 DSpace for Research Data Management Webinar
11.20.18 DSpace for Research Data Management Webinar
 
10.24.18 "Securing Community-Controlled Infrastructure: SPARC’s plan of actio...
10.24.18 "Securing Community-Controlled Infrastructure: SPARC’s plan of actio...10.24.18 "Securing Community-Controlled Infrastructure: SPARC’s plan of actio...
10.24.18 "Securing Community-Controlled Infrastructure: SPARC’s plan of actio...
 
9.26.18 Beyond NA presentation slides
9.26.18 Beyond NA presentation slides9.26.18 Beyond NA presentation slides
9.26.18 Beyond NA presentation slides
 
9.19.18 ArchivesDirect Overview: Standards-Based Preservation with Hosted Arc...
9.19.18 ArchivesDirect Overview: Standards-Based Preservation with Hosted Arc...9.19.18 ArchivesDirect Overview: Standards-Based Preservation with Hosted Arc...
9.19.18 ArchivesDirect Overview: Standards-Based Preservation with Hosted Arc...
 
5.24.18 DuraCloud in 2018 Presentation Slides
5.24.18 DuraCloud in 2018 Presentation Slides5.24.18 DuraCloud in 2018 Presentation Slides
5.24.18 DuraCloud in 2018 Presentation Slides
 
5.17.18 "The 2.5% Commitment: Investing in Open" presentation slides
5.17.18 "The 2.5% Commitment: Investing in Open" presentation slides5.17.18 "The 2.5% Commitment: Investing in Open" presentation slides
5.17.18 "The 2.5% Commitment: Investing in Open" presentation slides
 
3.28.18 "Open Source Repository Upgrades: Top Advice from Practitioners" Pres...
3.28.18 "Open Source Repository Upgrades: Top Advice from Practitioners" Pres...3.28.18 "Open Source Repository Upgrades: Top Advice from Practitioners" Pres...
3.28.18 "Open Source Repository Upgrades: Top Advice from Practitioners" Pres...
 
2.28.18 Getting Started with Fedora presentation slides
2.28.18 Getting Started with Fedora presentation slides2.28.18 Getting Started with Fedora presentation slides
2.28.18 Getting Started with Fedora presentation slides
 
6.15.17 DSpace-Cris Webinar Presentation Slides
6.15.17 DSpace-Cris Webinar Presentation Slides6.15.17 DSpace-Cris Webinar Presentation Slides
6.15.17 DSpace-Cris Webinar Presentation Slides
 
5.15.17 Powering Linked Data and Hosted Solutions with Fedora Webinar Slides
5.15.17 Powering Linked Data and Hosted Solutions with Fedora Webinar Slides5.15.17 Powering Linked Data and Hosted Solutions with Fedora Webinar Slides
5.15.17 Powering Linked Data and Hosted Solutions with Fedora Webinar Slides
 
Digital Preservation in Production (DPN and DuraCloud Vault)
Digital Preservation in Production (DPN and DuraCloud Vault)Digital Preservation in Production (DPN and DuraCloud Vault)
Digital Preservation in Production (DPN and DuraCloud Vault)
 
3.7.17 DSpace for Data: issues, solutions and challenges Webinar Slides
3.7.17 DSpace for Data: issues, solutions and challenges Webinar Slides3.7.17 DSpace for Data: issues, solutions and challenges Webinar Slides
3.7.17 DSpace for Data: issues, solutions and challenges Webinar Slides
 
2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides
 
DuraSpace is OPEN, OR2016
DuraSpace is OPEN, OR2016DuraSpace is OPEN, OR2016
DuraSpace is OPEN, OR2016
 
DuraSpace and LYRASIS CEO Town Hall Meeting -- April 29, 2016
DuraSpace and LYRASIS CEO Town Hall Meeting -- April 29, 2016DuraSpace and LYRASIS CEO Town Hall Meeting -- April 29, 2016
DuraSpace and LYRASIS CEO Town Hall Meeting -- April 29, 2016
 
DuraSpace and LYRASIS CEO Town Hall Meeting -- April 21, 2016
DuraSpace and LYRASIS CEO Town Hall Meeting -- April 21, 2016DuraSpace and LYRASIS CEO Town Hall Meeting -- April 21, 2016
DuraSpace and LYRASIS CEO Town Hall Meeting -- April 21, 2016
 
How to Get Started Tracking Scholarly Activity with VIVO and SHARE
How to Get Started Tracking Scholarly Activity with VIVO and SHAREHow to Get Started Tracking Scholarly Activity with VIVO and SHARE
How to Get Started Tracking Scholarly Activity with VIVO and SHARE
 
3.11.16 Slides, “Institutional Perspectives on the Impact of SHARE and VIVO T...
3.11.16 Slides, “Institutional Perspectives on the Impact of SHARE and VIVO T...3.11.16 Slides, “Institutional Perspectives on the Impact of SHARE and VIVO T...
3.11.16 Slides, “Institutional Perspectives on the Impact of SHARE and VIVO T...
 
2.24.16 Slides, “VIVO plus SHARE: Closing the Loop on Tracking Scholarly Acti...
2.24.16 Slides, “VIVO plus SHARE: Closing the Loop on Tracking Scholarly Acti...2.24.16 Slides, “VIVO plus SHARE: Closing the Loop on Tracking Scholarly Acti...
2.24.16 Slides, “VIVO plus SHARE: Closing the Loop on Tracking Scholarly Acti...
 

Último

Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 

Último (20)

Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 

DSpace 4.2 XMLUI Theming

  • 1. DSpace 4.2 XMLUI Theming DSpace 4.2 Advanced Training by James Creel is licensed under a Creative Commons Attribution 4.0 International License. Special thanks to the DuraSpace Foundation and the Texas Digital Library for making this course possible.
  • 2. Theming Module Outline • Creating a new theme • Colors, Fonts, Images, and Layouts with CSS • Presentation of Data with XSL • Interactive Interfaces with JavaScript
  • 3. Theming for the XMLUI • Themes are applied in the [dspace-install- dir]configxmlui.xconf configuration file • Each theme is configured in its constituent sitemap.xmap file • Inside the xmlui webapp, you can find a themes directory containing the themes… • As with other configuration changes, the server must be restarted to enact changes to how themes are applied. • However, a currently applied theme may be edited on-the-fly while Tomcat is running – but make sure you save your work elsewhere so it is not erased when you redeploy!
  • 4. Applying themes in the XMLUI • Within your [dspace-data- dir]/config/xmlui.xconf file, have a look at the <themes> section. • Use the handle attribute to apply to specific handles in your repo. • Apply another theme to your favorite collection (look into your [tomcat]/webapps/xmlui/themes directory for a few options) • Restart Tomcat to see the effects.
  • 5. Ideas for Customizing Themes Easy Intermediate Challenging Fonts Adding new elements Ordering elements logically Colors Adjusting element presentation AJAX Images Interactive animations Removing elements
  • 6. Create a custom theme • Navigate your file browser to the C:Developmenttomcatwebappsxmluithemes directory. • Duplicate the Mirage directory to MiragePlus or some such. Rename the primary stylesheet as well. • Open the sitemap.xmap within your new theme directory to see how it is configured • To enable it in the xmlui.xconf, we will need to change the <theme-path> element.
  • 7. Customizing a Theme with CSS - Topics • Basics • Colors • Images • Fonts • Positioning and displaying elements in the Box Model
  • 8. Customizing a Theme with CSS - Basics • Elements within the <body> of the HTML document may possess id attributes and class attributes, e.g. • <p class=“someclass” id=“myFavoritePTag> • Any id attribute value should be unique to an element of the page • The class element may have repeated values
  • 9. Customizing a Theme with CSS - Basics • Declarations consist of a property (such as “color”) and a value (such as “blue”) • Rules are applied with selectors • p would select all <p> elements • p.foo selects all <p class=“foo”> elements • p#bar selects all <p id=“bar”> elements • p,div selects all <p> elements and all <div> elements • div p selects all <p> elements that are children of a <div> element • Styles take the form of selector {declaration; declaration; … } • Declarations will be inherited by or cascade to contained elements where appropriate
  • 10. Customizing a Theme with CSS – Colors • Set using the color attribute and background-color attribute • Rendered using combinations of red, green and blue light • Value may be expressed as a pre-set string, hexadecimal, or a trio of integers body { color:red; /*looks red */ } h1 { color:#00ff00; /*looks green */ } p { color:rgb(0,0,255); /*looks blue*/ }
  • 11. Customizing a Theme with CSS – Images • Set using the image and background-image attributes • Images are referred to with values of the form url('URL') which can be relative or a full URL, as in body { background-image:url(‘local-image.gif’); } div { background-image:url(‘http://website.com/remote.gif’); }
  • 12. Customizing a Theme with CSS - Fonts • Apply to any element in which text might occur • font-family attribute allows one to list the fonts in order of preference • font-style attribute allows vaules of normal, italic, and oblique • font-size specifiable in pixels or points • font attribute is shorthand allowing one to specify all info about a font in one declaration (order matters) body { font-family: arial; font-size: 30px; font-style: italic; }
  • 13. Positioning an element with CSS – The Box Model • All HTML elements are rendered as rectangles within the ultimate rectangle, the document body. • The box-model represents each element as four nested concentric rectangles, from center outward: • Content • Padding • Border • Margin (Image credit: W3C)
  • 14. Positioning an element with CSS – Block vs. Inline elements • Block elements - These elements will start by default on a new line and be as wide as their container. They may contain inline elements. • Headings • Tables • Lists • Forms • Divisions • Paragraphs • Inline elements - These elements will start on the current line in their container and have the width of their own content. They may contain data or other inline elements • Anchors • Spans • Images • Buttons • Inputs • Labels
  • 15. Positioning an element with CSS – the Position properties • There’s been a proliferation of possibilities in new browsers, but the classic values for this attribute are • static – the default, rendering by the flow in the box model • relative – relative to where it would be appearing • absolute – relative to first non-static ancestor • Fixed- always fixed at the same position in the browser window • Then do the actual positioning with top and left attributes. div.alwaysThere { position:fixed; top: 10px; left: 10px; }
  • 16. Example: Aligining the Checkboxes on Submssion – Initial Questions • Might the initial checkboxes look better to the left of their help text instead of below? • No problem with relative positioning and moving them around a few pixels. • The trick is selecting these checkboxes uniquely among other elements throughout DSpace’s many pages • We will want to appeal to an id attribute
  • 17. Controlling Data Presentation with XSL - Outline • Introduction • XSLT and XPath • How DSpace applies XSL • Examples • Eliding elements • Amending elements • Ordering elements
  • 18. Customizing a Theme’s XSL • Change the order and contents of the generated page • Add anything available in the DRI • Add new CSS and Javascript files
  • 19. Customizing a Theme’s XSL • Bring up one your favorite collections. • Put the string “/DRI” in between the webapp name and “handle” as in • http://localhost:8080/xmlui/DRI/handle/123 456789/4 • The resultant XML is transformed with the i18n messages. • Get an even earlier version of the XML with the ?XML parmeter, as in • http://localhost:8080/xmlui/handle/1234567 89/4?XML
  • 20. Controlling Data Presentation with XSL – XSLT and XPath • XSLT – Composed of <template> elements that select XML elements to style • Sub elements of the template are used to write the transformation (i.e. the output) and to pass the control of flow to other parts of the stylesheet • At least one template had better select the whole document to get started – in fact, XSLT does this for you with a hidden first call of <xsl:apply- templates select="/"/> which selects the root node. Thenceforth, templates are applied to elements in the order that they occur in the source XML and get matched by a template. • In general, use <xsl:template match=“xpath”> to transform the source nodes matching the xpath • Use <xsl:apply-templates select = “xpath”> within a template to pass the flow of control to any templates matching the xpath in the current context
  • 21. Controlling Data Presentation with XSL – XSLT • Transformations can be made to occur conditionally with the <xsl:if test=“boolean-expression”> • Multiple choice is achieved with the <xsl:choose> tag, which may contain one or more <xsl:when test=“boolean-expression”> tags and optionally a final <xsl:otherwise> tag • Iteration over sets of elements is achieved with the <xsl:for-each select=“xpath”> tag • The boolean expressions may employ XSL functions and operators – some useful ones: • &gt; and &lt; - greater than and less than • = and != - equality and inequality • not(expression) - negation
  • 22. Controlling Data Presentation with XSL – XSLT and XPath • XPath – The language of selectors in XSLT • / selects the root and also delimits steps on the selection path • // selects with further sub-selectors starting from anywhere • . is the current node • .. is the previous node • @ precedes an attribute name • node selects elements named “node” • Predicates: • Use the brackets [] on a sub-selector to limit its selection with an expression • Wildcards: • Use the star * to select any and all nodes in the context of the current step along the path • Multiple Paths • Use the bar | as an AND operator between two selectors
  • 23. DSpace applies XSL with Apache Cocoon • Flow of control determined in sitemap.xmap, themes.xmap, and aspects.xmap • All requests begin to be processed at [xmlui]/sitemap.xmap • URLs for static resources get returned as such • XMLUI resources are processed in [xmlui]/themes/themes.xmap which reads the xmlui.xconf to pick the theme and makes an internal request to generate the DRI for the page • sitemap.xmap calls aspects.xmap which matches the request for the DRI and loads xmlui.xconf to determine the aspects. • Each aspect has its own sitemap.xmap which modifies the DRI in its turn • Low level details at http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html
  • 24. XSL Theming Capabilities • Eliding elements - Simply delete an element from an XSL template to stop it appearing from your page. Or add conditionals to your selectors to elide a subset of a group of rendered elements. • Moving elements – Re-order elements in an XSL template by moving them or even splitting them into programmatically chosen categories • Amending elements – Add an attribute directly as a static value or programmatically with the <attribute> XSL element. Appearances can also be altered by changing text (or keys) that are used as labels, etc.
  • 25. XSL Theming – Amending Metadata Value Presentation in the Simple Item View • A common use case: customizing the simple item view for a collection • In the the duplicated Mirage theme, we can find the item view templates in libxslaspectartifactbrowseritem- view.xsl • The metadata field rows are indicated by nice comments. • Track down the “Author(s) row”, and precede the <span> elements with a textual label of your choice. Optionally, give it a class or id and some CSS. • To get this to apply to just a specific collection, you will of course need to duplicate the theme before applying the changes and map it to your chosen collection in the xmlui.xconf.
  • 26. Customizing a Theme with Javascript - Outline Everything that CSS can do plus… • Animation • DOM manipulation • AJAX Many of these functions are achieved most easily with a supplementary library such as jQuery.
  • 27. Examples: The Discovery Search Page Widgets • Add filters button to provide new options to the user • Sorting widget that reissues the search request • Find the magic in [tomcat]webappsxmluistaticjsdiscoverysearch- controls.js
  • 28. Example: Autocomplete for Subject keywords with VIAF • The Virtual International Authority File is a collaborative name authority hosted by OCLC • VIAF includes personal names, corporate names, place names, and names of works among others. • VIAF offers a web service that allows querying for XML output as well as text-input autocomplete
  • 29. Autocomplete for Subject keywords with VIAF (1) – upgrade jQuery • Navigate to your duplicated Mirage theme and find the libxslcorepage-structure.xsl file • Find the addJavascript template at line 667 • Change the text value of the jqueryVersion variable to “1.11.1” • This will be automatically read from Google’s library hosting service - https://developers.google.com/speed/libraries/devguide#jquery
  • 30. Autocomplete for Subject keywords with VIAF (2) – supply the code • Find the codes on the share at Developmentcode-samples • Add the viaf-autocomplete.js file to Tomcat’s (not [dspace-install-dir]’s!) webappsxmluithemes[themename]libjs directory • Add the viaf-autocomplete.css file to the webappsxmluithtmes[themename]libcss directory • Add the new javascript and css to the theme’s sitemap.xmap. • Restart Tomcat
  • 31. Autocomplete for Subject keywords with VIAF (3) – Check the Functionality • Enter the item submission workflow – • On the second Describe page, we will find the subject keyword text input that the JavaScript file is hard-coded to find
  • 32. Autocomplete for Subject keywords with VIAF – Reflections on Functionality • dc.subject text values do not fully realize the potential of linked open data • The DC Terms schema gets closer, but not quite there yet • Security concerns in the browser limit more robust access to VIAF with Ajax. • Safe browsers don’t permit cross-domain Ajax calls • One could set up a local semantic-web service proxy
  • 33. Topics To Explore Further • Responsive design • Paradigm for Mirage 2 • Interacting directly with the DSpace database • One may, if necessary, issue queries directly to one’s database through psql • Caution is urged • Coding Core DSpace • Complete control over aspects as well as internal functionality • However, if your changes don’t make it back into the next point release, keeping your changes after an upgrade could be difficult • Major challenges to rapid development: • Build time • Automated testing

Notas del editor

  1. Note that ordering for the themes is significant!