2020-07-22 02:23:36 +00:00
module EventNewsHelper
2021-09-16 09:16:20 +00:00
def self . complementaryColor ( my_hex )
if my_hex [ 0 ] == '#'
my_hex = my_hex [ 1 .. - 1 ]
end
rgb = my_hex . split ( / / ) . each_slice ( my_hex . length / 3 ) . map { | v | v . join }
comp = rgb . map { | a | ( 255 - a . to_i ( 16 ) ) . to_s ( 16 ) . rjust ( 2 , '0' ) }
'#' + comp . join
end
def self . lighten_color ( my_hex , percent )
if my_hex [ 0 ] == '#'
my_hex = my_hex [ 1 .. - 1 ]
end
rgb = my_hex . split ( / / ) . each_slice ( my_hex . length / 3 ) . map { | v | v . join }
comp = rgb . collect do | a |
tmp = a . to_i ( 16 ) * ( 1 + percent / 100 . 0 )
tmp = 255 if tmp > 255
tmp = 0 if tmp < 0
tmp . to_i . to_s ( 16 ) . rjust ( 2 , '0' )
end
'#' + comp . join
end
2021-06-09 06:34:00 +00:00
def data_to_human_type ( a , set_tag_ids = nil )
2020-07-22 02:23:36 +00:00
statuses = a . statuses_with_classname . collect do | status |
{
" status " = > status [ " name " ] ,
" status-class " = > " status- #{ status [ 'classname' ] } "
}
end
files = a . event_news_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 . event_news_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 == " " ? " event_news image " : desc )
link_to_show = ( a . is_external_link? ? a . external_link : OrbitHelper . widget_item_url ( a . to_param ) ) rescue " "
target = a . is_external_link ? " _blank " : " _self "
if @image_version == 'thumb'
image_url = a . image . thumb . url
elsif @image_version == 'mobile'
image_url = a . image . mobile . url
else
image_url = a . image . url
end
2021-10-21 04:54:14 +00:00
event_time_formated = a . event_time_formated
2020-07-22 02:23:36 +00:00
{
" event_news_links " = > links ,
" event_news_files " = > files ,
" title " = > a . title ,
2021-08-24 15:43:30 +00:00
" speaker-css " = > ( a . speaker . blank? ? " display: none; " : " " ) ,
" host-css " = > ( a . host . blank? ? " display: none; " : " " ) ,
2021-10-21 04:14:15 +00:00
" place-css " = > ( a . place . blank? ? " display: none; " : " " ) ,
2021-10-21 04:54:14 +00:00
" event-time-css " = > ( event_time_formated . blank? ? " display: none; " : " " ) ,
2022-01-21 02:09:31 +00:00
" notes-css " = > ( a . notes . blank? ? " display: none; " : " " ) ,
" event-time-formated " = > event_time_formated ,
2020-07-22 02:23:36 +00:00
" speaker " = > a . speaker ,
2021-07-14 04:56:02 +00:00
" place " = > a . place ,
2020-07-22 02:23:36 +00:00
" host " = > a . host ,
" notes " = > a . notes ,
" source-site " = > " " ,
" source-site-title " = > " " ,
" source-site-link " = > " " ,
" subtitle " = > a . subtitle ,
" statuses " = > statuses ,
2020-07-31 06:52:33 +00:00
" category " = > ( a . category . title rescue " " ) ,
2021-06-09 06:34:00 +00:00
" tag_ids " = > ( set_tag_ids . nil? ? ( a . tag_ids . map { | id | id . to_s } . to_s . gsub ( '"' , " ' " ) rescue '[]' ) : set_tag_ids ) ,
2022-01-21 02:09:31 +00:00
" postdate " = > event_time_formated ,
2024-01-28 07:04:23 +00:00
" event_start_date " = > a . event_date_frontend ,
" event_end_date " = > a . event_end_date_frontend ,
2022-01-21 02:09:31 +00:00
" event_date " = > event_time_formated ,
2020-07-22 02:23:36 +00:00
" author " = > author ,
" link_to_show " = > link_to_show ,
" target " = > target ,
2020-07-31 06:52:33 +00:00
" img_src " = > image_url || " /assets/announcement-default.jpg " ,
2020-07-22 02:23:36 +00:00
" img_description " = > desc
}
end
2024-09-16 03:30:37 +00:00
def get_feed_annc ( type , site_source , locale , categories = nil , max_len = nil )
ma_key = 'event_news_mod'
2021-09-16 09:16:20 +00:00
if categories . nil?
if type == " index "
categories = Array ( OrbitHelper . page_categories )
elsif type == " widget "
categories = Array ( OrbitHelper . widget_categories )
else
categories = [ ]
end
2020-07-22 02:23:36 +00:00
end
2021-09-16 09:16:20 +00:00
categories = [ " all " ] if categories . length == 0
2024-09-16 03:30:37 +00:00
data = SiteFeedAnnc . get_feed_cache ( ma_key , categories , site_source , locale , type == 'widget' , max_len )
2020-07-22 02:23:36 +00:00
data
end
2021-09-16 09:16:20 +00:00
def get_feed_event_news ( type , site_source = nil , categories = nil , max_len = nil )
2020-07-22 02:23:36 +00:00
locale = OrbitHelper . get_site_locale . to_s
if ! ( defined? SiteFeedAnnc ) . nil?
2024-09-16 03:30:37 +00:00
fans = get_feed_annc ( type , site_source , locale , categories , max_len )
2020-07-22 02:23:36 +00:00
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 " = > " <a href=' #{ fa [ " source-site " ] } ' target='_blank' class='feed-source'> #{ fa [ " source-site-title " ] } </a> " ,
" status-class " = > " status-source "
}
2024-09-16 03:30:37 +00:00
files = fa [ " event_news_files " ] . collect { | bf | { " file_url " = > bf [ " file_url " ] , " file_title " = > fa [ " file_title_translations " ] [ locale ] } } rescue [ ]
links = fa [ " event_news_links " ] . map { | link | { " link_url " = > link [ " link_url " ] , " link_title " = > link [ " link_title_translations " ] [ locale ] } } rescue [ ]
2021-10-21 04:54:14 +00:00
event_time_formated = a . event_time_formated
s = DateTime . parse ( fa [ " event_date " ] ) rescue nil
2021-10-21 05:41:51 +00:00
e = DateTime . parse ( fa [ " event_end_date " ] ) rescue nil
2021-10-21 07:03:35 +00:00
date_parse_format = fa [ " all_day " ] ? '%Y-%m-%d' : '%Y-%m-%d %H:%M'
2021-10-21 04:54:14 +00:00
if s . blank? && e . blank?
event_time_formated = " "
elsif s . blank?
2021-10-21 07:03:35 +00:00
event_time_formated = s . strftime ( date_parse_format )
2021-10-21 04:54:14 +00:00
elsif e . blank?
2021-10-21 07:03:35 +00:00
event_time_formated = " ~ " + e . strftime ( date_parse_format )
2021-10-21 04:54:14 +00:00
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
2021-10-21 07:03:35 +00:00
event_time_formated = s . strftime ( date_parse_format ) + " ~ " + e . strftime ( date_parse_format )
2021-10-21 04:54:14 +00:00
end
end
2020-07-22 02:23:36 +00:00
x = {
" event_news_links " = > links ,
" event_news_files " = > files ,
2023-04-08 14:03:13 +00:00
" event_carousel_images " = > fa [ " event_carousel_images " ] . to_a ,
2020-07-22 02:23:36 +00:00
" title " = > fa [ " title_translations " ] [ locale ] ,
2021-10-21 04:54:14 +00:00
" 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; " : " " ) ,
2022-01-21 02:09:31 +00:00
" notes-css " = > ( fa [ " notes_translations " ] [ locale ] . blank? ? " display: none; " : " " ) ,
" event-time-formated " = > event_time_formated ,
2020-07-31 06:52:33 +00:00
" speaker " = > ( fa [ " speaker_translations " ] [ locale ] . to_s rescue " " ) ,
2021-07-14 04:56:02 +00:00
" place " = > ( fa [ " place_translations " ] [ locale ] . to_s rescue " " ) ,
2020-07-31 06:52:33 +00:00
" host " = > ( fa [ " host_translations " ] [ locale ] . to_s rescue " " ) ,
" notes " = > ( fa [ " notes_translations " ] [ locale ] . to_s rescue " " ) ,
2020-07-22 02:23:36 +00:00
" subtitle " = > fa [ " subtitle_translations " ] [ locale ] ,
" statuses " = > [ status ] ,
" category " = > fa [ " category " ] ,
2020-07-31 06:52:33 +00:00
" postdate " = > ( DateTime . parse ( fa [ " event_date " ] ) rescue DateTime . now ) ,
" event_date " = > ( DateTime . parse ( fa [ " event_date " ] ) rescue DateTime . now ) ,
2020-07-22 02:23:36 +00:00
" author " = > fa [ " author " ] ,
" source-site " = > " <a href=' #{ fa [ " source-site " ] } ' target='_blank' class='feed-source'> #{ fa [ " source-site-title " ] } </a> " ,
" 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/event_news-default.jpg " ,
" img_description " = > fa [ " image_description_translations " ] [ locale ] ,
2022-01-21 02:09:31 +00:00
" more " = > t ( " event_news.more " ) ,
2020-07-22 02:23:36 +00:00
" 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
if sflag && ! eflag
flag = flag && ( anns . event_date < = etime )
elsif ! sflag && eflag
flag = flag && ( anns . event_date > = stime )
elsif ! sflag && ! eflag
flag = flag && ( anns . event_date > = stime ) && ( anns . event_date < = etime )
end
flag
}
else
sorted
end
end
def get_sorted_event_news ( 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 = [ ]
2021-06-09 06:34:00 +00:00
page = OrbitHelper . page rescue nil
page = Page . where ( url : params [ 'url' ] ) . first if page . nil?
2020-07-22 02:23:36 +00:00
if @type == " show_widget "
tags = @tags
categories = @categories
else
2021-09-16 09:16:20 +00:00
tags = page . tags
2021-06-09 06:34:00 +00:00
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
2020-07-22 02:23:36 +00:00
end
if ! params [ " source " ] . present?
if @type == " show_widget "
if params [ :uids ] . blank?
event_news = EventNews . where ( :title . nin = > [ " " , nil ] , :is_preview . in = > [ false , nil ] )
. can_display_and_sorted . is_approved
. 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? }
event_news = EventNews . where ( :title . nin = > [ " " , nil ] , :is_preview . in = > [ false , nil ] , :create_user_id . in = > user_ids )
. can_display_and_sorted . is_approved
. filter_by_categories ( categories , false ) . filter_by_tags ( tags ) . to_a
end
else
event_news = EventNews . where ( :title . nin = > [ " " , nil ] , :is_preview . in = > [ false , nil ] )
. can_display_and_sorted . is_approved
. filter_by_categories ( categories , false ) . filter_by_tags ( tags ) . to_a
end
if ! ( defined? SiteFeed ) . nil?
if @type != " show_widget "
2021-09-16 09:16:20 +00:00
feeds_anns = get_feed_event_news ( " index " , nil , nil , page_number * page_data_count )
2020-07-22 02:23:36 +00:00
else
feeds_anns = [ ]
end
end
else
event_news = [ ]
if @type != " show_widget "
2021-09-16 09:16:20 +00:00
feeds_anns = get_feed_event_news ( " index " , params [ " source " ] , nil , page_number * page_data_count )
2020-07-22 02:23:36 +00:00
else
feeds_anns = [ ]
end
end
if ! feeds_anns . blank?
if event_news . count != 0
top_anns = event_news . select { | v | v . is_top } + feeds_anns . select { | v | v [ 'is_top' ] }
rest_all_anns = feeds_anns . select { | v | v [ 'is_top' ] != true } + event_news . select { | v | ! v . is_top }
2021-09-16 09:16:20 +00:00
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
2020-07-22 02:23:36 +00:00
else
2021-09-16 09:16:20 +00:00
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
2020-07-22 02:23:36 +00:00
end
all_filter = filter_by_keywords ( all_sorted , params [ :keywords ] , params [ :stime ] , params [ :etime ] )
else
all_filter = filter_by_keywords ( event_news , 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
2020-08-03 09:11:57 +00:00
def render_view_for_event_news ( overridehtml = nil )
2020-07-22 02:23:36 +00:00
@key = Site . first . template
def render_link_to_edit ( html , url_to_edit )
if html . scan ( " {{link_to_edit}} " ) . length == 0
html = url_to_edit . blank? ? html : html + " <p class='admin-edit text-right'><a class='btn btn-primary' href=' #{ url_to_edit } '><i class='icon-edit'></i> #{ t ( :edit ) } </a></p> "
else
html = url_to_edit . blank? ? html . gsub ( " {{link_to_edit}} " , " " ) : html . gsub ( " {{link_to_edit}} " , " <p class='admin-edit text-right'><a class='btn btn-primary' href=' #{ url_to_edit } '><i class='icon-edit'></i> #{ t ( :edit ) } </a></p> " )
end
return html
end
def parsing_repeats_again ( elements , d , level )
newhtml = [ ]
oldhtml = [ ]
elements . each do | el |
html_to_render = " "
data_name = el . attr ( " data-list " )
wrap_elements = el . css ( " *[data-list][data-level=' #{ level } '] " )
if d [ data_name ]
d [ data_name ] . each_with_index do | item , i |
element = el . inner_html
if wrap_elements . count > 0
htmls = parsing_repeats_again ( wrap_elements , d [ data_name ] [ i ] , level + 1 )
htmls [ 0 ] . each_with_index do | html , i |
element = element . gsub ( html , htmls [ 1 ] [ i ] )
end
end
item . each do | key , value |
if ! value . kind_of? ( Array )
value = value . nil? ? " " : value
element = element . gsub ( " {{ #{ key } }} " , value . to_s . html_safe )
element = element . gsub ( " %7B%7B #{ key } %7D%7D " , value . to_s . html_safe )
element = render_link_to_edit ( element , value ) if key . eql? ( " url_to_edit " )
end
end
html_to_render = html_to_render + element
end
temp = el . to_s
oldhtml << temp
temp = temp . gsub ( el . inner_html , html_to_render )
newhtml << temp
end
end
[ oldhtml , newhtml ]
end
if @target_action == " index "
2022-11-01 05:20:14 +00:00
filename = File . basename ( overridehtml . nil? ? params [ :layout_type ] : overridehtml )
2022-03-08 08:55:33 +00:00
f = File . join ( Rails . root , 'app' , 'templates' , " #{ @key } " , 'modules' , 'event_news_mod' , " #{ filename } .html.erb " )
2024-02-24 12:56:13 +00:00
if ! File . exist? ( f )
2022-03-08 08:55:33 +00:00
f = File . join ( Rails . root , 'app' , 'templates' , " #{ @key } " , 'modules' , 'event_news_mod' , " index.html.erb " )
2024-02-24 12:56:13 +00:00
if ! File . exist? ( f )
2020-07-22 02:23:36 +00:00
return " <div class='well'>Maybe the administrator has changed the theme, please select the index page design again from the page settings.</div> " . html_safe
end
end
file = File . open ( f )
doc = Nokogiri :: HTML ( file , nil , " UTF-8 " )
file . close
2020-08-03 09:11:57 +00:00
controller = EventNewsController . new
2020-07-22 02:23:36 +00:00
begin
data = @data # rescue nil
rescue Exception = > e
2022-03-08 08:55:33 +00:00
write_debug_file ( e , 'event_news_mod' , @target_action ) if Site :: DEBUG
2020-07-22 02:23:36 +00:00
end
if ! data . nil?
wrap_elements = doc . css ( " *[data-list][data-level='0'] " )
htmls = parsing_repeats_again ( wrap_elements , data , 1 )
html = doc . to_s
htmls [ 0 ] . each_with_index do | h , i |
html = html . gsub ( h , htmls [ 1 ] [ i ] )
end
extras = data [ " extras " ] || { }
extras [ " page-title " ] = Page . find_by ( :page_id = > params [ :page_id ] ) . name rescue " " if ! extras [ " page-title " ]
extras . each do | key , value |
value = value . nil? ? " " : value
html = html . gsub ( " {{ #{ key } }} " , value . to_s . html_safe )
html = html . gsub ( " %7B%7B #{ key } %7D%7D " , value . to_s . html_safe )
end
total_pages = data [ 'total_pages' ] . to_i rescue 1
if total_pages > 1
html = html . gsub ( " {{pagination_goes_here}} " , create_pagination ( total_pages ) )
else
html = html . gsub ( " {{pagination_goes_here}} " , " " ) ;
end
html . html_safe
else
return " <div class='well'>No content to show.</div> " . html_safe
end
else
filename = overridehtml . nil? ? @target_action : overridehtml
2022-03-08 08:55:33 +00:00
f = File . join ( Rails . root , 'app' , 'templates' , " #{ @key } " , 'modules' , 'event_news_mod' , " #{ filename } .html.erb " )
2024-02-24 12:56:13 +00:00
if File . exist? ( f )
2020-07-22 02:23:36 +00:00
file = File . open ( f )
doc = Nokogiri :: HTML ( file , nil , " UTF-8 " )
file . close
2020-08-03 09:11:57 +00:00
controller = EventNewsController . new
2020-07-22 02:23:36 +00:00
begin
data = @data # rescue nil
rescue Exception = > e
2022-03-08 08:55:33 +00:00
write_debug_file ( e , 'event_news_mod' , @target_action ) if Site :: DEBUG
2020-07-22 02:23:36 +00:00
end
if data . nil?
return " <div class='well'> No content to show. </div> " . html_safe
end
if data . blank? || data . empty?
file = File . open ( " #{ Rails . root } /app/views/errors/404.html " )
doc = Nokogiri :: HTML ( file , nil , " UTF-8 " )
file . close
doc . to_html . html_safe
else
unless data [ 'impressionist' ] . blank?
Thread . new do
impression = data [ 'impressionist' ] . impressions . create
impression . user_id = request . session [ 'user_id' ]
impression . controller_name = 'event_news'
impression . action_name = @target_action
impression . ip_address = request . remote_ip
impression . session_hash = request . session . id
impression . request_hash = @impressionist_hash
impression . referrer = request . referrer
impression . save
end
data [ 'impressionist' ] . inc ( view_count : 1 )
data [ " data " ] [ " view_count " ] = data [ " impressionist " ] . view_count if data [ " data " ] . present?
end
wrap_elements = doc . css ( " *[data-list][data-level='0'] " )
if wrap_elements . count == 0
wrap_element_html = doc . to_s
el = wrap_element_html
data . each do | key , value |
next if key . eql? 'impressionist'
value = value . nil? ? " " : value
el = el . gsub ( " {{ #{ key } }} " , value . to_s . html_safe )
el = el . gsub ( " %7B%7B #{ key } %7D%7D " , value . to_s . html_safe )
end
el . html_safe
else
keys = data . keys
not_array_key = nil
data . keys . each do | key |
not_array_key = key if data [ " #{ key } " ] . kind_of? ( Hash )
end
htmls = parsing_repeats_again ( wrap_elements , data , 1 )
html = doc . to_s
htmls [ 0 ] . each_with_index do | h , i |
html = html . gsub ( h , htmls [ 1 ] [ i ] )
end
extras = data [ " #{ not_array_key } " ] || { }
extras . each do | key , value |
next if key . eql? 'impressionist'
value = value . nil? ? " " : value
html = html . gsub ( " {{ #{ key } }} " , value . to_s )
html = html . gsub ( " %7B%7B #{ key } %7D%7D " , value . to_s )
end
html = render_link_to_edit ( html , data [ " url_to_edit " ] ) if ! data [ " url_to_edit " ] . nil?
total_pages = data [ 'total_pages' ] . to_i rescue 1
if @show_page == " false "
html = html . gsub ( " {{pagination_goes_here}} " , " " )
else
if total_pages > 1
html = html . gsub ( " {{pagination_goes_here}} " , create_pagination ( total_pages ) )
else
html = html . gsub ( " {{pagination_goes_here}} " , " " )
end
end
html = Nokogiri :: HTML . parse ( html )
2020-08-03 09:11:57 +00:00
html . css ( '.i-event_news__page-title' ) . remove
2020-07-22 02:23:36 +00:00
dates = html . css ( " *[date-format] " )
if ! dates . blank?
dates . each do | d |
2020-08-03 09:11:57 +00:00
begin
format = d . attributes [ " date-format " ] . value
date = DateTime . parse ( d . inner_text )
d . inner_html = d . inner_html . gsub ( d . inner_text . strip , " " + date . strftime ( format ) )
rescue
next
end
2020-07-22 02:23:36 +00:00
end
end
2021-09-16 09:16:20 +00:00
html . css ( " body " ) [ 0 ] . inner_html = html . css ( " body " ) [ 0 ] . inner_html . gsub ( " {{page-title}} " , " " )
2020-07-22 02:23:36 +00:00
html . css ( " body " ) . to_html . html_safe
end
end
else
return " <div class='well'>There is a problem with the design. We will try to fix it as soon as possible. Sorry for the inconvenience!! :(</div> " . html_safe
end
end
end
def get_layouts ( module_app )
layout_types = [ ]
@key = Site . first . template
f = File . join ( " #{ Rails . root } /app/templates/ #{ @key } /modules/ #{ module_app } /info.json " )
2024-02-24 12:56:13 +00:00
if File . exist? ( f )
2020-07-22 02:23:36 +00:00
info = File . read ( f )
hash = JSON . parse ( info ) rescue { }
frontends = hash [ " frontend " ] || [ ]
frontends . each do | frontend |
frontend [ " thumbnail " ] = " /assets/ #{ module_app } /thumbs/ #{ frontend [ " thumbnail " ] } "
layout_types << frontend
end
end
if layout_types . empty?
Dir . glob ( " #{ Rails . root } /app/templates/ #{ @key } /modules/ #{ module_app } /* " ) . each do | w |
next if File . ftype ( w ) . eql? ( " directory " )
w = File . basename ( w , " .* " )
w = File . basename ( w , " .* " )
if w [ 0 , 1 ] != " _ " && w [ 0 , 1 ] != " s " && w != " info "
layout_types << w
end
end
end
layout_types
end
2021-09-05 10:56:57 +00:00
def render_ad_banner ( event_carousel_images , data )
( " <div class= \" carousel_images \" >
< div class = \ " w-ba-banner ba-banner-widget-1 \" >
< div class = \ " w-ba-banner__wrap cycle-slideshow \"
data - list = \ " event_carousel_images \"
data - level = \ " 0 \"
data - cycle - slides = \ " .event_carousel_slide \"
data - cycle - log = \ " false \"
data - cycle - auto - height = \ " 0 \"
data - cycle - speed = \ " 300 \"
data - cycle - timeout = \ " 5000 \"
data - cycle - fx = \ " fade \"
data - pager - active - class = \ " active-slide \"
data - cycle - swipe = true
data - cycle - swipe - fx = \ " scrollHorz \"
> " +
event_carousel_images . collect do | e |
" <div class= \" w-ba-banner__slide event_carousel_slide \"
data - cycle - title = \ " #{ e [ 'description_text' ] } \"
>
< img class = \ " w-ba-banner__image banner-responsive \" src= \" #{ e [ 'src' ] } \" alt= \" #{ e [ 'description_text' ] } \" >
< div class = \ " ad-overlay w-ad-banner__overlay event_carousel__overlay \" >
< p > < strong class = \ " carousel__description \" > #{ e [ 'description' ] } </strong></p>
< / div>
< div class = \ " transitionfade \" ></div>
< / div>"
end . join +
" </div>
< ul class = \ " controlplay \" ><a class= \" resume-slide \" title = \" #{ data [ 'resume_btn_title' ] } \" ><i></i></a><a class= \" pause-slide \" title = \" #{ data [ 'pause_btn_title' ] } \" ><i></i></a></ul>
< ul class = \ " button-mid \" >
< i class = \ " fa fa-angle-left prev-button \" aria-hidden= \" true \" title = \" #{ data [ 'prev_btn_title' ] } \" ></i>
< i class = \ " fa fa-angle-right next-button \" aria-hidden= \" true \" title = \" #{ data [ 'next_btn_title' ] } \" ></i>
< / ul>
< / div>
< div style = \ " position: relative; \" >
< h4 > < span class = \ " active_slide \" >1</span>/ #{ data [ 'carousel_count' ] } </h4>
< ul class = \ " carousel_images_slide w-annc__list row list-unstyled \" data-level= \" 0 \" data-list= \" event_carousel_images \" > " +
event_carousel_images . collect do | e |
" <li class= \" carousel_img_item col-sm-3 \" >
< div class = \ " carousel_img-wrap \" >
< img class = \ " carousel_img \" src= \" #{ e [ 'src' ] } \" alt= \" #{ e [ 'description_text' ] } \" >
< / div>
< / li>"
end . join +
" </ul>
< ul class = \ " button-mid \" >
< i class = \ " fa fa-angle-left prev-button prev_img \" aria-hidden= \" true \" title = \" #{ data [ 'prev_btn_title' ] } \" ></i>
< i class = \ " fa fa-angle-right next-button next_img \" aria-hidden= \" true \" title = \" #{ data [ 'next_btn_title' ] } \" ></i>
< / ul>
< / div>
< / div>").html_safe
end
2024-09-26 13:33:08 +00:00
def self . enable_manually_sort
if defined? ( OrbitHelper :: SharedHash ) && OrbitHelper :: SharedHash
OrbitHelper :: SharedHash [ 'event_news_mod' ] [ :enable_manually_sort ]
else
EventNewsSetting . first . enable_manually_sort rescue false
end
end
def self . is_postdate_sort_first
if defined? ( OrbitHelper :: SharedHash ) && OrbitHelper :: SharedHash
OrbitHelper :: SharedHash [ 'event_news_mod' ] [ :is_postdate_sort_first ]
else
EventNewsSetting . first . is_postdate_sort_first rescue false
end
end
2020-07-22 02:23:36 +00:00
end