From 9f2feb231f06fbe98af78f7021c031f5f508ab4c Mon Sep 17 00:00:00 2001 From: YOSHIDA Hiroki Date: Thu, 9 Jan 2014 01:15:12 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=E3=83=88=E3=83=83=E3=83=97:=20=E4=BA=BA?= =?UTF-8?q?=E6=B0=97=E3=82=BF=E3=82=B0=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/home.css.scss | 11 +++++++++++ app/controllers/home_controller.rb | 1 + app/helpers/home_helper.rb | 7 +++++++ app/models/tag.rb | 1 + app/views/home/index.html.slim | 7 ++++++- 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/assets/stylesheets/home.css.scss b/app/assets/stylesheets/home.css.scss index 154f3e1..7fda9be 100644 --- a/app/assets/stylesheets/home.css.scss +++ b/app/assets/stylesheets/home.css.scss @@ -12,6 +12,17 @@ } } +#home .tag_cloud { + margin: 0 auto 50px; + width: $contents_width; + text-align: center; + + li { + display: inline; + margin: 0 10px; + } +} + // bookmarklet #bookmarklet { margin: 20px auto; diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 48d0857..c10a7f1 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -3,6 +3,7 @@ class HomeController < ApplicationController def index @clips = Clip.paginate(page: params[:page]).includes([ { image: :likes, comments: :user }, :user, :likes, :tags ]) + @hot_tags = Tag.hot(50).shuffle render action: 'next_page' unless first_page? end diff --git a/app/helpers/home_helper.rb b/app/helpers/home_helper.rb index 23de56a..679573b 100644 --- a/app/helpers/home_helper.rb +++ b/app/helpers/home_helper.rb @@ -1,2 +1,9 @@ module HomeHelper + def font_size_for_tag_cloud(tag, options={}) + options[:base_font_size] = 9 + options[:offset_ratio] = 0.5 + options[:max_offset_size] = 50 + offset_font_size = [tag.name_count * options[:offset_ratio], options[:max_offset_size]].min.floor + "font-size: #{options[:base_font_size] + offset_font_size}pt" + end end diff --git a/app/models/tag.rb b/app/models/tag.rb index 3781c78..9682078 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -6,6 +6,7 @@ class Tag < ActiveRecord::Base scope :uniques, group(:name) scope :by, lambda {|user| where(user_id: user.is_a?(User) ? user.id : user) if user } scope :for, lambda {|tagged| where(tagged_id: tagged.id, tagged_type: tagged.class.name) } + scope :hot, lambda {|limit| uniques.select("name, COUNT(name) AS name_count").reorder('name_count desc').limit(limit) } validates :tagged_id, :presence => true validates :user_id, :presence => true diff --git a/app/views/home/index.html.slim b/app/views/home/index.html.slim index 77301c2..8c12c97 100644 --- a/app/views/home/index.html.slim +++ b/app/views/home/index.html.slim @@ -1,6 +1,11 @@ #home - h2 新着クリップ + h2 人気タグ + ul.tag_cloud + - @hot_tags.each do |tag| + li style="#{font_size_for_tag_cloud(tag)}" + = link_to "#{tag.name} (#{tag.name_count})", tag_path(tag.name) + h2 新着クリップ - if @clips.present? == render partial: '/base/clip_wall' - else From ceba65ca3fc2fc2f1aabb70e26804bd4805cf4e4 Mon Sep 17 00:00:00 2001 From: YOSHIDA Hiroki Date: Thu, 9 Jan 2014 01:34:44 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=E3=83=88=E3=83=83=E3=83=97:=20=E4=BA=BA?= =?UTF-8?q?=E6=B0=97=E3=81=BE=E3=81=A8=E3=82=81=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/home.css.scss | 11 ++++++++++- app/controllers/home_controller.rb | 1 + app/models/matome.rb | 2 +- app/views/home/index.html.slim | 15 ++++++++++----- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/app/assets/stylesheets/home.css.scss b/app/assets/stylesheets/home.css.scss index 7fda9be..38093f2 100644 --- a/app/assets/stylesheets/home.css.scss +++ b/app/assets/stylesheets/home.css.scss @@ -12,7 +12,16 @@ } } -#home .tag_cloud { +#home > .matomes { + margin: 0 auto 50px; + text-align: center; + + li { + @include inline-block; + } +} + +#home > .tags { margin: 0 auto 50px; width: $contents_width; text-align: center; diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index c10a7f1..be0cb76 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -4,6 +4,7 @@ class HomeController < ApplicationController def index @clips = Clip.paginate(page: params[:page]).includes([ { image: :likes, comments: :user }, :user, :likes, :tags ]) @hot_tags = Tag.hot(50).shuffle + @hot_matomes = Matome.hot(5).all render action: 'next_page' unless first_page? end diff --git a/app/models/matome.rb b/app/models/matome.rb index 317c51f..778ab85 100644 --- a/app/models/matome.rb +++ b/app/models/matome.rb @@ -11,7 +11,6 @@ class Matome < ActiveRecord::Base where(user_id: matome.user_id). where.not(id: matome.id) } - scope :related_by_clips, lambda {|matome| related_clip_ids = matome.clips.map(&:id) + matome.clips.map(&:parent_id) joins(:clips). @@ -19,6 +18,7 @@ class Matome < ActiveRecord::Base where.not('matomes.id' => matome.id). group('matomes.id') } + scope :hot, lambda {|limit| reorder('view_count desc').limit(limit) } default_scope order: 'matomes.created_at DESC' diff --git a/app/views/home/index.html.slim b/app/views/home/index.html.slim index 8c12c97..b79554c 100644 --- a/app/views/home/index.html.slim +++ b/app/views/home/index.html.slim @@ -1,9 +1,14 @@ #home - h2 人気タグ - ul.tag_cloud - - @hot_tags.each do |tag| - li style="#{font_size_for_tag_cloud(tag)}" - = link_to "#{tag.name} (#{tag.name_count})", tag_path(tag.name) + .matomes + h2 人気まとめ + == render partial: 'base/matomes', locals: { matomes: @hot_matomes } + + .tags + h2 人気タグ + ul + - @hot_tags.each do |tag| + li style="#{font_size_for_tag_cloud(tag)}" + = link_to "#{tag.name} (#{tag.name_count})", tag_path(tag.name) h2 新着クリップ - if @clips.present? From d560843391e0d93698b9b44ec6a5bd636181b6e3 Mon Sep 17 00:00:00 2001 From: YOSHIDA Hiroki Date: Thu, 9 Jan 2014 01:40:50 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=E3=83=88=E3=83=83=E3=83=97:=20=E4=BA=BA?= =?UTF-8?q?=E6=B0=97=E3=81=BE=E3=81=A8=E3=82=81=E3=82=92=E6=96=B0=E7=9D=80?= =?UTF-8?q?=E3=81=BE=E3=81=A8=E3=82=81=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/home_controller.rb | 2 +- app/views/home/index.html.slim | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index be0cb76..c48d8f2 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -4,7 +4,7 @@ class HomeController < ApplicationController def index @clips = Clip.paginate(page: params[:page]).includes([ { image: :likes, comments: :user }, :user, :likes, :tags ]) @hot_tags = Tag.hot(50).shuffle - @hot_matomes = Matome.hot(5).all + @new_matomes = Matome.limit(5).all render action: 'next_page' unless first_page? end diff --git a/app/views/home/index.html.slim b/app/views/home/index.html.slim index b79554c..91b5849 100644 --- a/app/views/home/index.html.slim +++ b/app/views/home/index.html.slim @@ -1,7 +1,7 @@ #home .matomes - h2 人気まとめ - == render partial: 'base/matomes', locals: { matomes: @hot_matomes } + h2 新着まとめ + == render partial: 'base/matomes', locals: { matomes: @new_matomes } .tags h2 人気タグ