New widget for tag cloud
This commit is contained in:
1 parent
30824d1620
commit
253cca06cc
16 files changed
+122
-27
No files matched your search
@@ -22,6 +22,11 @@ class Admin::PagePartsController < OrbitBackendController
|
||||
@part = PagePart.find(params[:id])
|
||||
@r_tag = @part.public_r_tag.blank? ? LIST[:public_r_tags][0] : @part.public_r_tag
|
||||
@tag_objects = @r_tag.classify.constantize.all rescue nil
|
||||
if @r_tag.eql?('tag_cloud')
|
||||
@tag_objects = ModuleApp.where(has_tag: true)
|
||||
else
|
||||
@tag_objects = @r_tag.classify.constantize.all rescue nil
|
||||
end
|
||||
|
||||
@module_apps = ModuleApp.for_widget_select
|
||||
@categories = nil
|
||||
@@ -119,7 +124,11 @@ class Admin::PagePartsController < OrbitBackendController
|
||||
def reload_r_tag_options
|
||||
@part = PagePart.find params[:id]
|
||||
@r_tag = params[:type]
|
||||
@tag_objects = @r_tag.classify.constantize.all rescue nil
|
||||
if params[:type].eql?('tag_cloud')
|
||||
@tag_objects = ModuleApp.where(has_tag: true)
|
||||
else
|
||||
@tag_objects = @r_tag.classify.constantize.all rescue nil
|
||||
end
|
||||
respond_to do |format|
|
||||
format.js {}
|
||||
end
|
||||
|
||||
@@ -38,6 +38,11 @@ class FrontController < ApplicationController
|
||||
@ad_images = AdImage.all
|
||||
end
|
||||
|
||||
def show_tag_cloud
|
||||
module_app = ModuleApp.find(params[:id]) rescue nil
|
||||
@tags = module_app.sorted_tags_for_cloud
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def menu_level(page, current_page, current, menu)
|
||||
|
||||
@@ -3,7 +3,7 @@ module ApplicationHelper
|
||||
FLASH_NOTICE_KEYS = [:error, :notice, :warning]
|
||||
|
||||
def delayed_impressionist(object)
|
||||
Resque.enqueue_at(1.minute.from_now,DelayedImpressionist,object)
|
||||
# Resque.enqueue_at(1.minute.from_now,DelayedImpressionist,object)
|
||||
end
|
||||
|
||||
def check_user_role_enable(attribute_fields)
|
||||
|
||||
@@ -19,6 +19,7 @@ class ModuleApp
|
||||
self[:get_widget_style] = reg.get_widgets
|
||||
self[:using_default_widget] = !reg.get_default_widget.blank?
|
||||
self[:widgets] = reg.get_widgets
|
||||
self[:has_tag] = reg.get_has_tags
|
||||
end
|
||||
|
||||
|
||||
@@ -135,5 +136,27 @@ class ModuleApp
|
||||
def self.find_by_key(key)
|
||||
self.where(key: key)[0] rescue nil
|
||||
end
|
||||
|
||||
def sorted_tags_for_cloud
|
||||
temp_tags = {}
|
||||
self.tags.each{ |tag|
|
||||
temp_tags.merge!({tag => Tag.get_impressionist(tag)})
|
||||
}
|
||||
if !temp_tags.blank?
|
||||
sorted_tags = temp_tags.sort{|a,b| a[1]<=>b[1]}.reverse
|
||||
sorted_tags[0][1] = :hot1
|
||||
offset = (sorted_tags.size - 1) / 3
|
||||
i = 1
|
||||
class_i = 2
|
||||
sorted_tags[1..-1].collect!{ |x|
|
||||
x[1] = "hot#{class_i}"
|
||||
i == offset ? i = 1 : i += 1 if class_i < 4
|
||||
class_i += 1 if i == offset && class_i < 4
|
||||
}
|
||||
sorted_tags
|
||||
else
|
||||
[]
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
+21
-21
@@ -19,27 +19,27 @@ class Tag
|
||||
|
||||
#field :cloud_amper,:type: Integer,:default=> 0
|
||||
|
||||
def self.sorted_for_cloud
|
||||
tags = {}
|
||||
self.all.each{ |tag|
|
||||
tags.merge!({tag => self.get_impressionist(tag)})
|
||||
}
|
||||
if !tags.blank?
|
||||
sorted_tags = tags.sort{|a,b| a[1]<=>b[1]}.reverse
|
||||
sorted_tags[0][1] = :hot1
|
||||
offset = (sorted_tags.size - 1) / 3
|
||||
i = 1
|
||||
class_i = 2
|
||||
sorted_tags[1..-1].collect!{ |x|
|
||||
x[1] = "hot#{class_i}"
|
||||
i == offset ? i = 1 : i += 1 if class_i < 4
|
||||
class_i += 1 if i == offset && class_i < 4
|
||||
}
|
||||
sorted_tags
|
||||
else
|
||||
[]
|
||||
end
|
||||
end
|
||||
# def self.sorted_for_cloud
|
||||
# tags = {}
|
||||
# self.all.each{ |tag|
|
||||
# tags.merge!({tag => self.get_impressionist(tag)})
|
||||
# }
|
||||
# if !tags.blank?
|
||||
# sorted_tags = tags.sort{|a,b| a[1]<=>b[1]}.reverse
|
||||
# sorted_tags[0][1] = :hot1
|
||||
# offset = (sorted_tags.size - 1) / 3
|
||||
# i = 1
|
||||
# class_i = 2
|
||||
# sorted_tags[1..-1].collect!{ |x|
|
||||
# x[1] = "hot#{class_i}"
|
||||
# i == offset ? i = 1 : i += 1 if class_i < 4
|
||||
# class_i += 1 if i == offset && class_i < 4
|
||||
# }
|
||||
# sorted_tags
|
||||
# else
|
||||
# []
|
||||
# end
|
||||
# end
|
||||
|
||||
protected
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<% unless @tags.blank? %>
|
||||
<div class="tag_cloud">
|
||||
<h3 class="h3"><%= t(:tag_cloud) %></h3>
|
||||
<div class="cloud">
|
||||
<% @tags.each do |tag| %>
|
||||
<%= link_to tag[0].name, '#?' + {:tag_id => tag[0].id, :category_id => params[:category_id]}.to_param, :class => "#{tag[1]} #{tag[0].id.to_s.eql?(params[:tag_id]) ? 'active' : nil} " %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
Reference in new issue
Block a user