Merge branch 'master' into 'master'

return subtitle and image for templates

add subtitle and image to return value(hash)

See merge request !4
This commit is contained in:
EricTYL 2019-11-04 12:27:13 +08:00
commit 56822ed38c
2 changed files with 53 additions and 51 deletions

View File

@ -20,10 +20,10 @@ class AnnouncementsController < ApplicationController
# (OrbitHelper.page_number == 1 or OrbitHelper.page_number.nil?) &&
if !params["source"].present?
if !params['tags'].blank?
top_anns = Bulletin.where(:title.ne => "",:is_preview.in=>[false,nil], :is_top => true).and(:title.ne => nil).can_display.filter_by_categories([],false).filter_by_tags(params['tags']).to_a
else
top_anns = Bulletin.where(:title.ne => "",:is_preview.in=>[false,nil], :is_top => true).and(:title.ne => nil).can_display.filter_by_categories([],false).filter_by_tags.to_a
end
top_anns = Bulletin.where(:title.ne => "",:is_preview.in=>[false,nil], :is_top => true).and(:title.ne => nil).can_display.filter_by_categories([],false).filter_by_tags(params['tags']).to_a
else
top_anns = Bulletin.where(:title.ne => "",:is_preview.in=>[false,nil], :is_top => true).and(:title.ne => nil).can_display.filter_by_categories([],false).filter_by_tags.to_a
end
end
if !feeds_anns.blank?
@ -31,7 +31,7 @@ class AnnouncementsController < ApplicationController
sorted = announcements.sort{ |k,v| v["postdate"] <=> k["postdate"] }
sorted = top_anns + sorted
if params["keywords"].present?
sorted = sorted.find_all{|anns|
sorted = sorted.find_all{|anns|
if anns["source-site"].present?
/#{params[:keywords].to_s}/i.match anns["title"]
else
@ -40,7 +40,7 @@ class AnnouncementsController < ApplicationController
}
end
if params["postdate"].present?
sorted = sorted.find_all{|anns|
sorted = sorted.find_all{|anns|
if anns["source-site"].present?
/#{params[:postdate].to_s}/i.match anns["postdate"].strftime("%Y-%m") if !anns["postdate"].nil?
else
@ -55,9 +55,9 @@ class AnnouncementsController < ApplicationController
announcements = announcements.find_all{|anns| /#{params[:keywords].to_s}/i.match anns.title}
end
if params["postdate"].present?
announcements = announcements.find_all{|anns|
announcements = announcements.find_all{|anns|
if !anns.postdate.nil?
/#{params[:postdate].to_s}/i.match anns.postdate.strftime("%Y-%m")
/#{params[:postdate].to_s}/i.match anns.postdate.strftime("%Y-%m")
end
}
end
@ -76,7 +76,7 @@ class AnnouncementsController < ApplicationController
end
files = a.bulletin_files.map{|file| { "file_url" => file.file.url, "file_title" => (file.title.blank? ? File.basename(file.file.path) : file.title rescue '') } if file.enabled_for?(locale) } rescue []
files.delete(nil)
links = a.bulletin_links.map{|link| { "link_url" => link.url, "link_title" => (link.title.blank? ? link.url : link.title) } } rescue []
links = a.bulletin_links.map{|link| { "link_url" => link.url, "link_title" => (link.title.blank? ? link.url : link.title) } } rescue []
author = User.find(a.create_user_id).member_profile.name rescue ""
desc = a.image_description
desc = (desc.nil? || desc == "" ? "announcement image" : desc)
@ -113,7 +113,7 @@ class AnnouncementsController < ApplicationController
# anns = anns.concat(feeds_anns)
# total_pages = announcements.total_pages
{
"announcements" => anns,
"extras" => {
@ -121,7 +121,7 @@ class AnnouncementsController < ApplicationController
"title-head" => t('announcement.table.title'),
"date-head" => t('announcement.table.date'),
"status-head" => t('announcement.table.status'),
"author-head" => t('announcement.table.author'),
"author-head" => t('announcement.table.author'),
"subtitle-head" => t('announcement.table.sub_title'),
"category-head" => t('announcement.table.category'),
"link-head" => t('announcement.table.link'),
@ -168,7 +168,7 @@ class AnnouncementsController < ApplicationController
"more" => t(:more_plus),
"view_count" => ""
}
if (!x["title"].empty? rescue false)
if (!x["title"].empty? rescue false)
fans << x
end
end
@ -226,10 +226,10 @@ class AnnouncementsController < ApplicationController
feeds_anns = get_feed_announcements("widget")
announcements = announcements + feeds_anns
if !feeds_anns.blank?
sorted = announcements.sort{ |k,v| v["postdate"] <=> k["postdate"] }
sorted = top_anns + sorted
sorted = Kaminari.paginate_array(sorted).page(1).per(OrbitHelper.widget_data_count) rescue []
else
sorted = announcements.sort{ |k,v| v["postdate"] <=> k["postdate"] }
sorted = top_anns + sorted
sorted = Kaminari.paginate_array(sorted).page(1).per(OrbitHelper.widget_data_count) rescue []
else
announcements = top_anns + announcements
sorted = Kaminari.paginate_array(announcements).page(1).per(OrbitHelper.widget_data_count) rescue []
end
@ -245,8 +245,8 @@ class AnnouncementsController < ApplicationController
files = a.bulletin_files.map{|file| { "file_url" => file.file.url, "file_title" => (file.title.blank? ? File.basename(file.file.path) : file.title rescue '') } if file.enabled_for?(locale) } rescue []
files.delete(nil)
links = a.bulletin_links.map{|link| { "link_url" => link.url, "link_title" => (link.title.blank? ? link.url : link.title) } } rescue []
author = User.find(a.create_user_id).member_profile.name rescue ""
desc = a.image_description
author = User.find(a.create_user_id).member_profile.name rescue ""
desc = a.image_description
desc = (desc.nil? || desc == "" ? "announcement image" : desc)
link_to_show = a.is_external_link ? a.external_link : OrbitHelper.widget_item_url(a.to_param)
target = a.is_external_link ? "_blank" : "_self"
@ -267,10 +267,10 @@ class AnnouncementsController < ApplicationController
"img_src" => a.image.thumb.url || "/assets/announcement-default.jpg",
"img_description" => desc
}
else
anns << a
else
anns << a
end
end
end
mp = (anns[0]["img_src"] rescue "")
mpd = (anns[0]["img_description"] rescue "")
@ -322,16 +322,16 @@ class AnnouncementsController < ApplicationController
} } rescue []
files = announcement.bulletin_files.map{|file| { "file_url" => file.file.url, "file_title" => (file.title.blank? ? URI.unescape(File.basename(file.file.path)) : file.title rescue '') } if file.enabled_for?(locale) } rescue []
files.delete(nil)
files.each do |file|
if file["file_url"] =="" || file["file_url"] == nil
files.delete(file)
end
end
files.each do |file|
if file["file_url"] =="" || file["file_url"] == nil
files.delete(file)
end
end
links = announcement.bulletin_links.map{|link| { "link_url" => link.url, "link_title" => (link.title.blank? ? link.url : link.title) } } rescue []
update_user = announcement.update_user.member_profile.name rescue ""
desc = announcement.image_description
desc = (desc.nil? || desc == "" ? "announcement image" : desc)
request = OrbitHelper.request
meta_desc = announcement.subtitle.nil? || announcement.subtitle == "" ? announcement.text[0..200] : announcement.subtitle
OrbitHelper.render_meta_tags([{"property" => "og:title", "content" => announcement.title},{"property" => "og:site_name", "content" => Site.first.title},{"property" => "og:url", "content" => request.original_url.split("?").first},{"property" => "og:description", "content" => meta_desc},{"property" => "og:image", "content" => "#{request.base_url}#{announcement.image.url}"},{"property" => "og:type", "content" => "Article"}])
@ -342,10 +342,12 @@ class AnnouncementsController < ApplicationController
"bulletin_links" => links,
"data" => {
"title" => announcement.title,
"subtitle_ann" => announcement.subtitle,
"update_user" => update_user,
"updated_at" => announcement.postdate.strftime('%Y-%m-%d %H:%M'),
"body" =>announcement.text,
"image" => announcement.image.url,
"img_src" => announcement.image.thumb.url || "/assets/announcement-default.jpg",
"alt_title" => desc
},
"impressionist" => (announcement.is_preview ? nil : announcement),
@ -360,7 +362,7 @@ class AnnouncementsController < ApplicationController
return {} if announcement.blank?
tags = []
announcement["tags"].each{|tag|
announcement["tags"].each{|tag|
t = Tag.where(:name => tag["name_translations"][locale]).first rescue nil
if t.nil?
I18n.locale = (locale == "en" ? :zh_tw : :en)
@ -368,24 +370,24 @@ class AnnouncementsController < ApplicationController
I18n.locale = locale.to_sym
end
tags << {
"tag" => tag["name_translations"][locale],
"url" => (t.nil? ? "#" : OrbitHelper.page_for_tag(t))
}
}
"tag" => tag["name_translations"][locale],
"url" => (t.nil? ? "#" : OrbitHelper.page_for_tag(t))
}
}
files = announcement["bulletin_files"].map{|file| { "file_url" => file["url"], "file_title" => (file["title_translations"][locale] == "" ? URI.unescape(File.basename(file["url"])) : file["title_translations"][locale] rescue '') } } rescue []
files.each do |file|
if file["file_url"] =="" || file["file_url"] == nil
files.delete(file)
end
end
links = announcement["bulletin_links"].map{|link| { "link_url" => link["url"], "link_title" => (link["title_translations"][locale] == "" ? link["url"] : link["title_translations"][locale]) } } rescue []
if file["file_url"] =="" || file["file_url"] == nil
files.delete(file)
end
end
links = announcement["bulletin_links"].map{|link| { "link_url" => link["url"], "link_title" => (link["title_translations"][locale] == "" ? link["url"] : link["title_translations"][locale]) } } rescue []
update_user = announcement["author"]
desc = announcement["image_description_translations"][locale] rescue ""
desc = (desc.nil? || desc == "" ? "announcement image" : desc)
request = OrbitHelper.request
if announcement["subtitle_translations"].present?
meta_desc = announcement["subtitle_translations"][locale] != "" ? announcement["subtitle_translations"][locale] : announcement["text_translations"][locale][0..200] rescue ""

View File

@ -27,7 +27,7 @@ class BulletinsController < ApplicationController
else
bulletins = bulletins
end
bulletins = bulletins.where(:is_preview.in=>[false,nil])
bulletins = bulletins.where(:approved.ne => false , :rejected.ne => true)
bulletins = bulletins.where(:postdate.lt=>Time.now)
@ -35,7 +35,7 @@ class BulletinsController < ApplicationController
bulletins = bulletins.collect do |b|
image = request.protocol + request.host_with_port + b.image.url rescue nil
links = b.bulletin_links.collect do |bl|
{
"title" => bl.title_translations,
@ -44,7 +44,7 @@ class BulletinsController < ApplicationController
end rescue nil
files = b.bulletin_files.collect do |bf|
file = request.protocol + request.host_with_port + bf.file.url rescue nil
file = request.protocol + request.host_with_port + bf.file.url rescue nil
{
"title" => bf.title_translations,
"description" => bf.description_translations,
@ -106,17 +106,17 @@ class BulletinsController < ApplicationController
def smart_convertor(text)
html_string = text
links = html_string.scan(/img.*?src="(.*?)"/i)
links.each do |link|
l = link.first
new_link = nil
if l.starts_with?("/")
new_link = request.protocol + request.host_with_port + l
elsif l.starts_with?("..")
l1 = l.gsub("../","")
new_link = request.protocol + request.host_with_port + "/" + l1
end
html_string = html_string.sub(l,new_link) if !new_link.nil?
links.each do |link|
l = link.first
new_link = nil
if l.starts_with?("/")
new_link = request.protocol + request.host_with_port + l
elsif l.starts_with?("..")
l1 = l.gsub("../","")
new_link = request.protocol + request.host_with_port + "/" + l1
end
html_string = html_string.sub(l,new_link) if !new_link.nil?
end
return html_string
end