Commit f818f402e5f8c945879528d0106a38109461c5f8

Authored by Braulio Bhavamitra
1 parent 4e483e9c

Add more popular to articles menus

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