New Book Lists
authorTerran McCanna <tmccanna@georgialibraries.org>
Thu, 5 Jan 2017 19:03:41 +0000 (14:03 -0500)
committerChris Sharp <csharp@georgialibraries.org>
Tue, 31 Oct 2017 19:13:26 +0000 (15:13 -0400)
Adding functionality to PINES home page so that patrons can select
a library and see a list of new materials.

New Book Lists: Additional tweaks for author and image display

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
New Book Lists: More fixes
Changed title and added 'On Order' message for new records that aren't
available for holds or checkout yet.

New Book Lists: Final correction to title links

This was already applied to production during the upgrade process -
adding to GIT here for future reference.

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Conflicts:
Open-ILS/xsl/ATOM2XHTML.xsl

New Book List Selector

I created a new library dropdown based on the existing org selector
dropdown which dynamically creates the library list for the new book
selector. This replaces the manually-coded new book list selector I
originally put in place in order to get the feature rolled out.

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Open-ILS/src/templates/opac/parts/homesearch.tt2
Open-ILS/src/templates/opac/parts/org_selector.tt2
Open-ILS/web/images/books.jpg [new file with mode: 0644]
Open-ILS/web/opac/extras/os.css
Open-ILS/xsl/ATOM2XHTML.xsl
Open-ILS/xsl/MARC21slim2ATOM.xsl

index c02f6fa..8e11399 100644 (file)
@@ -2,18 +2,29 @@
     <!-- <img src="[% ctx.media_prefix %]/opac/images/main_logo.png[% ctx.cache_key %]"
         [% img_alt(l('Evergreen Logo')) %]/> -->
                
-       <div style="border:0px;text-align:center;height:300px;width:300px;float:left;margin-left:100px;">
+       <div style="border:0px;text-align:center;height:250px;width:250px;float:left;margin-left:0px;">
            <a href="http://pines.georgialibraries.org/pinesLocator/locator.html" target="_blank" style="text-decoration:none;">
                    <img alt="[% l('Library Locations') %]" src="[% ctx.media_prefix %]/images/pines-map.gif" style="height:150px;" /><br/>
                        <span style="font-size:125%;font-weight:bold;">[% l('Library Locations') %]</span>
                </a><br/>
                <p>[% l('PINES Library Locations Note') %]</p>
     </div>
-       <div style="border:0px;text-align:center;height:300px;width:300px;float:left;margin-left:50px;">
+
+       <div style="border:0px;text-align:center;height:250px;width:370px;float:left;margin-left:40px;margin-right:40px;">
+           <img alt="[% l('New Arrivals') %]" src="[% ctx.media_prefix %]/images/books.jpg" style="height:150px;" /><br/>
+               <span style="font-size:125%;font-weight:bold;color:#00593d;">[% l('New Library Materials') %]</span><br/>
+        <br/>
+        <form>
+            [% INCLUDE build_org_selector_newitems show_loc_groups=1 %]
+        </form>
+    </div>
+    
+       <div style="border:0px;text-align:center;height:250px;width:250px;float:left;margin-left:0px;">
            <a href="http://pines.georgialibraries.org/catalog-help" target="_blank" style="text-decoration:none;">
                    <img alt="[% l('PINES Catalog Help') %]" src="[% ctx.media_prefix %]/images/home-largehelp.png" style="height:150px;" /><br/>
                        <span style="font-size:125%;font-weight:bold;">[% l('PINES Catalog Help') %]</span>
                </a><br/>
                <p>[% l('PINES Help Note') %]</p>
     </div>
+    
 </div>
index 3f83690..11fba81 100644 (file)
@@ -135,3 +135,137 @@ BLOCK build_org_selector;
         [%- END %]
     </select>
 [%- END %]
