diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index fea29759d..171d34377 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -244,6 +244,7 @@ class AdminController < ApplicationController @first_page.web_title = params[:web_title] @first_page.description = params[:description] @first_page.title = params[:title] + @first_page.sort_type = params[:sort_type] if @first_page.save respond_to do |format| flash[:notice] = l(:notice_successful_update) diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index 03bca6162..48c0cf1fb 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -17,12 +17,40 @@ class WelcomeController < ApplicationController include ApplicationHelper + include WelcomeHelper caches_action :robots # before_filter :fake, :only => [:index, :course] before_filter :entry_select, :only => [:index] def index @first_page = FirstPage.where("page_type = 'project'").first + @hot_projects = find_miracle_project(10, 3) + @hot_projects_ids = [] + @hot_projects.each do |p| + @hot_projects_ids << p + end + @projects_all = Project.active.visible. + joins("LEFT JOIN #{ProjectStatus.table_name} ON #{Project.table_name}.id = #{ProjectStatus.table_name}.project_id"). + where("#{Project.table_name}.project_type = ? and #{Project.table_name}.id in (?)", Project::ProjectType_project,@hot_projects_ids) + + case @first_page.sort_type + when 0 + @projects = @projects_all.order("created_on desc") + when 1 + @projects = @projects_all.order("grade desc") + when 2 + @projects = @projects_all.order("watchers_count desc") + + #gcm + #when '3' + #@projects=desc_sort_course_by_avtivity(@project_activity_count_array,@project_all_array) + # @projects=handle_project @projects_all,@project_activity_count + # @s_type = 3 + # @projects = @projects[@project_pages.offset, @project_pages.per_page] + + else + @projects = @projects_all.order("grade desc") + end end def robots diff --git a/app/helpers/welcome_helper.rb b/app/helpers/welcome_helper.rb index 4ff5a48e4..99357a3d0 100644 --- a/app/helpers/welcome_helper.rb +++ b/app/helpers/welcome_helper.rb @@ -208,7 +208,7 @@ module WelcomeHelper #c1 = find_new_project(sum).to_a.dup #c2 = find_all_hot_project(sum).to_a.dup #(c2.take(sum-max)+c1.take(max)).take(sum) - find_all_hot_project(sum).to_a.dup + find_all_hot_project(sum).dup#.to_a.dup end def find_new_course limit=15 @@ -433,7 +433,7 @@ module WelcomeHelper # FROM projects AS p LEFT OUTER JOIN ( # SELECT project_id,grade FROM project_statuses # WHERE project_type = #{project_type} ORDER BY #{order_by} LIMIT #{limit} ) AS t ON p.id = t.project_id ") - Project.visible.joins(:project_status).where("#{Project.table_name}.project_type = ?", project_type).order(order_by).limit(limit).all + Project.visible.joins(:project_status).where("#{Project.table_name}.project_type = ?", project_type).order(order_by).limit(limit)#.all end def sort_bid_by_hot_rails reward_type, limit = 10 diff --git a/app/models/first_page.rb b/app/models/first_page.rb index 113edc0f8..d1fca531e 100644 --- a/app/models/first_page.rb +++ b/app/models/first_page.rb @@ -1,6 +1,6 @@ class FirstPage < ActiveRecord::Base attr_accessible :description, :title, :web_title,:page_type - validates_presence_of :web_title, :title, :description,:page_type + validates_presence_of :web_title, :title, :description,:page_type,:sort_type validates_length_of :web_title,:title, maximum: 30 validates_length_of :description, maximum: 100 end diff --git a/app/views/admin/first_page_made.html.erb b/app/views/admin/first_page_made.html.erb index d3b7416e4..242b7c689 100644 --- a/app/views/admin/first_page_made.html.erb +++ b/app/views/admin/first_page_made.html.erb @@ -28,6 +28,14 @@ <%= text_area_tag 'description',@first_page.description,:rows => 8, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>

+

+ + +

<%= submit_tag l(:button_save), :class => "small", :name => nil %> <% end %> diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index 0cc5c5e2a..8ffbb0469 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -60,8 +60,8 @@ <%= link_to "更多>>", { :controller => 'projects', :action => 'index', :project_type => 0, :host => Setting.project_domain}, :target => "_blank" %>