TPac: show non-asset.uri 856 URLs on detail page
authorBill Erickson <berick@esilibrary.com>
Mon, 3 Oct 2011 20:31:45 +0000 (16:31 -0400)
committerDan Scott <dscott@laurentian.ca>
Mon, 21 Nov 2011 19:08:18 +0000 (14:08 -0500)
Display "global" 856 URLs in record detail page.  A "global" URL in this
case is one that has no ownership and has not been extracted out as an
asset.uri.  As of right now, this is any 856 that has no $9, $w, or $n
subfield data.

Links are displayed directly after asset.uri links using the same style.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
Open-ILS/src/templates/opac/parts/misc_util.tt2
Open-ILS/src/templates/opac/parts/record/summary.tt2

index 3089984..1657bd6 100644 (file)
         # clean up the ISBN
         args.isbn_clean = args.isbns.0.replace('\ .*', '');
 
+        # Extract the 856 URLs that are not otherwise represented by asset.uri's
+        args.online_res = [];
+        FOR node IN xml.findnodes('//*[@tag="856"]');
+            IF node.findnodes('./*[@code="9" or @code="w" or @code="n"]'); NEXT; END; # asset.uri's
+            label = node.findnodes('./*[@code="y"]');
+            notes = node.findnodes('./*[@code="z" or @code="3"]');
+            FOR href IN node.findnodes('./*[@code="u"]');
+                NEXT UNLESS href;
+                # it's possible for multiple $u's to exist within 1 856 tag.
+                # in that case, honor the label/notes data for the first $u, but
+                # leave any subsequent $u's as unadorned href's. 
+                # use href/link/note keys to be consistent with args.uri's
+                args.online_res.push({
+                    href => href.textContent, 
+                    link => (loop.first AND label) ? label.textContent : href.textContent,
+                    note => (loop.first) ? notes.textContent : ''
+                });
+            END;
+        END;
         args.holdings = [];
         args.uris = [];
         args.issns = [];
index bbfb1c1..125546c 100644 (file)
@@ -73,7 +73,7 @@
 [%- IF sfx.size && sfx.0 != '' %]
     </div>    
 [%- END %]
-[%- FOR uri IN args.uris; %]
+[%- FOR uri IN args.uris.merge(args.online_res); %]
 <div class="rdetail_uri">
     <a href="[% uri.href %]">[% uri.link %]</a>[% ' - ' _ uri.note IF uri.note %]
 </div>