Compare commits

...

3 Commits
master ... dev

Author SHA1 Message Date
rulingcom b255a407ae css fixes 2025-08-14 19:07:38 +08:00
rulingcom 4dcf74d9ac update for frontend 2025-07-30 22:37:11 +08:00
rulingcom 490a371a69 new hashtags 2025-07-30 12:44:10 +08:00
8 changed files with 58 additions and 19 deletions

View File

@ -4,4 +4,4 @@
*/ */
.table .expired{ .table .expired{
color: #BE2E2E; color: #BE2E2E;
} }

View File

@ -150,3 +150,19 @@ ul.button-mid .next-button {
.next-button,.prev-button{ .next-button,.prev-button{
cursor: pointer; cursor: pointer;
} }
a.orbit-hash-tag {
list-style: none;
background: #e0edff;
color: #0a84ff;
margin-right: 0.5em;
border-radius: 0.5em;
padding: 0.2em 0.5em;
margin-bottom: 0.5em;
display: inline-block;
&:hover{
background: #0a84ff;
transform: translatey(-2px);
transition: transform 0.4s;
color: #fff;
}
}

View File

@ -689,4 +689,6 @@
.s-event_news__social .print-button:hover { .s-event_news__social .print-button:hover {
background-color: lighten($theme-color-main, 10%); background-color: lighten($theme-color-main, 10%);
} }
} }

View File

@ -103,7 +103,8 @@ class EventNewsModsController < ApplicationController
"img_src" => image_url || DefaultImgSrc, "img_src" => image_url || DefaultImgSrc,
"img_description" => desc, "img_description" => desc,
"more" => t("event_news.more"), "more" => t("event_news.more"),
"view_count" => a.view_count "view_count" => a.view_count,
"orbithashtags" => a.hashtags_for_frontend
} }
else else
a a
@ -516,6 +517,9 @@ class EventNewsModsController < ApplicationController
if tags.blank? if tags.blank?
tags = ["all"] tags = ["all"]
end end
if OrbitHelper.params["hash"].present?
hashtag = OrbitHelper.params["hash"]
end
subpart = OrbitHelper.get_current_widget subpart = OrbitHelper.get_current_widget
widget_data_count = OrbitHelper.widget_data_count widget_data_count = OrbitHelper.widget_data_count
event_news_cache = EventNewsCache.where(parent_id: subpart.id.to_s + cats.to_s + tags.to_s + widget_data_count.to_s,locale: I18n.locale.to_s) event_news_cache = EventNewsCache.where(parent_id: subpart.id.to_s + cats.to_s + tags.to_s + widget_data_count.to_s,locale: I18n.locale.to_s)
@ -724,7 +728,8 @@ class EventNewsModsController < ApplicationController
"carousel_display_style" => (event_carousel_images.count == 0 ? 'display: none' : "width: #{event_news.carousel_image_width};margin: auto;"), "carousel_display_style" => (event_carousel_images.count == 0 ? 'display: none' : "width: #{event_news.carousel_image_width};margin: auto;"),
"carousel_count" => event_carousel_images.count, "carousel_count" => event_carousel_images.count,
"place_text" => (event_news.place.blank? ? "" : "#{EventNewsCustomTitle.get_trans("place")}: #{event_news.place}"), "place_text" => (event_news.place.blank? ? "" : "#{EventNewsCustomTitle.get_trans("place")}: #{event_news.place}"),
"place-css" => (event_news.place.blank? ? "display: none;" : "") "place-css" => (event_news.place.blank? ? "display: none;" : ""),
"orbithashtags" => event_news.hashtags_for_frontend
}, },
"impressionist" => (event_news.is_preview ? nil : event_news), "impressionist" => (event_news.is_preview ? nil : event_news),
"url_to_edit"=>url_to_edit "url_to_edit"=>url_to_edit

View File

