Tags:
export1Add my vote for this tag create new tag
, view all tags

XmlQueryPluginRecipe2

List Attachments in the current Web per user

Annotated XSLT Query Text

%XSLTSTART{topic=".*" benchmark="on" cache="off" debug="off" user=%URLPARAM{"user"}% puburl=%PUBURL% }%
 <xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:set="http://exslt.org/sets"
  extension-element-prefixes="set">
The last two arguments on the xsl:stylesheet element include set functions

 <xsl:template match="/twiki">

 <form method="get">
 <input type="submit" value="List Attachments for User"/>
 <select name="user" onchange="submit()">
 <option></option>

Output the html to start a form with a drop down list

  <xsl:for-each select="set:distinct(/twiki/web/topic/data/metadata/fileattachment/@user)">
     <xsl:sort select="."/>
Select a unique list of users, sort them and process each one

     <xsl:choose>
     <xsl:when test=". = $user">
         <option><xsl:attribute name="selected"/><xsl:value-of select="."/></option>
     </xsl:when>
     <xsl:otherwise>
         <option><xsl:value-of select="."/></option>
     </xsl:otherwise>
     </xsl:choose>

When the user matchs the current user output a option tag with a selected attribute


  </xsl:for-each>
  </select>
  </form>

 <table border="1">
 <tr><th>Topic</th><th>Attachment</th><th>User</th><th>Comment</th></tr>
 <xsl:for-each select="/twiki/web/topic/data/metadata/fileattachment[@user=$user]">
Loop over each attachment when the user attribute is equal to the currently select user

   <tr>
   <td>[[<xsl:value-of select="../../@web"/>.<xsl:value-of select="../../@topic"/>]]</td>
Output the webname.topicname

   <td>[[<xsl:value-of select="$puburl"/>/<xsl:value-of select="../../@web"/>/<xsl:value-of select="../../@topic"/>/<xsl:value-of select="@name"/>][<xsl:value-of select="@name"/>]]</td>
   <td><xsl:value-of select="@user"/></td>
   <td><xsl:value-of select="@comment"/></td>
  </tr>
  </xsl:for-each>
  </table>
  </xsl:template>
  </xsl:stylesheet>
%XSLTEND%

XSLT Demo

XmlQuery must be Installed for this demo to work. If %XSLTSTART{}% tag appears XmlQueryPugin is not installed

%XSLTSTART{topic=".*" benchmark="on" cache="on" debug="off" user='' puburl=http://www.twiki.org/p/pub }% <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:set="http://exslt.org/sets" extension-element-prefixes="set">

<xsl:for-each select="/twiki/web/topic/data/metadata/fileattachment[@user=$user]"> </xsl:for-each>
TopicAttachmentUserComment
<xsl:value-of select="../../../@web"/>.<xsl:value-of select="../../../@name"/> <xsl:value-of select="@name"/> <xsl:value-of select="@user"/> <xsl:value-of select="@comment"/>
%XSLTEND%
Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r2 - 2006-02-13 - PatrickDiamond
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.