1 package com.dotmarketing.viewtools; 2 3 import java.util.HashMap ; 4 import java.util.Iterator ; 5 import java.util.Map ; 6 import java.util.Set ; 7 8 import javax.servlet.http.HttpServletRequest ; 9 10 import org.apache.velocity.tools.view.context.ViewContext; 11 import org.apache.velocity.tools.view.tools.ViewTool; 12 13 import com.dotmarketing.beans.Host; 14 import com.dotmarketing.factories.HostFactory; 15 16 public class SearchAPI implements ViewTool { 17 18 19 public void init(Object obj) { 20 21 22 } 23 24 public Map doSearch (HttpServletRequest request) { 26 int page = 0; 27 try { 28 page = Integer.parseInt(request.getParameter("page")); 29 } catch (NumberFormatException e) {} 30 return doSearch(request, page); 31 } 32 33 public Map doSearch (HttpServletRequest request, int p) { 34 35 String searchQuery = request.getParameter("search_query"); 36 Host h = HostFactory.getCurrentHost(request); 37 38 String _serverName = h.getHostname(); 39 40 41 42 Set SearchResults = com.dotmarketing.factories.SearchResultFactory.getSearchResults(searchQuery, _serverName); 43 44 int showRows = 10; 45 int total = (SearchResults.size() - 1) / showRows; 46 if(total > 100)total = 100; 47 if(p > total)p = total; 48 int start = p * showRows; 49 int end = (p * showRows) + showRows; 50 if(end > SearchResults.size())end = SearchResults.size(); 51 String page = String.valueOf(p); 52 java.util.ArrayList setSearchResults = new java.util.ArrayList (); 53 54 Iterator it = SearchResults.iterator(); 55 56 for(int j=0; j< end; j++){ 57 Object ob = it.next(); 58 if (j >= start) 59 setSearchResults.add(ob); 60 } 61 62 HashMap retMap = new HashMap (); 63 retMap.put("searchResults", setSearchResults); 64 retMap.put("start", String.valueOf(start+1)); 65 retMap.put("end", String.valueOf(end)); 66 retMap.put("page", page); 67 retMap.put("total", String.valueOf(total)); 68 retMap.put("resultTotal", String.valueOf(SearchResults.size())); 69 retMap.put("searchQuery", searchQuery); 70 71 return retMap; 72 } 73 74 } | Popular Tags |