UltraLightClient Code Community
[ start | index | login ]
Overview > RegexSearch

RegexSearch

<h2>Full-text Regex Search</h2>

<form name="search-form" method="GET" action="/snipsnap/space/RegexSearch"> <input type="text" name="searchExpression" <% if (isSearch()) println 'value="'+ searchExpression + '"' %> > <select name="sortOrder"> <option value="viewCount.dsc" <%sel('viewCount.dsc')%>>by popularity</option> <option value="title.asc" <%sel('title.asc')%>>by name</option> <option value="mTime.dsc" <%sel('mTime.dsc')%>>by last modified</option> <option value="mUser.asc" <%sel('mUser.asc')%>>by user</option> </select> <input type="submit" value="Search"> <small><a href="space/RegexSearch/RegexSearchSyntax">see Search Syntax</a></small> </form><br>

<% int MAX=100

if (isSearch()) { if (null == sortOrder) sortOrder='viewCount.dsc'

fac = org.snipsnap.snip.SnipSpaceFactory.instance

words = searchExpression.tokenize()

list = fac.all.findAll{ snip | words.every { currExp | currExp = '(?si)'+currExp snip.content =~ currExp || snip.title =~ currExp } }. sort{ atr=itsortOrder[0..-5] atr instanceof java.lang.String?atr.toLowerCase():atr } if (sortOrder.endsWith('.dsc')) list = list.reverse() list = list0..MAX table = new SearchResultTable() table.renderTable(out, '<hr>Search Results: ', list) }

def isSearch() { return (searchExpression != null && searchExpression.size() > 0) }

def sel(order) { if ( ( isSearch() && order.equals(sortOrder) ) || (!isSearch() && order.equals('viewCount.dsc') ) ) print "selected" }

class SearchResultTable extends com.canoo.snipsnap.macro.AbstractSnipTableMacro { public String getName() { return "search-results"; } public void execute(java.io.Writer writer, org.snipsnap.render.macro.parameter.SnipMacroParameter params) { } } %> <br>

no comments | post comment
labels
Typetext/gsp
attachments
Created by admin. Last edited by admin, 3 years and 55 days ago. Viewed 7,725 times. #43
[diff] [history] [edit] [rdf]
Name
Email:
snipsnap.org | Copyright 2000-2002 Matthias L. Jugel and Stephan J. Schmidt