module VideoProgramsHelper def render_ad_banner(event_carousel_images,data) ("
" + event_carousel_images.collect do |e| "
\"#{e['description_text']}\"

#{e['description']}

" end.join+ "

1/#{data['carousel_count']}

").html_safe end def get_feed_annc(type,site_source,locale,categories=nil) ma_key = 'video_programs' if categories.nil? if type == "index" categories = Array(OrbitHelper.page_categories) elsif type == "widget" categories = Array(OrbitHelper.widget_categories) else categories = [] end end categories = ["all"] if categories.length==0 if categories.include?("all") feeds = SiteFeedAnnc.where(:channel_key => ma_key) else feeds = SiteFeedAnnc.where(:channel_key => ma_key, :merge_with_category.in => categories) end if feeds.count > 0 temp_ids = [] data = feeds.collect do |feed| feed.all_contents_for_feed(site_source,locale,type=='widget') end.flatten.compact else data = [] end data end def get_feed_video_programs(type,site_source=nil,categories=nil,max_len=nil) locale = OrbitHelper.get_site_locale.to_s if !(defined? SiteFeedAnnc).nil? fans = get_feed_annc(type,site_source,locale,categories) else feed_anns = OrbitHelper.get_feed_for_module(type) fans = [] feed_anns.each do |fa| next if !site_source.nil? && site_source != fa["source-site-title"] status = { "status" => "#{fa["source-site-title"]}", "status-class" => "status-source" } files = fa["event_news_files"].collect{|bf| { "file_url" => bf["url"], "file_title" => (fa["title_translations"][locale].blank? ? File.basename(fa["url"]) : fa["title_translations"][locale] rescue '') }} rescue [] links = fa["event_news_links"].map{|link| { "link_url" => link["url"], "link_title" => (link["title_translations"][locale].blank? ? link["url"] : link["title_translations"][locale]) } } rescue [] event_time_formated = a.event_time_formated s = DateTime.parse(fa["event_date"]) rescue nil e = DateTime.parse(fa["event_end_date"]) rescue nil date_parse_format = fa["all_day"] ? '%Y-%m-%d' : '%Y-%m-%d %H:%M' if s.blank? && e.blank? event_time_formated = "" elsif s.blank? event_time_formated = s.strftime(date_parse_format) elsif e.blank? event_time_formated = "~ " + e.strftime(date_parse_format) else if s.to_date == e.to_date date_str = s.strftime('%Y-%m-%d') s_time = s.strftime('%H:%M') e_time = e.strftime('%H:%M') event_time_formated = "#{date_str} #{s_time} ~ #{e_time}" else event_time_formated = s.strftime(date_parse_format) + " ~ " + e.strftime(date_parse_format) end end x = { "event_news_links" => links, "event_news_files" => files, "event_carousel_images" => fa["event_carousel_images"].to_a, "title" => fa["title_translations"][locale], "speaker-css" => (fa["speaker_translations"][locale].blank? ? "display: none;" : ""), "host-css" => (fa["host_translations"][locale].blank? ? "display: none;" : ""), "place-css" => (fa["place_translations"][locale].blank? ? "display: none;" : ""), "event-time-css" => (event_time_formated.blank? ? "display: none;" : ""), "notes-css" => (fa["notes_translations"][locale].blank? ? "display: none;" : ""), "event-time-formated" => event_time_formated, "speaker" => (fa["speaker_translations"][locale].to_s rescue ""), "place" => (fa["place_translations"][locale].to_s rescue ""), "host" => (fa["host_translations"][locale].to_s rescue ""), "notes" => (fa["notes_translations"][locale].to_s rescue ""), "subtitle" => fa["subtitle_translations"][locale], "statuses" => [status], "category" => fa["category"], "postdate" => (DateTime.parse(fa["event_date"]) rescue DateTime.now), "event_date" => (DateTime.parse(fa["event_date"]) rescue DateTime.now), "author" => fa["author"], "source-site" => "#{fa["source-site-title"]}", "source-site-title" => fa["source-site-title"], "source-site-link" => fa["source-site"], "link_to_show" => OrbitHelper.url_to_show(fa["params"]), "target" => "_self", "img_src" => fa["image"]["thumb"] || "/assets/video_programs-default.jpg", "img_description" => fa["image_description_translations"][locale], "more" => t("video_programs.more"), "view_count" => "" } if (!x["title"].empty? rescue false) fans << x end end end fans end def filter_by_keywords(sorted,keywords,stime,etime) kflag = keywords.blank? sflag = stime.blank? eflag = etime.blank? stime = stime.to_s.split('/') stime = Time.zone.local(*stime) rescue nil etime = etime.to_s.split('/') etime = Time.zone.local(*etime) rescue nil if !kflag || !sflag || !eflag sorted.select{|anns| if kflag flag = true else if anns["source-site"].present? title = Nokogiri::HTML(anns["title"].to_s).text else title = Nokogiri::HTML(anns.title.to_s).text end flag = title.include?(keywords.to_s) end flag } else sorted end end def get_sorted_video_programs(data_count=nil) params = OrbitHelper.params locale = OrbitHelper.get_site_locale.to_s page_number = OrbitHelper.page_number.to_i page_number = 1 if page_number == 0 page_data_count = data_count || OrbitHelper.page_data_count.to_i feeds_anns = [] page = OrbitHelper.page rescue nil page = Page.where(url: params['url']).first if page.nil? if @type == "show_widget" tags = @tags categories = @categories else tags = page.tags tags = params[:tags] if params[:tags].present? categories = params['category']=='all' ? (page.categories || []) : (Array(params['category']) rescue (page.categories || [])) if params['category'].present? && tags.blank? tags = ["all"] end end if params["source"].blank? if @type == "show_widget" if params[:uids].blank? video_programs = VideoProgram.where(:title.nin => ["",nil],:is_preview.in=>[false,nil]) .can_display_and_sorted .filter_by_categories(categories,false).filter_by_tags(tags).to_a else member_prfile = MemberProfile.any_in(:uid=>params[:uids]) user_ids = member_prfile.map{|m| m.user.id rescue nil}.select{|id| !id.nil?} video_programs = VideoProgram.where(:title.nin => ["",nil],:is_preview.in=>[false,nil],:create_user_id.in=>user_ids) .can_display_and_sorted .filter_by_categories(categories,false).filter_by_tags(tags).to_a end else video_programs = VideoProgram.where(:title.nin => ["",nil],:is_preview.in=>[false,nil]) .can_display_and_sorted .filter_by_categories(categories,false).filter_by_tags(tags).to_a end if false #!(defined? SiteFeed).nil? if @type != "show_widget" feeds_anns = get_feed_video_programs("index",nil,nil,page_number*page_data_count) else feeds_anns = [] end end else video_programs = [] if false # @type != "show_widget" feeds_anns = get_feed_video_programs("index",params["source"],nil,page_number*page_data_count) else feeds_anns = [] end end if feeds_anns.present? if video_programs.count != 0 top_anns = video_programs.select{|v| v.is_top} + feeds_anns.select{|v| v['is_top']} rest_all_anns = feeds_anns.select{|v| v['is_top'] != true} + video_programs.select{|v| !v.is_top} rest_anns = rest_all_anns.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 0 : 1, tmp ? nil : a["postdate"].to_time] }.reverse all_sorted = top_anns.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 0 : 1, tmp ? nil : a["postdate"].to_time] }.reverse + rest_anns else all_sorted = feeds_anns.select{|v| v['is_top']}.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 0 : 1, tmp ? nil : a["postdate"].to_time] }.reverse + feeds_anns.select{|v| v['is_top'] != true}.sort_by { |a| tmp=a["postdate"].blank?;[tmp ? 0 : 1, tmp ? nil : a["postdate"].to_time] }.reverse end all_filter = filter_by_keywords(all_sorted,params[:keywords],params[:stime],params[:etime]) else all_filter = filter_by_keywords(video_programs,params[:keywords],params[:stime],params[:etime]) end if page_data_count != 0 sorted = all_filter[(page_number-1)*page_data_count...page_number*page_data_count] else sorted = all_filter end annc_count = all_filter.count total_pages = page_data_count == 0 ? 1 : (annc_count.to_f / page_data_count).ceil [sorted,total_pages] end end