Microsoft PowerPoint

Report
Hacking Your Discovery Layer
Fri May 2, 10-10:45am - Joillet
Randy Oldham
University of Guelph
Ontario, Canada
[email protected]
@roldham
All About TUG
 TUG: TriUniversity Group Consortia
 University of Waterloo (Waterloo, Ontario,
Canada) – 22,400
 Wilfrid Laurier University (Waterloo,
Ontario, Canada) – 14,800
 University of Guelph (Guelph, Ontario,
Canada) – 22,000
Note
 Lots of Ex Libris products
 Hosted Locally:
 Voyager
 Primo
 Hosted Provincially:
 SFX
Generally Speaking…
 Locally-hosted
 More access to files
 More potential for hacking
 Vendor-hosted
 Less access to files
 Less potential for hacking
 YOUR MILEAGE MAY VARY…
 Terms & Licenses
Full Disclosure
 This is Matt.
 Matt is a developer at UG
 This is Randy.
 He’s the web guy at UG
 Also Primo guy at UG
 Then we had a team of folks from the
consortia… Alison, Charles, Dillon, Matt
 And EX LIBRIS support…
First Steps…
 Determine your access to files:
 Is there backend administration?
 Can you modify/include CSS?
 Simple colour changes & hide content
 Can you modify/include HTML files?
 Customise headers and footers
 Include new JS files
 Can you modify/include Javascript files?
 More advanced customisations
 Programmatically changing things
 Can you modify core files?
 Carte Blanche!
General customisation notes
 We had a general approach to
customisations:
 Avoid customisations to core files when
possible
 Keep it simple…as close to stock as
possible
 Backup…backup…backup
 Document all changes
 Share 
Determine What to Customise
 Just because you CAN doesn’t mean
you SHOULD
 Remember: Each hack has to be
maintained through upgrades
 Driven by usability testing:
 What would help users?
 What would increase their success?
 What would stop them from asking for
help?
Tools You’ll Need
1.
2.
3.
4.
Vendor customisation documentation
Access to customise or include files
Users
Knowledge of either:
 CSS
 HTML
 JAVASCRIPT
5. Firebug addon for Firefox
6. 1 bottle beer*
7. 1 bottle opener*
Quick Note on Firebug
 Extension for Firefox
 Find div/class names:
 To hide
 To change
Method One
RTFM




Read The Functional Manual
Vendors provide limited customisation
This is your best bet
Vendors support these customisations
through upgrades
 Reduces your upgrade time
Change Facet Order
COMPLEXITY LEVEL: LOW
BACKEND ADMINISTRATION
Facet Order
 Changed Facet Order:
Before:
After:
 WHY Change?
 Usability testing, Consortia, Analytics
Facet Order
 How to modify FACET ORDER in PRIMO:
 Login to the Primo back office
 Click ONGOING CONFIGURATION WIZARDS
 Click VIEWS WIZARD
 Click on EDIT to the right of the view
 Click SAVE & CONTINUE, CONTINUE,
CONTINUE
 Select BRIEF DISPLAY from dropdown
 Click EDIT TILE to the right of REFINE MY
RESULTS
 Change the order & enable/disable facets here
 Click Save & Continue, continue, DEPLOY
Add custom tabs
COMPLEXITY LEVEL: LOW
BACKEND ADMINISTRATION
Tabs
 Add tabs (Blended, Primo, Primo
Central)
 AFTER:
 Why change?
 Usability testing/staff feedback
tabs
 All through back office
 Modify your view
 Go to the TABS section
 Select your search scopes for the tabs
 Save & deploy
Method 2:
CSS Override




You must have access to edit CSS files
Create your own CSS file and include it
Use Firebug
Determine div/class name




Visibility:hidden; to HIDE things
Change colours
Re-position things
Replace some images
Change versions tab colour
COMPLEXITY LEVEL: LOW
CSS OVERRIDE
Versions Tab Colour
 Versions tab too pale:
 If there are multiple copies of the same
item, the records are de-duped and all
records are displayed behind a
VERSIONS tab
 Usability testing/comments - users
consistently missed this tab… too pale
The Goal
 Make the VERSIONS tab stand out
more
 Colour change = CSS override
Versions Tab Colour
 Instructions are on Ex Libris Developers
Network
 Essentially, we do the following:




create a new triangle bit
change the text colour
change the background colour
All done with CSS
Method 3:
Inject JS
 You must have access to an HTML file
loaded on each page (footer/header)
 Create a js file and include it in this
 Possibilities are nearly endless
 Be prepared to troubleshoot post
upgrades
Remove EXPAND MY
RESULTS
COMPLEXITY LEVEL: LOW
JAVASCRIPT ADDITION
Remove EXPAND…
 Remove the EXPAND BEYOND facet
 Why change?
 Usability testing/staff feedback
Remove EXPAND…
 It’s a pretty simple one line javascript bit
