Microsoft PowerPoint
Download
Report
Transcript Microsoft PowerPoint
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