Commit f818f402e5f8c945879528d0106a38109461c5f8
1 parent
4e483e9c
Exists in
staging
and in
42 other branches
Add more popular to articles menus
Showing
3 changed files
with
14 additions
and
9 deletions
Show diff stats
app/controllers/public/search_controller.rb
@@ -34,7 +34,7 @@ class SearchController < PublicController | @@ -34,7 +34,7 @@ class SearchController < PublicController | ||
34 | if !@empty_query | 34 | if !@empty_query |
35 | full_text_search ['public:true'] | 35 | full_text_search ['public:true'] |
36 | elsif params[:filter] | 36 | elsif params[:filter] |
37 | - @results[@asset] = @environment.articles.more_recent.paginate(paginate_options) | 37 | + @results[@asset] = @environment.articles.public.send(@filter).paginate(paginate_options) |
38 | end | 38 | end |
39 | end | 39 | end |
40 | 40 | ||
@@ -228,7 +228,7 @@ class SearchController < PublicController | @@ -228,7 +228,7 @@ class SearchController < PublicController | ||
228 | def filter_description(asset, filter) | 228 | def filter_description(asset, filter) |
229 | { | 229 | { |
230 | 'articles_more_recent' => _('More recent contents from network'), | 230 | 'articles_more_recent' => _('More recent contents from network'), |
231 | - 'articles_more_popular' => _('More popular contents from network'), | 231 | + 'articles_more_popular' => _('More read contents from network'), |
232 | 'people_more_recent' => _('More recent people from network'), | 232 | 'people_more_recent' => _('More recent people from network'), |
233 | 'people_more_active' => _('More active people from network'), | 233 | 'people_more_active' => _('More active people from network'), |
234 | 'people_more_popular' => _('More popular people from network'), | 234 | 'people_more_popular' => _('More popular people from network'), |
app/helpers/application_helper.rb
@@ -1093,7 +1093,7 @@ module ApplicationHelper | @@ -1093,7 +1093,7 @@ module ApplicationHelper | ||
1093 | def search_contents_menu | 1093 | def search_contents_menu |
1094 | links = [ | 1094 | links = [ |
1095 | {s_('contents|More Recent') => {:href => url_for({:controller => 'search', :action => 'contents', :filter => 'more_recent'})}}, | 1095 | {s_('contents|More Recent') => {:href => url_for({:controller => 'search', :action => 'contents', :filter => 'more_recent'})}}, |
1096 | - #{s_('contents|More Popular') => {:href => url_for({:controller => 'search', :action => 'contents', :filter => 'more_popular'})}} | 1096 | + {s_('contents|More Read') => {:href => url_for({:controller => 'search', :action => 'contents', :filter => 'more_popular'})}} |
1097 | ] | 1097 | ] |
1098 | if logged_in? | 1098 | if logged_in? |
1099 | links.push(_('New Content') => lightbox_options({:href => url_for({:controller => 'cms', :action => 'new', :profile => current_user.login, :cms => true})})) | 1099 | links.push(_('New Content') => lightbox_options({:href => url_for({:controller => 'cms', :action => 'new', :profile => current_user.login, :cms => true})})) |
app/models/article.rb
@@ -139,6 +139,9 @@ class Article < ActiveRecord::Base | @@ -139,6 +139,9 @@ class Article < ActiveRecord::Base | ||
139 | {:conditions => [ 'parent_id is null and profile_id = ?', profile.id ]} | 139 | {:conditions => [ 'parent_id is null and profile_id = ?', profile.id ]} |
140 | } | 140 | } |
141 | 141 | ||
142 | + named_scope :public, | ||
143 | + :conditions => [ "advertise = ? AND published = ? AND profiles.visible = ? AND profiles.public_profile = ?", true, true, true, true ] | ||
144 | + | ||
142 | named_scope :more_recent, | 145 | named_scope :more_recent, |
143 | :conditions => [ "advertise = ? AND published = ? AND profiles.visible = ? AND profiles.public_profile = ? AND | 146 | :conditions => [ "advertise = ? AND published = ? AND profiles.visible = ? AND profiles.public_profile = ? AND |
144 | ((articles.type != ?) OR articles.type is NULL)", | 147 | ((articles.type != ?) OR articles.type is NULL)", |
@@ -146,6 +149,14 @@ class Article < ActiveRecord::Base | @@ -146,6 +149,14 @@ class Article < ActiveRecord::Base | ||
146 | ], | 149 | ], |
147 | :order => 'articles.published_at desc, articles.id desc' | 150 | :order => 'articles.published_at desc, articles.id desc' |
148 | 151 | ||
152 | + # retrives the most commented articles, sorted by the comment count (largest | ||
153 | + # first) | ||
154 | + def self.most_commented(limit) | ||
155 | + paginate(:order => 'comments_count DESC', :page => 1, :per_page => limit) | ||
156 | + end | ||
157 | + | ||
158 | + named_scope :more_popular, :order => 'hits DESC' | ||
159 | + | ||
149 | # retrieves the latest +limit+ articles, sorted from the most recent to the | 160 | # retrieves the latest +limit+ articles, sorted from the most recent to the |
150 | # oldest. | 161 | # oldest. |
151 | # | 162 | # |
@@ -178,12 +189,6 @@ class Article < ActiveRecord::Base | @@ -178,12 +189,6 @@ class Article < ActiveRecord::Base | ||
178 | end | 189 | end |
179 | end | 190 | end |
180 | 191 | ||
181 | - # retrives the most commented articles, sorted by the comment count (largest | ||
182 | - # first) | ||
183 | - def self.most_commented(limit) | ||
184 | - paginate(:order => 'comments_count DESC', :page => 1, :per_page => limit) | ||
185 | - end | ||
186 | - | ||
187 | # produces the HTML code that is to be displayed as this article's contents. | 192 | # produces the HTML code that is to be displayed as this article's contents. |
188 | # | 193 | # |
189 | # The implementation in this class just provides the +body+ attribute as the | 194 | # The implementation in this class just provides the +body+ attribute as the |