@ -199,10 +199,15 @@ module EventNewsHelper
event_news = @show_today_data_first ? event_news = @show_today_data_first ?
EventNews.can_display_and_sorted_according_today : EventNews.can_display_and_sorted_according_today :
EventNews.can_display_and_sorted EventNews.can_display_and_sorted
if params["orbithashtag"].present?
event_news = event_news event_news = event_news
.filter_by_categories(categories, false).filter_by_hashtag(OrbitHelper.page_hashtag_id)
.where(:title.nin => ["",nil])
else
event_news = event_news
.filter_by_categories(categories, false).filter_by_tags(tags) .filter_by_categories(categories, false).filter_by_tags(tags)
.where(:title.nin => ["",nil]) .where(:title.nin => ["",nil])
end
if @type == "show_widget" if @type == "show_widget"
if !params[:uids].blank? if !params[:uids].blank?
member_profile = MemberProfile.any_in(:uid=>params[:uids]) member_profile = MemberProfile.any_in(:uid=>params[:uids])
@ -255,14 +260,14 @@ module EventNewsHelper
tmp1 ? 0 : 1, tmp1 ? nil : event_news["event_date"].to_time, tmp1 ? 0 : 1, tmp1 ? nil : event_news["event_date"].to_time,
tmp2 ? 0 : 1, tmp2 ? nil : event_news["postdate"].to_time tmp2 ? 0 : 1, tmp2 ? nil : event_news["postdate"].to_time
] ]
} }
end end
if !@show_today_data_first if !@show_today_data_first
event_news_list = event_news_list.reverse event_news_list = event_news_list.reverse
end end
else else
if enable_manually_sort if enable_manually_sort
event_news_list = event_news_list.sort_by { |event_news| event_news_list = event_news_list.sort_by { |event_news|
tmp1 = event_news["event_date"].blank? tmp1 = event_news["event_date"].blank?
tmp2 = event_news["postdate"].blank? tmp2 = event_news["postdate"].blank?
[ [
@ -272,7 +277,7 @@ module EventNewsHelper
] ]
}.reverse }.reverse
else else
event_news_list = event_news_list.sort_by { |event_news| event_news_list = event_news_list.sort_by { |event_news|
tmp1 = event_news["event_date"].blank? tmp1 = event_news["event_date"].blank?
tmp2 = event_news["postdate"].blank? tmp2 = event_news["postdate"].blank?
[ [
@ -309,7 +314,7 @@ module EventNewsHelper
if wrap_elements.count > 0 if wrap_elements.count > 0
htmls = parsing_repeats_again(wrap_elements,d[data_name][i], level + 1) htmls = parsing_repeats_again(wrap_elements,d[data_name][i], level + 1)
htmls[0].each_with_index do |html,i| htmls[0].each_with_index do |html,i|
element = element.gsub(html,htmls[1][i]) element = element.gsub(html,htmls[1][i])
end end
end end
item.each do |key,value| item.each do |key,value|
@ -345,11 +350,11 @@ module EventNewsHelper
doc = Nokogiri::HTML(file, nil, "UTF-8") doc = Nokogiri::HTML(file, nil, "UTF-8")
file.close file.close
controller = EventNewsController.new controller = EventNewsController.new
begin begin
data = @data# rescue nil data = @data# rescue nil
rescue Exception => e rescue Exception => e
write_debug_file(e,'event_news_mod',@target_action) if Site::DEBUG write_debug_file(e,'event_news_mod',@target_action) if Site::DEBUG
end end
if !data.nil? if !data.nil?
wrap_elements = doc.css("*[data-list][data-level='0']") wrap_elements = doc.css("*[data-list][data-level='0']")
htmls = parsing_repeats_again(wrap_elements,data,1) htmls = parsing_repeats_again(wrap_elements,data,1)
@ -382,11 +387,11 @@ module EventNewsHelper
doc = Nokogiri::HTML(file, nil, "UTF-8") doc = Nokogiri::HTML(file, nil, "UTF-8")
file.close file.close
controller = EventNewsController.new controller = EventNewsController.new
begin begin
data = @data# rescue nil data = @data# rescue nil
rescue Exception => e rescue Exception => e
write_debug_file(e,'event_news_mod',@target_action) if Site::DEBUG write_debug_file(e,'event_news_mod',@target_action) if Site::DEBUG
end end
if data.nil? if data.nil?
return "<div class='well'> No content to show. </div>".html_safe return "<div class='well'> No content to show. </div>".html_safe
end end
@ -491,8 +496,8 @@ module EventNewsHelper
if layout_types.empty? if layout_types.empty?
Dir.glob("#{Rails.root}/app/templates/#{@key}/modules/#{module_app}/*").each do |w| Dir.glob("#{Rails.root}/app/templates/#{@key}/modules/#{module_app}/*").each do |w|
next if File.ftype(w).eql?("directory") next if File.ftype(w).eql?("directory")
w = File.basename(w, ".*") w = File.basename(w, ".*")
w = File.basename(w, ".*") w = File.basename(w, ".*")
if w[0,1] != "_" && w[0,1] != "s" && w != "info" if w[0,1] != "_" && w[0,1] != "s" && w != "info"
layout_types << w layout_types << w
end end
@ -525,7 +530,7 @@ module EventNewsHelper
<p><strong class=\"carousel__description\">#{e['description']}</strong></p> <p><strong class=\"carousel__description\">#{e['description']}</strong></p>
</div> </div>
<div class=\"transitionfade\"></div> <div class=\"transitionfade\"></div>
</div>" </div>"
end.join+ end.join+
"</div> "</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=\"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>

View File

@ -6,6 +6,7 @@ class EventNews
include OrbitModel::Impression include OrbitModel::Impression
# encoding: utf-8 # encoding: utf-8
include OrbitTag::Taggable include OrbitTag::Taggable
include OrbitHashtag::Hashtaggable
include OrbitCategory::Categorizable include OrbitCategory::Categorizable
include Slug include Slug
require 'event_news_mod/cache' require 'event_news_mod/cache'

View File

@ -54,6 +54,7 @@
<li><a href="#status" data-toggle="tab"><%= t(:status) %></a></li> <li><a href="#status" data-toggle="tab"><%= t(:status) %></a></li>
<% end %> <% end %>
<li><a href="#tag" data-toggle="tab"><%= t(:tags) %></a></li> <li><a href="#tag" data-toggle="tab"><%= t(:tags) %></a></li>
<li><a href="#hashtag" data-toggle="tab"><%= t(:hashtags) %></a></li>
<li><a href="#imageupload" data-toggle="tab"><%= t('event_news.image') %></a></li> <li><a href="#imageupload" data-toggle="tab"><%= t('event_news.image') %></a></li>
<li><a href="#carousel_image_upload" data-toggle="tab" title="<%= t('event_news.carousel_image_title') %>"><%= t('event_news.carousel_image') %></a></li> <li><a href="#carousel_image_upload" data-toggle="tab" title="<%= t('event_news.carousel_image_title') %>"><%= t('event_news.carousel_image') %></a></li>
<li><a href="#mail-group" data-toggle="tab"><%= t('event_news.email_reminder')%></a></li> <li><a href="#mail-group" data-toggle="tab"><%= t('event_news.email_reminder')%></a></li>
@ -275,6 +276,14 @@
</div> </div>
</div> </div>
<!-- Hashtag Module -->
<div class="tab-pane fade" id="hashtag">
<div class="control-group">
<label class="control-label muted"><%= t(:hashtags) %></label>
<%= select_hashtags(f, @module_app) %>
</div>
</div>
<!-- Images Module --> <!-- Images Module -->
<div class="tab-pane fade" id="imageupload"> <div class="tab-pane fade" id="imageupload">

View File

@ -125,6 +125,7 @@ module EventNewsMod
widget_methods ["widget","random_event_news_widget", "tag_cloud"] widget_methods ["widget","random_event_news_widget", "tag_cloud"]
widget_settings [{"data_count"=>30}] widget_settings [{"data_count"=>30}]
taggable "EventNews" taggable "EventNews"
hashtaggable "EventNews"
categorizable categorizable
authorizable authorizable
frontend_enabled frontend_enabled