+
+
+[%  # PINES Customization for New Library Materials
+    # Build second org selector that uses shortname instead of id
+
+BLOCK build_org_selector_newitems;
+    node_stack = [{org => org_unit || ctx.aouct_tree || ctx.aou_tree}];
+    inherited_vis = ctx.get_cgf('opac.org_unit.non_inherited_visibility').enabled == 'f';
+
+    IF !name; 
+        name = loc_name;
+    END;
+    IF !value;
+        value = loc_value;
+    END;
+
+    # if the selected org unit is out of hiding scope, 
+    # disable the ou-hide scoping altogether.
+    hiding_disabled = ctx.org_hiding_disabled(value);
+
+    -%]
+
+    <select id='newbook_selector' 
+            title='[% arialabel || l("Select Library") %]' 
+            class="org_selector_dropdown"
+            onchange="location = '/opac/extras/browse/html-full/item-age/' + 
+                this.options[this.selectedIndex].value + '/1/20';">
+    <option value="" class="org_unit" disabled selected="selected">Choose a library to see newly purchased items</option>
+    [%- 
+        WHILE node_stack.size > 0; 
+            node = node_stack.pop();
+            org_unit = node.org;
+            loc_grp = node.loc_grp;
+            ou_id = org_unit.id;
+            css_class = '';
+            disabled = '';
+            selected = '';
+            visible = org_unit.opac_visible == 't';
+
+            # org and all children are invisible.
+            NEXT IF !visible AND inherited_vis AND !ctx.is_staff;
+
+            IF !loc_grp; # processing an org unit
+
+                top_loc_groups = [];
+                IF show_loc_groups;
+                    # add the location groups that sort below the child org units
+                    FOR grp IN ctx.copy_location_groups.$ou_id.reverse;
+                        IF grp.top == 't';
+                            top_loc_groups.push(grp);
+                        ELSE;
+                            node_stack.push({org => org_unit, loc_grp => grp});
+                        END;
+                    END;
+                END;
+
+                # add the child org units
+                FOR child IN org_unit.children.reverse;
+                    node_stack.push({org => child});
+                END;
+
+                # add the location groups that sort to the top
+                # above the child org units
+                FOR grp IN top_loc_groups;
+                    node_stack.push({org => org_unit, loc_grp => grp});
+                END;
+
+            END;
+
+            # org is not publicly visible (though its children may be).
+            NEXT UNLESS ctx.is_staff OR visible;
+            
+            # org is not within hiding scope (though its children may be).
+            NEXT UNLESS hiding_disabled OR ctx.org_within_hiding_scope(ou_id);
+
+            node_value = ou_id;
+            IF loc_grp;
+                node_value = node_value _ ':' _ loc_grp.id; 
+                css_class = 'class="loc_grp"';
+            ELSE;
+                css_class = 'class="org_unit"';
+            END;
+
+            IF can_have_vols_only AND org_unit.ou_type.can_have_vols != 't';
+                disabled = 'disabled="disabled"';
+            ELSIF node_value == value;
+                selected = 'selected="selected"';
+            END; 
+
+            IF can_have_users_only AND org_unit.ou_type.can_have_users != 't';
+                disabled = 'disabled="disabled"';
+            ELSIF node_value == value;
+                selected = 'selected="selected"';
+            END; 
+
+            IF hold_pickup_lib AND ctx.get_org_setting(
+                    org_unit.id, 'opac.holds.org_unit_not_pickup_lib');
+                disabled = 'disabled="disabled"';
+            END;
+
+            # caller provided a list of valid org units.
+            # all orgs not in the list are marked invalid.
+            IF valid_org_list AND 
+                    !valid_org_list.grep('^' _ org_unit.id _ '$').size;
+                disabled = 'disabled="disabled"';
+                selected = '';
+            END;
+
+            pad_depth = 0;
+
+            # copy loc groups appear as children of the owning org unit
+            SET pad_depth = pad_depth + 1 IF loc_grp;
+
+            # determine the depth by calculating the distance from the root
+            porg = ctx.get_aou(org_unit.parent_ou);
+            WHILE porg;
+                SET pad_depth = pad_depth + 1 IF porg.opac_visible == 't' OR ctx.is_staff;
+                porg = ctx.get_aou(porg.parent_ou);
+            END;
+
+            pad_depth = pad_depth * 5;
+            display_name = loc_grp ? loc_grp.name : org_unit.name %]
+                       [% IF node_value == 1 %]
+                           [% display_name = "All PINES Libraries" %]
+                   [% END %]
+
+            <option value='[% org_unit.shortname %]' [% selected %] [% disabled %] [% css_class %]> 
+                [% '&nbsp;' FOR [0..pad_depth]; display_name | html %]
+            </option> 
+
+        [%- END %]
+    </select>
+[%- END %]
+
diff --git a/Open-ILS/web/images/books.jpg b/Open-ILS/web/images/books.jpg
new file mode 100644 (file)
index 0000000..6becb9b
Binary files /dev/null and b/Open-ILS/web/images/books.jpg differ
index 50ce529..3dcb855 100644 (file)
@@ -24,8 +24,10 @@ div#searchdiv {
        right: 0;
        */
        /*width:11em;*/
