On 10/9/07, Shane Beers <[EMAIL PROTECTED]> wrote: > I'd love to just be able to say "show me these fields, but don't put in > wacky extra spaces and dashes if the field doesn't have data (or doesn't > exist) in that item."
My suspicion is that in JSP you're stuck. I ran head-on into the same problem for the same reason (dissertation advisors erroneously showing up as authors), and I didn't find a non-major-hacking fix. I thought at first that it might be possible to do a comma-separated list of values for webui.itemlist.columns, but after I broke DSpace by trying it, I learned the error of my ways. If you can stand it for a few more months, though, I *think* this is fixable in Manakin. WARNING: I HAVE NOT TESTED ANY OF THIS CODE YET. (Subversion issues on the new server. They're supposed to be fixed now.) Adopt or adapt it at your own risk. Speaking in meta-pseudocode, Manakin's default author listing on the item page (search DS-METS-1.0-DIM.xsl for "item-author" to find the code) does roughly the same thing that JSP does. If there's a dc.contributor.author, put them first. If there's a dc.creator, put them. Then add any other dc.contributors regardless of qualifier. I commented out the final xsl:when (dc.contributor.*, in dspace.cfg parlance) and added some more table rows to cover my edge-case contributors (I have translators and advisors; you may have others). To address the blank-metadata problem, I've been wrapping rows in <xsl:if> clauses (in meta-pseudocode, "if this piece of metadata exists, write the row" with its implied "if not, don't"), a technique I commend to the Manakin developers, because the empty rows look like a system error, take up screen space unnecessarily, and confuse users. So each of my new rows looks like this. Be warned; I haven't put keys in messages.xml yet, but that would be the proper way to do this. <xsl:if test="$data/dim:[EMAIL PROTECTED]'contributor'[EMAIL PROTECTED]'advisor']"> <tr><td><span class="bold"><xsl:text>Advisor(s):</xsl:text></span></td> <td> <xsl:for-each select="$data/dim:[EMAIL PROTECTED]'contributor'[EMAIL PROTECTED]'advisor']"> <xsl:copy-of select="."/> <xsl:if test="count(following-sibling::dim:[EMAIL PROTECTED]'contributor'[EMAIL PROTECTED]'advisor']) != 0"> <xsl:text>; </xsl:text> </xsl:if> </xsl:for-each> </td></tr> </xsl:if> As for the browse pages, I think my decision for the time being is going to be to limit the author field to dc.creator and dc.contributor.author. Should be fairly easy to do with the techniques I just outlined. Dorothea -- Dorothea Salo [EMAIL PROTECTED] Digital Repository Librarian AIM: mindsatuw University of Wisconsin Rm 218, Memorial Library (608) 262-5493 ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ DSpace-tech mailing list DSpace-tech@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dspace-tech