SMS Message from OPAC
Tags:
Last Updated: Oct 30, 2009 02:07
- DescriptionIn OPAC add "Text Me This Information" programs sends Title and Call Number via Text Message to Patron's Cell Phone
- Author: Paul Asay
- Additional author(s):
- Institution: Indiana State University
- Year: 2009
- License: BSD style
- Short description: Text Title and Call Number to Patron from OPAC Bib Display
- Link to terms: [Detailed license terms]
- Skill required for using this code:
intermediate
State
Stable
Programming language
XSL and .ASP
Software requirements
ASP Requires Windows based web server (can easily be rewritten in PHP or similar)
Screen captures
Author(s) homepage
Download
http://paulasay.indstate.edu/textme
Working example
Using the following Ex Libris open interfaces
Changes
Version 1.2 ....
Text...
Version 1.1 ....
Text...
...
Text...
Release notes
Captures 245 Subfield A and 050 and sends to a form which asks patron for Phone Number and Cell Service Provider. Then sends an email to phone@provider with the Title and Call Number.
Installation instructions
Visit http://paulasay.indstate.edu/textme for complete instructions


4 Comments
comments.show.hideAug 13, 2009
Steve Watkins
This is a very simple and elegant way of capturing the title and call number within the OPAC interface to forward to a script that generates an email to the mobile service providers' email-to-SMS gateways. While my previous implementation of SMS capabilities is much more cumbersome and elaborate to set up, relying on Index Data's YAZ open-source Z39.50 software, it does capture real-time circulation status and item locations, in addition to the call number and title. I have not been able to figure out how to grab those pieces of information from the holdings display section in the OPAC using native XML/XSLT as Paul has, but would be very interested if anyone can come up with a solution that can do so.
--Steve Watkins, California State University, Monterey Bay
swatkins at csumb.edu
Nov 04, 2009
Ryan Edwards
I was able to re-write the asp code into php and get the title and call number SMS messaging working from my opac. I still can't figure how to extract the location and item status via callSearch.xsl
-Ryan Edwards, CSU Channel Islands
Apr 13, 2010
John S. Hambleton
I did the same thing as Ryan Edwards. I did get the location and item status (for each holdings,
parse out in your PHP code). Here is what I have. BTW great application, kudos to Paul.
Relevant sections of files:
/m1/voyager/xxxdb/tomcat/vwebv/context/vwebv/ui/yourskin/xsl/contentLayout/display/display.xsl
<!-- WVC1 Added this template, which is called by callSearch.xsl. The purpose of
this template is to get location information to be passed to SMS script jsh 11-6-2009 -->
<xsl:template name="JHLOCATE">
<!-- xsl:variable name="holdingsData" -->
<xsl:for-each select="$HoldXML/mfhd:mfhdRecord">
<xsl:variable name="mfhdId" select="@mfhdId"/>
<xsl:for-each select="$holdingsConfig">
<xsl:call-template name="buildMarcDisplay">
<xsl:with-param name="mfhdID" select="$mfhdId"/>
<xsl:with-param name="recordType" select="'mfhd'"/>
</xsl:call-template>
</xsl:for-each>
</xsl:for-each>
<!-- /xsl:variable -->
</xsl:template>
/m1/voyager/xxxdb/tomcat/vwebv/context/vwebv/ui/yourskin/xsl/callSearch.xsl
<xsl:template name="recordCallSearch">
<xsl:variable name="titlename">
<xsl:call-template name="BMDProcessMarcTags">
<xsl:with-param name="field" select="'245'"/>
<xsl:with-param name="indicator1" select="'X'"/>
<xsl:with-param name="indicator2" select="'X'"/>
<xsl:with-param name="subfield" select="'a'"/>
<xsl:with-param name="mfhdID" select="$bibID"/>
<xsl:with-param name="recordType" select="'bib'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="holdingsdata">
<xsl:call-template name="JHLOCATE"/>
</xsl:variable>
<!-- Replaced spaces, ampersands, question marks with underscores in holdings data and title -->
<xsl:variable name="titlename0">
<xsl:value-of select="translate($titlename, ' ', '_')"/>
</xsl:variable>
<xsl:variable name="titlename1">
<xsl:value-of select="translate($titlename0, '&', '_')"/>
</xsl:variable>
<xsl:variable name="titlename2">
<xsl:value-of select="translate($titlename1, '?', '_')"/>
</xsl:variable>
<xsl:variable name="locationname0">
<xsl:value-of select="translate($holdingsdata, ' ', '_')"/>
</xsl:variable>
<xsl:variable name="locationname1">
<xsl:value-of select="translate($locationname0, '&', '_')"/>
</xsl:variable>
<xsl:variable name="locationname2">
<xsl:value-of select="translate($locationname1, '?', '_')"/>
</xsl:variable>
etc.
Sep 22, 2010
Ken Herold
Another way to retrieve Call Number, Location, and Status information is to define variables directly at the top of display.xsl
<xsl:variable name="hamLoc" select="//hol:mfhdCollection/mfhd:mfhdRecord/mfhd:mfhdData[@name='locationDisplayName']"/>
<xsl:variable name="hamCall" select="//hol:mfhdCollection/mfhd:mfhdRecord/mfhd:mfhdData[@name='callNumber']"/>
<xsl:variable name="hamStatus" select="//hol:mfhdCollection/mfhd:mfhdRecord/mfhd:itemCollection/item:itemRecord/item:itemData[@name='displayStatus']"/>
and then call these in callSearch.xsl and edit the php or other files used to assemble the SMS text.