Allgemeine Aktionen:
Anmelden
Wiki
▼
:
Dokumentenindex
»
Space:
Main
▼
:
Dokumentenverzeichnis
»
Seite:
WebSearch
Suche
Aktionen:
Exportieren
▼
:
Als PDF exportieren
Als RTF exportieren
Als HTML exportieren
Weitere Aktionen
▼
:
Druckvorschau
Zeige den Quellcode
Willkommen in den metamagix Wikis!
»
Suche
Wiki-Quellcode von
Suche
Zuletzt geändert von
Administrator
am 2010/05/04 17:24
Inhalt
·
Kommentare
(0)
·
Anmerkungen
(0)
·
Anhänge
(0)
·
Historie
·
Information
Zeilennummern anzeigen
{{velocity}} $xwiki.jsfx.use("uicomponents/search/search.js", false)## $xwiki.ssfx.use("uicomponents/search/search.css", true)## ## Disable the document extra data: comments, attachments, history... #set($docextras = []) #set ($rssmode = ("$!request.xpage" == 'plain')) ## --------------- ## Space filtering ## --------------- #set($spaces = $xwiki.spaces) #set($selectedSpace = "$!request.space") ## --------------- ## Space macros ## --------------- #macro(spaceoption $space $selectedSpace) <option value="${space}" #if($selectedSpace == $space)selected="selected"#end>$space</option> #end #macro(spaceselect $selectedSpace $spaces) <select name="space" title="$msg.get('xe.search.bar.spaces.title')"> <option value="" #if($selectedSpace == '')selected="selected"#end>$msg.get('xe.search.bar.spaces.all')</option> #foreach($space in $spaces) #if (!$blacklistedSpaces.contains($space)) #spaceoption($space $selectedSpace) #end #end </select> #end ## ## #set($text = "$!request.getParameter('text')") #set($utext = $util.encodeURI($text)) ## --------------- ## Query form ## --------------- #if(!$rssmode) {{html}} <form action="" id="searchBar"> <div class="centered"> <label for="text" class="hidden">$msg.get('xe.search.query')</label> <input type="text" id="text" name="text" class="searchQuery #if($text == '') defaultText#end" #if($text == '') value="$msg.get('xe.search.bar.query.tip')" #else value="${escapetool.xml($text)}" #end title="$msg.get('xe.search.bar.query.title')"/> #spaceselect($selectedSpace $spaces) <input type="submit" class="searchButton" value="$msg.get('xe.search.bar.submit')" title="$msg.get('xe.search.bar.submit.title')"/> </div> </form> {{/html}} #end #set($space = $selectedSpace) #set($datedlist = $util.arrayList) #if("$!text" == '') ## No search #else #set($text = $text.replaceAll("'", "''").replaceAll("%", "\\%")) #set($nbitems = 50) ## ---------------------------------------------------------------------- ## Exclude Blacklisted spaces ($blacklistedSpaces is set in xwikivars.vm) ## Also exclude WebPreferences. ## ---------------------------------------------------------------------- #set ($webClause = '') #foreach ($blacklistedSpace in $blacklistedSpaces) #set ($webClause = "${webClause} doc.space <> '$blacklistedSpace' and") #end #if(!$hasAdmin && !$isAdvancedUser) #set ($webClause = "${webClause} doc.name<>'WebPreferences' and") #end ## ----------------------------------------------------------- ## Display only a given space if $request.space is defined ## ----------------------------------------------------------- #if("$!space" != '') #set ($webClause = "${webClause} doc.space='$space' and") #end #macro(addelement $item $list) #if($xwiki.hasAccessLevel('view', $context.user, "${context.database}:${item}")) #set($itemdoc = $xwiki.getDocument($item)) ## All items will be sorted by the date; since the list is obtained from several queries, we can't order in the HQL. ## Prefix all item names with the date for sorting the combined results. #set($sdate = $xwiki.formatDate($itemdoc.date, 'yyyyMMddHHmmss')) #set($sitem = "${sdate}${item}") #if(!$list.contains($sitem)) #set($discard = $list.add($sitem)) #end #end #end ## ----------------------------------------------------------- ## Search in the page names ## ----------------------------------------------------------- #set ($sql = "where $webClause upper(doc.fullName) like upper('%$!text%') order by doc.date desc") #foreach ($item in $xwiki.searchDocuments($sql , $nbitems, 0)) #addelement($item $datedlist) #end ## ----------------------------------------------------------- ## Search in page content ## ----------------------------------------------------------- #set ($sql = "where $webClause upper(doc.content) like upper('%$!text%') order by doc.date desc") #foreach ($item in $xwiki.searchDocuments($sql , $nbitems, 0)) #addelement($item $datedlist) #end ## ----------------------------------------------------------- ## Search in text fields (simple String properties) ## ----------------------------------------------------------- #set($sql= ", BaseObject as obj, StringProperty as prop where $webClause obj.name=doc.fullName and prop.id.id = obj.id and upper(prop.value) like upper('%$!text%')") #foreach ($item in $xwiki.searchDocuments($sql , $nbitems, 0)) #addelement($item $datedlist) #end ## ----------------------------------------------------------- ## Search in big text fields (textarea properties) ## ----------------------------------------------------------- #set($sql= ", BaseObject as obj, LargeStringProperty as prop where $webClause obj.name=doc.fullName and prop.id.id = obj.id and upper(prop.value) like upper('%$!text%')") #foreach ($item in $xwiki.searchDocuments($sql , $nbitems, 0)) #addelement($item $datedlist) #end #end #set($list = $util.arrayList) #foreach($item in $util.sort($datedlist)) ## datedlist contains items prefixed with the date; strip the date from the actual item name: #set($ok = $list.add(0, $item.substring(14))) #end #if ("$!utext" != '') #if($rssmode) #set ($feed = $xwiki.feed.getDocumentFeed($list, $util.getHashMap())) #set ($feedURI = $doc.getExternalURL("view")) #set ($discard = $feed.setLink($feedURI)) #set ($discard = $feed.setUri($feedURI)) #set ($discard = $feed.setAuthor('XWiki')) #set ($discard = $feed.setTitle($msg.get('xe.search.rss', [$text]))) #set ($discard = $feed.setDescription($msg.get('xe.search.rss', [$text]))) #set ($discard = $feed.setLanguage($context.language)) #set ($discard = $feed.setCopyright($xwiki.getXWikiPreference('copyright'))) $xwiki.feed.getFeedOutput($feed, $xwiki.getXWikiPreference('feed_type', 'rss_2.0')) #else {{include document="XWiki.Results"/}} #if($selectedSpace == '') #set($rssURL = $xwiki.getURL($doc.fullName, 'view', "xpage=plain&outputSyntax=plain&text=${utext}" )) #else #set($rssURL = $xwiki.getURL($doc.fullName, 'view', "xpage=plain&outputSyntax=plain&space=${selectedSpace}&text=${utext}")) #end {{html}} <a href="${rssURL}"><img src="$xwiki.getSkinFile("icons/silk/feed.gif")" alt="RSS icon"/>$msg.get("xe.search.rss", ["[$text]"])</a> {{/html}} #set($luceneSearch = "[[Main.LuceneSearch?text=$!utext]]") {{info}}$msg.get('xe.search.lucene.try', [$luceneSearch]){{/info}} #end #end {{/velocity}}