Title: Creating a Customized HIP for Reference Staff
1Creating a Customized HIP for Reference Staff
- Phil Feilmeyer
- Hennepin County Library
- CODI 2005
2Backdrop
- HIP 3.06a, Windows 2003
- Horizon 7.3.3
- HCL is a single library with 26 branches
- Each branch has a HIP profile, but they are
essentially identical - Decision-making aspects of customization are
centralized - Experience with XSLT, SQL, Web design/graphics,
Web Application development - Previous CODI presentations on customizing XSL
stylesheets available at - http//www.hclib.org/extranet and
httpwww.hclib.org/extranet/MorePresentations.html
3Backdrop
- Migration from Dynix with extensively customized
HIP to Horizon, September 2004 to August 2005
4Backdrop
- Evaluation of the client search interface
- Catalog interface much different for staff and
public - Team identified essential functionality for
Reference Desk interface - Blurry line between Ref and Circ Desk tasks
- Reduce introduction of bad data by untrained
and/or creative staff - Perceived reduction in level of customer service
5Horizon Migration
- Evaluation of the client search interface
- Catalog interface much different for staff and
public - Team identified essential functionality for
Reference Desk interface - Blurry line between Ref and Circ Desk tasks
- Reduce introduction of bad data by untrained
and/or creative staff - Perceived reduction in level of customer service
6Reference Desk Tasks not covered in HIP
7Public Basic Search
8Staff Basic Search
9Item Details - Public
10Item Details - Staff
11Update Item Status
12Access to My Account
13Access to My Account
14Change pickup location
15Change pickup location
16Separation of Staff and Public
- Each branch has two HIP profiles, one for public
and one for staff - Staff profile code same as public preceded by an
underscore - Public ap
- Staff _ap
- Staff profiles dont require a PIN
- Profile codes used to differentiate between Staff
and Public in the XSL stylesheets - Same XSL stylesheets used for both
17isStaffProfile
- In each of the root stylesheets
- ltxslvariable name"isStaffProfile"gt
- ltxslif test"starts-with(//profile,
'_')"gttruelt/xslifgt - lt/xslvariablegt
- To implement a difference between Staff and
Public - ltxslchoosegt
- ltxslwhen test"isStaffProfile 'true'"gt
- code for staff catalog
- lt/xslwhengt
- ltxslotherwisegt
- code for public catalog
- lt/xslotherwisegt
- lt/xslchoosegt
18Types of Customizations
- All require customizing the XSL stylesheet to
change source HTML based on isStaffProfile - Adding data elements to the XML using the HIP
Admin tool - Adding data elements NOT available through the
Admin tool and XML - Link to custom web applications that interact
directly with Horizon database
19HIP Admin tool Item details
20HIP Admin tool Item details
21HIP Admin XSL Customization
- lttdgt
- ltxslvalue-of select"status"/gt
- ltxslif test"isStaffProfile 'true'"gt
- ltbr/gt
- ltxslvalue-of select"status_set"/gt
- lt/xslifgt
- lt/tdgt
22Data not available from the XML
23Data not available from the XML
Borrower ID, but no barcode number in the XML
24Data not available from the XML
- Custom java function in the XSL Processor that
pulls in content from a web page - written by Casey Durfee, Seattle Public Library
- http//extranet.spl.org/rss-0.5.zip
- Instructions getURL.txt
- Code Utils.jar (in the optional folder)
- Create a custom web application to deliver the
desired information - Perl CGI and/or ColdFusion
- Use SQL to pull data from Horizon database
25Data not available from the XML
getbbarcode.cfm
- ltcfparam name"borrowerID" default""gt
- ltcfquery datasource"Horizon_Staff"
name"getbbarcode"gt - select bbarcode from borrower_search_cf_view
- where borrower borrowerID
- lt/cfquerygt
- ltcfoutput query"getbbarcode"gtbbarcodelt/cfoutput
gt
26Data not available from the XML
27Data not available from the XML
toolbar2.xsl
- lttdgt
- ltxslvalue-of select"//security/name"/gt
- ltxslif test"isStaffProfile 'true'"gt
- ltxslvariable name"url"gt
- http//hzapps8080/getbbarcode.cfm?borrowerI
D - ltxslvalue-of select"//security/patronid"/gt
- lt/xslvariablegt
- ltbr/gt
- ltxslvalue-of select"UtilsgetURL(url)"/gt
- lt/xslifgt
- lt/tdgt
28Data not available from the XML
Taking this technique to extremes getSummaryViewD
ata?bibID1099918locrd
- numRequests24checkedInhererefRent
- all509ref0bsx0onorder0reqData
- 491491onOrder0ldr06aldr07mdesc00desc01
desc04fixed21 fixed23 URL - niceTitleHarry Potter and the half-blood prince
29Data not available from the XML
- getSummaryViewData?bibID1099918locrd
numRequests24 checkedInhere copiesall509ref0
bsx0onorder0 reqData491491 onOrder0 ldr06a
ldr07m desc00 desc01 desc04 fixed21
fixed23 URL niceTitleHarry Potter and the
half-blood prince
30Link to Custom Web Applications
- Direct link via lta hrefgt
- Form submission via ltform actiongt
31Direct link via lta hrefgt
32Direct link via lta hrefgt
- getrequests.cfm?bib1088720
33Direct link via lta hrefgt
- getrequests.cfm
- ltcfparam name"bib" default""gt
- ltcfquery datasource"Horizon_Staff
name"getHolds"gt - SELECT FROM request
- WHERE bib bib and
- request_status not in (3,6)
- ORDER BY bib_queue_ord
- lt/cfquerygt
34Direct link via lta hrefgt
- fullnonmarcbib.xsl
- ltagt
- ltxslchoosegt
- ltxslwhen test"(requests gt 0) and
(isStaffProfile 'true')"gt - ltxslattribute name"class"gt
- ltxslvalue-of selectcss_small_bold_anchor"/
gt - lt/xslattributegt
- ltxslattribute name"href"gt
- http//hzapps8080/getrequests.cfm?bib
- ltxslvalue-of select"bibkey"/gt
- lt/xslattributegt
- lt/xslwhengt
- ltxslotherwisegt
- ltxslattribute name"class"gt
- ltxslvalue-of select"css_bold_black_font1"/gt
- lt/xslattributegt
- lt/xslotherwisegt
- lt/xslchoosegt
- Current Requests ltxslvalue-of
select"requests"/gt
35Form submission via ltform actiongt
36Form submission via ltform actiongt
ltform nameipacgt code for regular HIP login
form lt/formgt
ltform nameNameToBarcodeLookup
actionhttp//hzapps8080/barcodeLookup.cfmgt
custom code for name keyword lookup
form lt/formgt
37Security
- Separation of staff and public catalogs, helper
services - public, universally available
- staff, restricted to secure internal network
- separate HIP servers
- separate database users/permissions for custom
applications
38Security
- Authentication
- Staff Catalog cookie
- must be from a staff workstation with an internal
IP address - username/password
- Javascript added to the five root XSL stylesheets
to check for the cookie - Tests for cookie (onLoad)
- Pass, on to the catalog
- Fail, redirect to the public catalog
39SQL Help
- Use Horizon client in debug mode to see the SQL
used for a task - Ctrl-Alt-Shift-D
40SQL for Change Pickup Location
- 01-LCH.GUI
- 01-LCH.GUI Nov 6, 2005 063958
- 01-LCH.GUI Client version 7.3.200.14
- 01-LCH.GUI'HZDEBUG Comment, DbCommand
- 01-LCH.GUI'HZPHASE GENERAL
- 01-LCH.GUI begin tran
- 01-LCH.GUI select request, item, borrower,
request_date, request_status, hold_exp_date,
comment, on_hold_date, expire_date, fill_date,
fill_location, pickup_location, reactivate_date,
copy_request, timestamp / kludge / from request
where request 402463 for browse - 01-LCH.GUI update request set pickup_location
"ap" where (bib 494574) and (bib_queue_ord
5) and tsequal(timestamp, 0x00010000a62a5e95) - 01-LCH.GUI select distinct table_name, keyCols
convert (varchar (255), null), dbServerColsBkt
convert (int, null) from synch_table where
enabled 1 order by table_name - 01-LCH.GUI commit tran
41Change Item Variables (CIV)
42Change Item Variables (CIV)
43Creating a Customized HIP for Reference Staff
- Phil Feilmeyer, Hennepin County Library
- http//www.hclib.org/extranet
- pfeilmeyer_at_hclib.org
- http//www.hclib.org/catalog
- CODI, November 2005