browse_controller.rb
1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
class BrowseController < PublicController
no_design_blocks
FILTERS = %w(
more_recent
more_active
more_popular
more_comments
more_views
)
def per_page
27
end
def people
@filter = filter
@title = self.filter_description(params[:action] + '_' + @filter )
@results = @environment.people.visible.send(@filter)
if !params[:query].blank?
@results = @results.find_by_contents(params[:query])
end
@results = @results.compact.paginate(:per_page => per_page, :page => params[:page])
end
def communities
@filter = filter
@title = self.filter_description(params[:action] + '_' + @filter )
@results = @environment.communities.visible.send(@filter)
if !params[:query].blank?
@results = @results.find_by_contents(params[:query])
end
@results = @results.compact.paginate(:per_page => per_page, :page => params[:page])
end
def contents
@filter = filter
@title = self.filter_description(params[:action] + '_' + @filter )
@results = @environment.articles.published.text_articles.send(@filter)
if !params[:query].blank?
@results = @results.find_by_contents(params[:query])
end
@results = @results.compact.paginate(:per_page => per_page, :page => params[:page])
end
protected
def filter
if FILTERS.include?(params[:filter])
params[:filter]
else
'more_recent'
end
end
def filter_description(str)
{
'people_more_recent' => _('More recent people'),
'people_more_active' => _('More active people'),
'people_more_popular' => _('More popular people'),
'communities_more_recent' => _('More recent communities'),
'communities_more_active' => _('More active communities'),
'communities_more_popular' => _('More popular communities'),
'contents_more_recent' => _('More recent contents'),
'contents_more_views' => _('Most viewed contents'),
'contents_more_comments' => _('Most commented contents'),
}[str] || str
end
end