-       background-color: lightgray;
+       /*background-color: lightgray;
        border:2px solid lightblue;
+    */
+    display:none;
        /*
        border-right: 0px;
        border-top: 0px;
@@ -39,15 +41,26 @@ html>body div#searchdiv {
        position: fixed;
 }
 */
-
+div#header {
+    height:100px;
+    background: url(/report-creator/images/pinetree-banner.png) repeat top left;
+    border: 0px;
+    }
+/*    
 div#header img {
        position: absolute;
        top: 0;
        right: 0;
        }
+*/    
 h1, div#header p, form p {
        margin: 0;
        padding: 0;
+    font-style: italic;
+    font-size: 16pt;
+    font-family: Georgia, serif;
+    color: #339966;
+    font-weight: normal;
        }
 form {
        margin: 1em 0 0 3em;
@@ -56,14 +69,18 @@ form {
 input {
        margin-right: 0.5em;
        }
+dl {
+    margin-left: 30px;
+   }
 dt {
        margin-top: 1.2em;
+    margin-bottom: 10px;
        }
 dd {
        font-style: italic;
        margin: 0;
        width: 80%;
-       margin-left: 1em;
+       /* margin-left: 1em; */
        }
 dd.desc {
        font-style: normal;
@@ -73,6 +90,17 @@ dd.url {
        font-style: normal;
        margin-left: 0;
        }
+.booktitle {
+    font-weight:bold;
+    }
+.jacket {
+    margin: 5px 10px 5px 0px;
+    border: 1px solid #ccc;
+    width: 70px;
+    height: 100px;
+    float: left;
+    }
+
 #footer {
        text-align: center;
        }
index 3484f15..66ff174 100644 (file)
@@ -59,7 +59,7 @@ To-do list:
        <xsl:variable name="t-results">Results</xsl:variable>
        <xsl:variable name="t-resultsto">to</xsl:variable>
        <xsl:variable name="t-resultsof">of</xsl:variable>
-       <xsl:variable name="t-resultstitle">Search Results</xsl:variable> <!-- used in case of absent title -->
+       <xsl:variable name="t-resultstitle">Newly Purchased Library Materials</xsl:variable> <!-- used in case of absent title -->
        <xsl:variable name="t-resultsfor">Search Results for</xsl:variable> <!-- used in case of absent title but query is known -->
        <!-- next 2 vars are text links to previous and next result pages; entitles should be double-escaped as shown -->
        <xsl:variable name="t-prevlink">&amp;#171; previous</xsl:variable>
@@ -71,12 +71,12 @@ To-do list:
        <xsl:variable name="t-onlineresources">On-line resources: </xsl:variable>
        <xsl:variable name="t-untitleditem">(untitled)</xsl:variable> <!-- text of untitled items when the title needs to be shown) -->
        <xsl:variable name="t-entrylink">view full entry</xsl:variable> <!-- text of the link to the full entry (used with <content src="" /> in atom) -->
-       <xsl:variable name="t-authors">by</xsl:variable> <!-- label before one or more author/contributors (eg the 'by' in 'by Joe'); leave blank to not show authors -->
-       <xsl:variable name="t-categories">Subjects:</xsl:variable> <!-- label before one or more categories; leave blank to not show categories -->
-       <xsl:variable name="t-source">from</xsl:variable> <!-- label of source (e.g. 'from' or 'via' in English); leave blank to not show sources -->
-       <xsl:variable name="t-comments">comments</xsl:variable> <!-- leave blank to not show link to comments -->
-       <xsl:variable name="t-download">download</xsl:variable> <!-- leave this or t-enclosure blank to not show link to enclosures -->
-       <xsl:variable name="t-enclosure">enclosure</xsl:variable> <!-- text of untitled enclosures; leave this or t-download blank to not show link to enclosures -->
+       <xsl:variable name="t-authors">By</xsl:variable> <!-- label before one or more author/contributors (eg the 'by' in 'by Joe'); leave blank to not show authors -->
+       <xsl:variable name="t-categories"></xsl:variable> <!-- label before one or more categories; leave blank to not show categories -->
+       <xsl:variable name="t-source"></xsl:variable> <!-- label of source (e.g. 'from' or 'via' in English); leave blank to not show sources -->
+       <xsl:variable name="t-comments"></xsl:variable> <!-- leave blank to not show link to comments -->
+       <xsl:variable name="t-download"></xsl:variable> <!-- leave this or t-enclosure blank to not show link to enclosures -->
+       <xsl:variable name="t-enclosure"></xsl:variable> <!-- text of untitled enclosures; leave this or t-download blank to not show link to enclosures -->
        <!-- END SETTINGS -->
 
        
@@ -165,6 +165,7 @@ To-do list:
 
                                        <xsl:variable name="htmllink" select="(atom:link[@rel='alternate' or not(@rel)]/@href | link | rss1:link)[1]" />
                                        <h1>
+                        <a href="/"><img src="/report-creator/images/PINESLogo.gif" style="margin:5px 20px 0px 5px;border:0px;height:40px;" /></a>
                                                <!--
                                                <xsl:choose>
                                                        <xsl:when test="$htmllink">
@@ -235,16 +236,18 @@ To-do list:
                                        <xsl:when test="$items">
                                                <!-- display the search numbers -->
                                                <p class="nav">
+                        <!-- PINES Results display doesn't work
                                                        <xsl:value-of select="concat($t-results,' ')" />
                                                        <xsl:choose>
-                                                               <xsl:when test="$statedStartIndex&gt;0"><xsl:value-of select="$statedStartIndex" /></xsl:when>
+                                                               <xsl:when test="$statedStartIndex &gt;0"><xsl:value-of select="$statedStartIndex" /></xsl:when>
                                                                <xsl:otherwise>1</xsl:otherwise>
                                                        </xsl:choose>
                                                        <xsl:value-of select="concat(' ', $t-resultsto, ' ')" />
                                                        <xsl:value-of select="$endIndex" />
                                                        <xsl:if test="$totalresults&gt;0"><xsl:value-of select="concat(' ', $t-resultsof, ' ')" /><xsl:number value="$totalresults" grouping-size="3" grouping-separator="," /></xsl:if>
                                                        <xsl:if test="string-length($navnext)&gt;0 or string-length($navprev)&gt;0">   |   </xsl:if>
-                                                       <xsl:if test="string-length($navprev)&gt;0">
+                                           -->
+                            <xsl:if test="string-length($navprev)&gt;0">
                                                                <a class="x-escape" href="{$navprev}" rel="previous"><xsl:value-of select="$t-prevlink" disable-output-escaping="yes" /></a>
                                                                <xsl:if test="string-length($navnext)&gt;0"> | </xsl:if>
                                                        </xsl:if>
@@ -253,6 +256,7 @@ To-do list:
                                                <dl><xsl:apply-templates select="$items" /></dl>
                                                <!-- result navigation -->
                                                <p class="nav">
+                        <!-- PINES Results display doesn't work
                                                        <xsl:value-of select="concat($t-results,' ')" />
                                                        <xsl:choose>
                                                                <xsl:when test="$statedStartIndex&gt;0"><xsl:value-of select="$statedStartIndex" /></xsl:when>
@@ -262,6 +266,7 @@ To-do list:
                                                        <xsl:value-of select="$endIndex" />
                                                        <xsl:if test="$totalresults&gt;0"><xsl:value-of select="concat(' ', $t-resultsof, ' ')" /><xsl:number value="$totalresults" grouping-size="3" grouping-separator="," /></xsl:if>
                                                        <xsl:if test="string-length($navnext)&gt;0 or string-length($navprev)&gt;0">   |   </xsl:if>
+                        -->
                                                        <xsl:if test="string-length($navprev)&gt;0">
                                                                <a class="x-escape" href="{$navprev}" rel="previous"><xsl:value-of select="$t-prevlink" disable-output-escaping="yes" /></a>
                                                                <xsl:if test="string-length($navnext)&gt;0"> | </xsl:if>
@@ -276,8 +281,10 @@ To-do list:
                                <!-- display the copyright -->
                                <xsl:variable name="rights" select="(atom:rights[not(@type) or @type='' or @type='text' or @type='html' or @type='xhtml'] | copyright | dc:rights)[1]" />
                                <div id="footer">
+                <!-- PINES HIDE
                                        <xsl:if test="$rights"><p><xsl:call-template name="showtext"><xsl:with-param name="node" select="$rights" /></xsl:call-template></p></xsl:if>
                                        <p><small>This XSLT is &#169; <a href="http://a9.com/">A9.com, Inc</a> with modifications for <a href="http://open-ils.org">OpenILS/Evergreen</a> &#169; <a href="http://www.georgialibraries.org">GPLS</a>; see <a href="http://opensearch.a9.com/docs/stylesheet.jsp">full details</a>.</small></p>
+                    -->
                                </div>
 
                        </body>
@@ -299,6 +306,7 @@ To-do list:
                </xsl:if>
        </xsl:template>
 
+    <!-- PINES: Use TCN instead of ISBN
        <xsl:template match="dc:identifier">
                <xsl:attribute name="src">
                        <xsl:choose>
@@ -307,10 +315,10 @@ To-do list:
                                        <xsl:choose>
                                                <xsl:when test="substring-before($isbnraw,' ')">
                                                        <xsl:variable name="isbntrimmed"><xsl:value-of select="substring-before($isbnraw,' ')"/></xsl:variable>
-                                                       <xsl:value-of select="concat('/opac/extras/ac/jacket/small/',$isbntrimmed)"/>
+                                                       <xsl:value-of select="concat('/opac/extras/ac/jacket/medium/',$isbntrimmed)"/>
                                                </xsl:when>
                                                <xsl:otherwise>
-                                                       <xsl:value-of select="concat('/opac/extras/ac/jacket/small/',$isbnraw)"/>
+                                                       <xsl:value-of select="concat('/opac/extras/ac/jacket/medium/',$isbnraw)"/>
                                                </xsl:otherwise>
                                        </xsl:choose>
                                </xsl:when>
@@ -320,11 +328,33 @@ To-do list:
                        </xsl:choose>
                </xsl:attribute>                
        </xsl:template>
+    -->
+       <xsl:template match="dc:identifier">
+               <xsl:attribute name="src">
+            <xsl:variable name="tcnraw"><xsl:value-of select="substring-after(.,'TCN:')"/></xsl:variable>
+            <xsl:value-of select="concat('/opac/extras/ac/jacket/medium/r/',$tcnraw)"/>
+               </xsl:attribute>                
+       </xsl:template>
+    
 
        <xsl:template match="atom:entry | item | //rss1:item | //rss9:item"> <!-- match="" must match the select="" earlier on -->
-               <xsl:variable name="url"><xsl:call-template name="resolvelink"><xsl:with-param name="url" select="(atom:link[not(@rel) or @rel='alternate' or @rel='']/@href | link | guid[@isPermaLink='true'] | rss1:link | rss9:link)[1]" /></xsl:call-template></xsl:variable>
+               <!-- PINES - create url instead of using one brought in 
+            <xsl:variable name="url"><xsl:call-template name="resolvelink"><xsl:with-param name="url" select="(atom:link[not(@rel) or @rel='alternate' or @rel='']/@href | link | guid[@isPermaLink='true'] | rss1:link | rss9:link)[1]" /></xsl:call-template></xsl:variable>
+        -->
+        <xsl:variable name="url">
+            <xsl:variable name="tcnraw"><xsl:value-of select="substring-after(.,'TCN:')"/></xsl:variable>
+            <xsl:choose>
+                <xsl:when test="contains($tcnraw, '&#10;')">
+                    <xsl:value-of select="concat('/eg/opac/record/', substring-before($tcnraw,'&#10;'))" />
+                </xsl:when>
+                <xsl:otherwise>
+                    <xsl:value-of select="concat('/eg/opac/record/', $tcnraw)" />
+                </xsl:otherwise>
+            </xsl:choose>
+        </xsl:variable>
                <!-- item title -->
                <dt>
+            <span class="booktitle">
                        <xsl:choose>
                                <xsl:when test="string-length($url)&gt;0">
                                        <a href="{$url}">
@@ -343,6 +373,8 @@ To-do list:
                                        </strong>
                                </xsl:otherwise>
                        </xsl:choose>
+            </span>
+            <br/>
                        <!-- item authors -->
                        <xsl:if test="$t-authors and (author | atom:author | atom:contributor | dc:creator | dc:publisher | dc:contributor)">
                                <xsl:value-of select="concat(' ', $t-authors, ' ')" />
@@ -354,7 +386,7 @@ To-do list:
                        <dd class="desc">
                                <xsl:if test="string-length($url)&gt;0">
                                        <a href="{$url}" style="text-decoration: none;">
-                                               <img align="left" style="margin:5px; border: 0px;" height="50" width="40">
+                                               <img class="jacket" >
                                                        <xsl:apply-templates select="dc:identifier"/>
                                                </img>
                                        </a>
@@ -415,7 +447,12 @@ To-do list:
         <xsl:if test="h:holdings/h:volumes">
             <xsl:if test="h:holdings/h:volumes/h:volume/h:copies/h:copy">
                 <dd>
-                    <xsl:value-of select="$t-availcopies"/><xsl:value-of select="count(h:holdings/h:volumes/h:volume/h:copies/h:copy/h:status[@ident='0' or @ident='7' or @ident='12'])"/>
+                    <xsl:value-of select="$t-availcopies"/>
+                    <xsl:variable name="countcopies" select="count(h:holdings/h:volumes/h:volume/h:copies/h:copy/h:status[@ident='0' or @ident='7' or @ident='12'])"/>
+                    <xsl:value-of select="$countcopies"/>
+                    <xsl:if test="$countcopies = '0'">
+                        <xsl:text> (ON ORDER) </xsl:text>
+                    </xsl:if>
                     <span> / </span>
                     <xsl:value-of select="$t-totalcopies"/><xsl:value-of select="count(h:holdings/h:volumes/h:volume/h:copies/h:copy)"/>
                 </dd>
@@ -441,6 +478,7 @@ To-do list:
         </xsl:if>
 
                <!-- item url -->
+<!-- PINES DISABLE
                <xsl:if test="string-length($url)&gt;0">
                        <dd class="url">
                                <abbr class="unapi-id">
@@ -449,6 +487,7 @@ To-do list:
                                                        <xsl:value-of select="@href" />
                                                </xsl:attribute>
                                        </xsl:for-each>
+-->
                                        <!--
                                        <xsl:choose>
                                                <xsl:when test="string-length(substring-after($url, 'http://'))&gt;100">
@@ -459,10 +498,13 @@ To-do list:
                                                </xsl:otherwise>
                                        </xsl:choose>
                                        -->
-                                       <xsl:text>unAPI</xsl:text>
+<!-- PINES DISABLE                     
+            <xsl:text>unAPI</xsl:text>
                                </abbr>
                        </dd>
                </xsl:if>
+-->
+        
                <br clear="all"/>
        </xsl:template>
 
@@ -498,7 +540,7 @@ To-do list:
                                <xsl:choose>
                                        <xsl:when test="starts-with($maybeurl, 'http')">
                                                <xsl:value-of select="concat($maybeurl, '#', $category)" />
-                                       </xsl:when>
+                                       </xsl:when> 
                                        <xsl:otherwise>
                                                <xsl:value-of select="concat($base_dir, 'opensearch/1.1/', $lib, '/html-full/subject?searchTerms=', $name)" />
                                        </xsl:otherwise>
@@ -547,6 +589,8 @@ To-do list:
                        </xsl:choose>
                </xsl:variable>
                <xsl:if test="string-length($showname)&gt;0">
+            <xsl:value-of select="$showname" />
+        <!-- PINES - don't link authors for now
                        <xsl:choose>
                                <xsl:when test="string-length($showlink)&gt;0"><a href="{$showlink}"><xsl:value-of select="$showname" /></a></xsl:when>
                                <xsl:otherwise>
@@ -558,7 +602,8 @@ To-do list:
                                        </a>
                                </xsl:otherwise>
                        </xsl:choose>
-                       <xsl:text>; </xsl:text>
+        -->
+                       <xsl:text> </xsl:text>
                </xsl:if>
        </xsl:template>
        
index dd0c7e1..925e603 100644 (file)
@@ -39,9 +39,8 @@
                                        </xsl:call-template>
                                </title>
                        </xsl:for-each>
-
        
-                       <xsl:for-each select="marc:datafield[@tag=100]">
+                       <xsl:for-each select="marc:datafield[@tag=100]/marc:subfield[@code='a']">
                                <author>
                                        <name>
                                                <xsl:value-of select="."/>
@@ -49,6 +48,7 @@
                                </author>
                        </xsl:for-each>
 
+            <!-- PINES: Hide other author forms at this time 
                        <xsl:for-each select="marc:datafield[@tag=110]|marc:datafield[@tag=111]|marc:datafield[@tag=700]|marc:datafield[@tag=710]|marc:datafield[@tag=711]|marc:datafield[@tag=720]">
                                <author>
                                        <name>
@@ -56,7 +56,8 @@
                                        </name>
                                </author>
                        </xsl:for-each>
-
+            -->
+            
                        <xsl:for-each select="marc:datafield[@tag=655]">
                                <category>
                                        <xsl:attribute name="term">
                                </category>
                        </xsl:for-each>
 
+            <!-- PINES: this seems to be conflicting
                        <xsl:for-each select="marc:datafield[@tag=856]">
                                <dc:identifier>
                                        <xsl:value-of select="marc:subfield[@code='u']"/>
                                </dc:identifier>
                        </xsl:for-each>
-                       
+                       -->
+            
+            <!-- PINES: Use TCN instead of ISBN for image links
                        <xsl:for-each select="marc:datafield[@tag=020]">
                                <dc:identifier>
                                        <xsl:text>URN:ISBN:</xsl:text>
                                        <xsl:value-of select="marc:subfield[@code='a']"/>
                                </dc:identifier>
                        </xsl:for-each>
-
+            -->
+                       <xsl:for-each select="marc:controlfield[@tag=001]">
+                               <dc:identifier>
+                                       <xsl:text>URN:TCN:</xsl:text>
+                                       <xsl:value-of select="."/>
+                               </dc:identifier>
+                       </xsl:for-each>
+            
+            
                        <xsl:for-each select="marc:datafield[@tag=506]">
                                <rights>
                                        <xsl:value-of select="marc:subfield[@code='a']"/>