Hi Vitantonio,

thanks for this snippet :-)

It would be even better if you could post it on code.xwiki.org, in the code Snippet section.

Thanks in advance,

Guillaume

On 22/02/2008, Vitantonio Messa <vitantonio.messa@coss.fi> wrote:
Hi all,

I've written a macro that allows to print just one section from an
xwiki-page.
I don't know if someone could find it useful, anyway, here it is.

---------------------------------------
#macro(allowPrintSection)

<form action=$doc.getURL() method=post>
  <input type="hidden" name="pageName" value="$doc.getFullName()" />
  <select name="printSection">
    #set ($i = 0)
    #set ($tocData = ${doc.getTOC(2, 2, false)})
    #foreach ($tocEntry in $tocData.entrySet())
      #set ($i = $i+1)
      <option value="$i">$xwiki.parseContent($tocEntry.value.text)</option>
    #end
  </select>
  <input type="submit" class="button" style="margin:auto;" value="Print
section"/>
</form>

#if($request.printSection)
  #set ($sections = $doc.getContent())
  #set ($i = 0)
  #foreach ($section in $sections.split("
1.1 "))
    #if ($i == $xwiki.parseInt($request.printSection))
      #set ($newContent = $section)
    #end
    #set ($i = $i+1)
  #end
  #set ($newContent = "1.1 "+$newContent)
  #set ($newDoc = $xwiki.getDocument("Main.PRINT_tmpSectionToPrint"))
  #if ($newDoc == $xwiki.getNull())
    #if (!$xwiki.copyDocument($request.pageName,
"Main.PRINT_tmpSectionToPrint"))
      *Error while printing section...*
    #end
  #end
  $newDoc.setContent($newContent)
  $newDoc.save()
  Section ready to be printed: <a href="$newDoc.getURL('view',
'xpage=print')">click here</a>.
#end
#end


Any ideas or suggestions are welcome!
Vito

--
Vitantonio Messa
+358 46 889 48 49 - vitantonio.messa@coss.fi
COSS - The Finnish Centre for Open Source Solutions
@ Technology Centre Hermia Ltd.
Hermiankatu 1, FIN-33720 Tampere, FINLAND

_______________________________________________
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users



--
http://wikibc.blogspot.com/