Support for embedded Content Cafe on details page
authorBill Erickson <berick@esilibrary.com>
Fri, 8 Jul 2011 16:22:24 +0000 (12:22 -0400)
committerBill Erickson <berick@esilibrary.com>
Fri, 8 Jul 2011 16:28:07 +0000 (12:28 -0400)
Added support for two new Apache environment variables
OILS_CONTENT_CAFE_USER and OILS_CONTENT_CAFE_PASS.  If set, a Content
Cafe pane will be loaded (via iframe) directly into a new "Summaries &
More" section on the record details page of the TT-pac, when the
section is expanded.  In addition to the C. Cafe content, we also show
the 520 bib summary in the same pane.

"Summaries & More" is only visible if either there is 520 data or there
is a suitable identifier (isbn or upc) and the content cafe
configuration is in place.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/examples/apache/eg_vhost.conf
Open-ILS/web/css/skin/default/opac/style.css
Open-ILS/web/templates/default/opac/parts/misc_util.tt2
Open-ILS/web/templates/default/opac/parts/record/extras.tt2
Open-ILS/web/templates/default/opac/parts/record/summaryplus.tt2 [new file with mode: 0644]

index e8ca3ec..e0571c8 100644 (file)
@@ -118,13 +118,12 @@ RewriteRule . - [E=locale:%1]
 
     # Specify the initial script URL for Novelist (containing account credentials, etc.)
     #SetEnv OILS_NOVELIST_URL
-    
+    #
 
     # Uncomment to force SSL any time a patron is logged in.  This protects 
     # authentication tokens.  Left commented out for backwards compat for now.
     #SetEnv OILS_OPAC_FORCE_LOGIN_SSL 1
 
-
     # If set, the skin uses the combined JS file at $SKINDIR/js/combined.js
     #SetEnv OILS_OPAC_COMBINED_JS 1
 
@@ -566,6 +565,13 @@ RewriteRule ^/openurl$ ${openurl:%1} [NE,PT]
     # Expire the HTML quickly since we're loading dynamic data for each page
     ExpiresActive On
     ExpiresByType text/html "access plus 5 seconds"
+    
+    # For use with embedded Content Cafe content
+    #SetEnv OILS_CONTENT_CAFE_USER 123
+    #SetEnv OILS_CONTENT_CAFE_PASS 456
+    # Consider copying/moving other added content configs 
+    # (e.g. NOVELIST) into here or to an outer container shared by
+    # both /opac and /eg/opac since some are used in both places
 </Location>
 
 
index caba3e0..0e7ffda 100644 (file)
@@ -1001,3 +1001,4 @@ a.dash-link:hover { text-decoration: underline !important; }
 .rdetail-author-div { padding-bottom: 10px; }
 
 .invisible { visibility: hidden; }
+.rdetail-extras-summary { margin: 10px; }
index 0e7cd2c..b8e3e9c 100644 (file)
@@ -10,6 +10,7 @@
         args.author = xml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
         args.publisher = xml.findnodes('//*[@tag="260"]/*[@code="b"]').textContent;
         args.pubdate = xml.findnodes('//*[@tag="260"]/*[@code="c"]').textContent;
+        args.summary = xml.findnodes('//*[@tag="520"]/*[@code="a"]').textContent;
         args.edition = xml.findnodes('//*[@tag="250"]/*[@code="a"]').textContent ||
             xml.findnodes('//*[@tag="534"]/*[@code="b"]').textContent ||
             xml.findnodes('//*[@tag="775"]/*[@code="b"]').textContent;
index 66b4917..2a86d0e 100644 (file)
@@ -2,8 +2,20 @@
     <div id='rdetail_extras_div' style='width: 100%;'> 
 
         [%  # Hidden extras are not yet implemented.  Some may require JS
+
+        # Let's see if we should hide the content cafe / simple summary content
+        hide_summary = 1;
+        IF attrs.summary; hide_summary = 0; ELSE;
+            # Expose content cafe if it's reasonable to do so.
+            # This approach only works when using embedded content cafe.
+            IF ENV.OILS_CONTENT_CAFE_USER; 
+                ident = attrs.isbn_clean || attrs.upc; 
+                IF ident; hide_summary = 0; END;
+            END;
+        END;
+
         extras = [
-            {name => 'summary',  label => l('Summaries &amp; More'), hide => 1}, # Content Cafe
+            {name => 'summaryplus',  label => l('Summaries &amp; More'), hide => hide_summary}, 
             {name => 'content',  label => l('Contents'), hide => 1}, # ToC
             {name => 'authors',  label => l('Authors')}, 
             {name => 'series',   label => l('Series'), hide => 1}, 
diff --git a/Open-ILS/web/templates/default/opac/parts/record/summaryplus.tt2 b/Open-ILS/web/templates/default/opac/parts/record/summaryplus.tt2
new file mode 100644 (file)
index 0000000..32af899
--- /dev/null
@@ -0,0 +1,15 @@
+<div class='rdetail_extras_div'> 
+    [%  IF attrs.summary %]
+    <div class='rdetail-extras-summary'>
+        <strong>[% l('Summary: ') %]</strong>[% attrs.summary %]
+    </div>
+    [% END %]
+
+    <!-- Embedded content cafe iframe -->
+    [% ident = attrs.isbn_clean || attrs.upc %]
+    <iframe width="100%" height="400" frameborder="0" 
+        src="http://contentcafe2.btol.com/ContentCafeClient/ContentCafe.aspx?UserID=[%- 
+            ENV.OILS_CONTENT_CAFE_USER %]&Password=[% ENV.OILS_CONTENT_CAFE_PASS %]&ItemKey=[% ident %]&Options=Y" >
+    </iframe>
+</div>
+