require_dependency 'search_controller' class SearchController def communities results = filter_communities_list{|community| !community.software? and !community.institution?} results = results.paginate(:per_page => 24, :page => params[:page]) @searches[@asset] = {:results => results} @search = results end def institutions @titles[:institutions] = _("Institution Catalog") @category_filters = [] results = filter_communities_list{|community| community.institution?} results = results.paginate(:per_page => 24, :page => params[:page]) @searches[@asset] = {:results => results} @search = results end def software_infos @titles[:software_infos] = _("Software Catalog") @category_filters = [] results = filter_software_infos_list results = results.paginate(:per_page => 24, :page => params[:page]) @searches[@asset] = {:results => results} @search = results end def filter_communities_list unfiltered_list = visible_profiles(Community) unless params[:query].nil? unfiltered_list = unfiltered_list.select do |com| com.name.downcase =~ /#{params[:query].downcase}/ end end communities_list = [] unfiltered_list.each do |profile| if profile.class == Community and yield(profile) communities_list << profile end end communities_list end def filter_software_infos_list unfiltered_software_infos_list = SoftwareInfo.like_search(params[:query]) filtered_communities_list = [] unfiltered_software_infos_list.each{|software| filtered_communities_list << software.community} if not params[:filter].blank? params[:filter].split(",").each{|f| @category_filters << f.to_i} filtered_communities_list.select!{|community| !(community.category_ids & @category_filters).blank?} end filtered_communities_list end end