Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def user_search(options)
- @results = {}
- options[:models].each do |model|
- if model.respond_to?(:find_with_ferret) && options[:user].has_permission?("view_display_#{model.to_s.downcase}_pages")
- model_name = model.to_s.pluralize.downcase
- (options[:order_by] and options[:order_by] != "") ? @order_by = options[:order_by] + " " + options[:order] : @order_by = model_name + ".updated_at"
- if options[:search_only_in_tags]
- @results[model_name.to_sym] = records_for_user(model, options[:user], options[:domains]).find_tagged_with(options[:keywords], :page => options[:page], :per_page => options[:per_page])
- else
- @results[model_name.to_sym] = records_for_user(model, options[:user],
- options[:domains]).find_with_ferret_paginator("#{options[:keywords]}*",
- {:page => options[:page], :per_page => options[:per_page] },
- {:select => "#{model_name}.id", :include => [:domains, :ratings, :tags, :rating, :country], :order => @order_by } )
- @results[model_name.to_sym].concat(records_for_user(model,
- options[:user], options[:domains]).find(:all,
- :conditions => "#{model_name}.id = #{options[:keywords].to_i}")) if options[:keywords].to_i > 0
- @results[model_name.to_sym].concat(records_for_user(model,
- options[:user], options[:domains]).find(:all,
- :conditions => "#{model_name}.old_id = #{options[:keywords].to_i}")) if options[:keywords].to_i > 0 && model.respond_to?(:old_id)
- end
- end
- end
- @results.each_pair do |key, value|
- model = key.to_s.singularize.capitalize.constantize
- value.concat(record_for_user(model, user, options[:domains]).find_tagged_with(options[:keywords])) if model.respond_to(:find_tagged_with)
- end if options[:find_tagged_with]
- @results
- end
Add Comment
Please, Sign In to add comment