Hi,

I spent some time making my XWiki instance show a more useful list of results 
from the search results, but there is a problem here as the freemarker code is 
unable to catch a rendering exception (by design of freemarker) on certain 
searches. If there is an exception, the user is greeted with a long wait, then 
no results show up at all. This isn't really good enough for my means.

My happier solution, would be for the exception to happen and for nothing to be 
rendered in the preview for this search result. I wondered if there was a 
better way to achieve my goal than using the rendering mechanisms in the code 
below. If I can avoid or catch the exception and keep the same functionality 
that I have now, then I would be in a better position.

Code below or on StackOverflow (http://stackoverflow.com/q/17038968/1247302). 
I'm using XWIKI ENTERPRISE 5.0-MILESTONE-1.

I edited the page http://[servername:port]/xwiki/bin/edit/XWiki/Results and 
then added the code

       <div class="itemOthers">
         #set($outputSyntax = $xwiki.getAvailableRendererSyntax('plain', '1.0'))
         #if ($outputSyntax)
           #set ($preview = 
$xwiki.getDocument($itemfullname).getRenderedContent($outputSyntax))
           #set ($regex = $regextool.quote($request.text))
           #set ($regex_summarize = 
"(?i)(?:((\w+)\W+){0,20})\b\w*$regex\w*\b(((\W+)\w+){0,20})")
           #set ($regex_highlight = "(?i)($regex)")

           #set ($pattern_summarize = $regextool.compile($regex_summarize))
           #set ($matcher_summarize = $pattern_summarize.matcher($preview))

           #foreach ( $match_loop in [0,1,2,3,4,5,6,7,8,9] )
             #if ($matcher_summarize.find())
               #if ($match_loop > 0)
                <strong> | </strong>
               #end
               
$escapetool.html($matcher_summarize.group(0)).replaceAll($regex_highlight,'<span
 style="background-color:yellow;">$1</span>')
             #end
           #end
         #end
       </div>

Thanks,
Stuart
Disclaimer: The contents of this E-mail plus any attachment is intended for the 
use of the addressee only and is confidential, proprietary and may be 
privileged. It will not be binding upon Trace Group or any group company 
(Trace). Opinions, conclusions, contractual obligations and other information 
in this message in so far as they relate to the official business of Trace must 
be specifically confirmed in writing by Trace. If you are not the intended 
recipient you must not copy this message or attachment, use or disclose the 
contents to any other person, but are requested to telephone or E-mail the 
sender and delete the message and any attachment from your system. Trace takes 
all reasonable precautions to ensure that no virus or defect is transmitted via 
this e mail, however Trace accepts no responsibility for any virus or defect 
that might arise from opening this E-mail or attachments.
_______________________________________________
devs mailing list
devs@xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to