module RecruitNewsMod class Engine < ::Rails::Engine initializer "recruit_news_mod" do Rails.application.config.to_prepare do require "yaml" begin translate_data = Dir["#{RecruitNewsMod::Engine.root}/config/locales/*.yml"] .map{|yaml_file| YAML.load(File.read(yaml_file))} data = {} key1 = {} key2 = {} key3 = {} key4 = {} key5 = {} key1_attr = [] key2_attr = [] key3_attr = [] key4_attr = [] data_item = {} key_item1 = {} key_item2 = {} key_item3 = {} key_item4 = {} value_item1 = {} value_item2 = {} value_item3 = {} value_item4 = {} key1_options = ['small_size','medium_size','orignal_size'] key2_options = ['not_enable_tabs','enable_tabs_with_categories_include_all','enable_tabs_with_categories'] key3_options = ['default','upper_left','lower_left','upper_right','lower_right'] key4_options = ['the_same_as_data_count','display_all_in_other_tabs'] #After fix I18n.load_path, translation can work there yes_no_options = ['no_','yes_'].map{|v| I18n.available_locales.map{|k| I18n.with_locale(k){[k,I18n.t(v)]}}.to_h} key1_options.each_with_index do |k,i| key1_attr[i] = {} end key2_options.each_with_index do |k,i| key2_attr[i] = {} end key3_options.each_with_index do |k,i| key3_attr[i] = {} end key4_options.each_with_index do |k,i| key4_attr[i] = {} end translate_data.each do |t_data| v = t_data.values k = t_data.keys[0] key1[k] = v[0]['recruit_news']['picture_showing_size'] key2[k] = v[0]['recruit_news']['tabs_options'] key3[k] = v[0]['recruit_news']['read_more_position_options'] key4[k] = v[0]['recruit_news']['all_tabs_setting'] key5[k] = v[0]['recruit_news']['show_today_data_first'] key1_options.each_with_index do |kk,i| key1_attr[i][k] = v[0]['recruit_news'][kk] end key2_options.each_with_index do |kk,i| key2_attr[i][k] = v[0]['recruit_news'][kk] end key3_options.each_with_index do |kk,i| key3_attr[i][k] = v[0]['recruit_news'][kk] end key4_options.each_with_index do |kk,i| key4_attr[i][k] = v[0]['recruit_news'][kk] end key_item1[k] = v[0]['recruit_news']['showing_back_and_next'] key_item2[k] = v[0]['recruit_news']['enable_search'] key_item3[k] = v[0]['recruit_news']['ad_banner_location'] value_item1[k] = v[0]['recruit_news']['not_show'] value_item2[k] = v[0]['recruit_news']['show_bottom'] value_item3[k] = v[0]['recruit_news']['show_top'] end key_item4 = key5 data[key1] = key1_attr data[key2] = key2_attr data[key3] = key3_attr data[key4] = key4_attr data[key5] = yes_no_options data_item[key_item1] = [value_item1,value_item2,value_item3] data_item[key_item2] = yes_no_options data_item[key_item3] = [value_item2,value_item3] data_item[key_item4] = yes_no_options data_item[key1] = key1_attr if ENV['worker_num']=='0' && File.basename($0) != 'rake' && !Rails.const_defined?('Console') require File.expand_path('../../../app/models/recruit_news_cache', __FILE__) if defined?(RecruitNewsCache) RecruitNewsCache.destroy_all end require File.expand_path('../../../app/models/recruit_news_custom_title', __FILE__) if defined? RecruitNewsCustomTitle RecruitNewsCustomTitle.get_map end end rescue => e puts ['error in recruit_news',e,e.backtrace] end if ENV['worker_num']=='0' && File.basename($0) != 'rake' && !Rails.const_defined?('Console') Thread.new do begin Migrate.call rescue => e puts ['recruit_news_mod',e, e.backtrace] end end end OrbitApp.registration "recruit_news_mod", :type => "ModuleApp" do db = ::Mongoid::Sessions.default collection = db[:module_apps] update_results = collection.update_many({key: 'recruit_news'},'$set'=>{key: 'recruit_news_mod', title: 'recruit_news_mod'}) if update_results.n != 0 puts "Updating recruit_news to recruit_news_mod!" collection = db[:pages] collection.update_many({:module=> 'recruit_news'},'$set'=>{:module=> 'recruit_news_mod'}) collection = db[:sub_parts] collection.update_many({:module=> 'recruit_news'},'$set'=>{:module=> 'recruit_news_mod'}) template_path = Rails.root.to_s + '/app/templates' all_template = Dir.glob(template_path+'/*/') all_template.each do |folder| Bundler.with_clean_env{system ("mkdir -p #{folder}modules/recruit_news_mod; cp -rf #{folder}modules/recruit_news/* #{folder}modules/recruit_news_mod/. && rm -rf #{folder}modules/recruit_news_mod/recruit_news")} end end module_label "recruit_news.recruit_news" base_url File.expand_path File.dirname(__FILE__) widget_methods ["widget","random_recruit_news_widget", "tag_cloud"] widget_settings [{"data_count"=>30}] taggable "RecruitNews" hashtaggable "RecruitNews" categorizable authorizable frontend_enabled feeds_url "/xhr/recruit_news/feeds" feeds_time_field (::RecruitNewsHelper.is_postdate_sort_first ? ['postdate', 'event_date'] : ['event_date', 'postdate']) data_count 1..30 begin show_options data show_option_items data_item rescue => e puts ['there_was_no_show_option_method',e] end if File.basename($0) != 'rake' begin avoid_page_cache RecruitNewsCache avoid_page_cache RecruitNewsFeedCache avoid_page_cache RecruitNewsFeed rescue => e puts ["avoid_page_cache", e.to_s] end end side_bar do head_label_i18n 'recruit_news.recruit_news', icon_class: "icons-megaphone" available_for "users" active_for_controllers (['admin/recruit_news']) head_link_path "admin_recruit_news_index_path" context_link 'recruit_news.all_articles', :link_path=>"admin_recruit_news_index_path" , :priority=>1, :active_for_action=>{'admin/recruit_news'=>'index'}, :available_for => 'users' context_link 'recruit_news.manually_sort', :link_path=>"edit_sort_admin_recruit_news_index_path" , :priority=>2, :active_for_action=>{'admin/recruit_news'=>'edit_sort'}, :available_for => 'managers' context_link 'new_', :link_path=>"new_admin_recruit_news_path" , :priority=>2, :active_for_action=>{'admin/recruit_news'=>'new'}, :available_for => 'sub_managers' context_link 'categories', :link_path=>"admin_module_app_categories_path" , :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'recruit_news_mod').id}", :priority=>3, :active_for_action=>{'admin/recruit_news'=>'categories'}, :active_for_category => 'RecruitNewsModule', :available_for => 'managers' context_link 'tags', :link_path=>"admin_module_app_tags_path" , :link_arg=>"{:module_app_id=>ModuleApp.find_by(:key=>'recruit_news_mod').id}", :priority=>4, :active_for_action=>{'admin/recruit_news'=>'tags'}, :active_for_tag => 'RecruitNewsModule', :available_for => 'managers' context_link 'recruit_news.custom_fields_title', :link_path=>"custom_fields_title_admin_recruit_news_index_path" , :priority=>5, :active_for_action=>{'admin/recruit_news'=>'custom_fields_title'}, :available_for => 'managers' context_link 'recruit_news.feed_list', :link_path=>"admin_recruit_news_feed_path" , :priority=>6, :active_for_action=>{'admin/recruit_news'=>'feed'}, :available_for => 'managers' context_link 'recruit_news.import', :link_path=>"admin_recruit_news_import_path" , :priority=>7, :active_for_action=>{'admin/recruit_news'=>'import'}, :available_for => 'managers' context_link 'recruit_news.settings', :link_path=>"admin_recruit_news_settings_path" , :priority=>8, :active_for_action=>{'admin/recruit_news'=>'settings'}, :available_for => 'managers' end end # temp = YAML.load_file(File.join(Rails.root,"config","mongoid.yml")) # dbsettings = temp["production"]["sessions"]["default"] # s = Moped::Session.new(dbsettings["hosts"]) # s.use dbsettings["database"] # s[:bulletins].indexes.create({expirable_created_at: 1},{ expireAfterSeconds: 180 }) end end end end