Changeset 314
- Timestamp:
- 05/05/08 03:19:38 (7 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/picolena/templates/app/controllers/documents_controller.rb
r301 r314 23 23 start=Time.now 24 24 @query=[params[:id],params.delete(:format)].compact.join('.') 25 @sort =params[:sort]25 @sort_by=params[:sort_by] 26 26 page=params[:page]||1 27 finder=Finder.new(@query,@sort ,page)27 finder=Finder.new(@query,@sort_by,page) 28 28 finder.execute! 29 29 pager=::Paginator.new(finder.total_hits, Picolena::ResultsPerPage) do trunk/lib/picolena/templates/app/helpers/documents_helper.rb
r301 r314 7 7 # Very basic pagination. 8 8 # Provides liks to Next, Prev and FirstPage when needed. 9 def should_paginate(page,query, sort )10 [(link_to("←←", :action => :show, :id => query, :sort =>sort) if page.number>2),11 (link_to("←", :action => :show, :id => query, :page => page.prev.number, :sort =>sort) if page.prev?),12 (link_to("→", :action => :show, :id => query, :page => page.next.number, :sort =>sort) if page.next?)].compact.join(" | ")9 def should_paginate(page,query, sort_by) 10 [(link_to("←←", :action => :show, :id => query, :sort_by=>sort_by) if page.number>2), 11 (link_to("←", :action => :show, :id => query, :page => page.prev.number, :sort_by=>sort_by) if page.prev?), 12 (link_to("→", :action => :show, :id => query, :page => page.next.number, :sort_by=>sort_by) if page.next?)].compact.join(" | ") 13 13 end 14 14 … … 82 82 83 83 def sort_by_date_or_relevance(query) 84 [link_to_unless_current('By date', document_path(query, :sort =>'by_date')),84 [link_to_unless_current('By date', document_path(query, :sort_by=>'date')), 85 85 link_to_unless_current('By relevance', document_path(query))].join(" ") 86 86 end trunk/lib/picolena/templates/app/models/finder.rb
r283 r314 6 6 end 7 7 8 def initialize(raw_query, by_date=false, page=1,results_per_page=Picolena::ResultsPerPage)8 def initialize(raw_query,sort_by='relevance', page=1,results_per_page=Picolena::ResultsPerPage) 9 9 @query = Query.extract_from(raw_query) 10 10 @raw_query= raw_query … … 12 12 @per_page=results_per_page 13 13 @offset=(page.to_i-1)*results_per_page 14 @ by_date=by_date14 @sort_by=sort_by 15 15 index_should_have_documents 16 16 end … … 19 19 @matching_documents=[] 20 20 start=Time.now 21 @total_hits = index.search_each(query, :limit => @per_page, :offset=>@offset, :sort => (sort_by_date if @ by_date)){|index_id, score|21 @total_hits = index.search_each(query, :limit => @per_page, :offset=>@offset, :sort => (sort_by_date if @sort_by=='date')){|index_id, score| 22 22 begin 23 23 found_doc=Document.new(index[index_id][:complete_path])