$(document).ready(function() {
$('.EXLFacetContainer
h3').filter(function(index) { return
$(this).text().trim() === "Expand My
Results"; }).parent().hide();
});
 No modifications to EXL files!
 EXLibris Support =
 Survives upgrades!***
 Code in Ex Libris Developers Network
Customise MORE tab
COMPLEXITY LEVEL: MEDIUM
BACKEND & JS
Add TUGdoc Tab
 TUGDoc Request Tab
 Consortial interlibrary article lending
TUGdoc Tab
 We co-opted the “GetIT! Link 2”…
MORE tab

Mapping tables: Delivery: GetIT! Link 2: changed the “link field in
PNX” to tugdoc for everything except Remote Search Resource

Mapping tables: delivery: templates – mapped tugdoc to the URL
template:

tugdoc https://insite.lib.uoguelph.ca/primo/tugdoc/index.cfm?bib={{con
trol/sourcerecordid}}&view=GUELPH
link to TUGDoc request

to open the tab in new window: Mapping tables: Delivery - URLs
Attributes
https://insite.lib.uoguelph.ca/primo/tugdoc
OpenInNewWindow


For the label of the tab: Code tables: Delivery: GetIT! Tab2 – changed
name to TUGDoc Request
TUGdoc tab
 TUGdoc tab shows up on every item
 We only want folks to use TUGdoc for
ARTICLES…not other resource types
 So we programmatically HIDE the tab
for NON-JOURNAL resources using
JAVASCRIPT
TUGdoc Tab
 The code is in Ex Libris Developers
Network
 It’s a pretty simple one line javascript bit
$(document).ready(function() {
$('.EXLMoreTab').not('tr.EXLResult
MediaTYPEjournal > td > div > div >
ul > li').hide();
});
 No modifications to EXL files!
 Vendor Support =
Boolean Search Example
COMPLEXITY LEVEL: MEDIUM
JAVASCRIPT ADDITION
Boolean Search Example
 Add a boolean search example
 AFTER:
 Why change?
 Staff request
Boolean Search Example
 Relatively simple one line of JS
 $('<div
class="TUGSearchFieldRibbonBoolean
Example">e.g., king AND shakespeare
NOT
lear</div>').insertBefore(".EXLSearchFi
eldRibbonAdvancedSearchLink");
 We find div on the screen and then
insert a div just before it. We give our
div a class so that we can style it. We
specify the content of the div
New Search Tab
COMPLEXITY LEVEL: MEDIUM
JAVASCRIPT ADDITION
New Search Link
 New Search Link Added
 Why Change?




Staff request
Takes users back to search startpage
Requires JSP file modifications
Contact me for more information
Where is it? integration
COMPLEXITY LEVEL: HIGH
JAVASCRIPT ADDITION
Where is it feature
 Patrons/staff said… cool… I have a call
number… but where is the thing!?
 Guelph/Waterloo/Laurier were different
 Guelph had a CF web app which
supported URL var and form input
 Waterloo had a different CF web app
which supported form input
 Laurier had static floor maps
Where is it?
 Primo has the call number…
 Our consortia has apps (or static maps)
that can take call numbers and show
building locations for materials…
 How doth we marry these things!?
Where is it?
 Some JAVASCRIPT!




Read in item type
Read in location, and call number
Do something based on some logic
EG:If you find BOOK, then:
 If UG/UW: create link which submits call
number to CF apps via URL
 If WLU: create static link to floor map of proper
call number range
 EG 2: If you find ANNEX, then always:
 Display NOTE text instead of LINK.
Where is it?
 Try the Guelph view
Where is it?
 And one with a note…
Method 4:
Edit HTML
 You must have access to HTML files
 Add logos, customise headers/footers
 These are least likely to survive
upgrades
 Be prepared to troubleshoot post
upgrades
Customised Help
COMPLEXITY LEVEL: MEDIUM
JAVASCRIPT ADDITION
Help Doc Updates
 Customised discovery layer =
customised help
 Updated screen caps
 Updated instructions
 /exlibris/primo/p4_1/ng/primo/home/syst
em/thirdparty/jbossas/server/search/de
ploy/primo_libraryapp.ear/primo_librarylibweb.war/static_htmls/
 SEARCH TIPS: /help/search.html
PRIMO INTEGRATION
Search box
 Add a simple primo search box to
Library website
 AODA…avoid iFRAMES
New Books
NEW NEW Books
New Books cont..
 RSS feed integrated
 Pulls covers in from Google Books
 Can limit to LC classification range
 Can limit to library
What about you?
 What are some customisations you
folks have done?
 What would you like to see?
 Will you share on Ex Libris Developers
Network?
THANK YOU!
 Thanks for listening!
 If anything piqued your interest and
you’d like some more info, feel free to
drop me an email:
 [email protected]
 @roldham

similar documents