import form wp xml now available
This commit is contained in:
parent
e6852a91ad
commit
673afd2f5a
|
@ -67,6 +67,15 @@ class Admin::AnnouncementsController < OrbitAdminController
|
|||
redirect_to admin_announcements_path
|
||||
end
|
||||
|
||||
def import
|
||||
end
|
||||
|
||||
|
||||
def import_from_wp
|
||||
import_from_wordpress params["import_xml"].tempfile
|
||||
redirect_to admin_announcements_path
|
||||
end
|
||||
|
||||
def importanns
|
||||
workbook = RubyXL::Parser.parse(params["import_file"].tempfile)
|
||||
categories = @module_app.categories.asc(:created_at).to_a
|
||||
|
|
|
@ -210,6 +210,50 @@ module Admin::AnnouncementsHelper
|
|||
File.delete(file)
|
||||
end
|
||||
|
||||
def import_from_wordpress(xmlfile)
|
||||
xml_file = File.read(xmlfile)
|
||||
doc = Nokogiri::XML.parse(xml_file)
|
||||
|
||||
doc.xpath("//channel").each do|channel_data|
|
||||
channel_data.xpath('//item').each do|itme|
|
||||
bu = Bulletin.new
|
||||
bu.approved = true
|
||||
bu.title_translations = {"en" => itme.xpath('title').text, "zh_tw" => itme.xpath('title').text}
|
||||
bu.text_translations = {"en" => itme.xpath('content:encoded').text, "zh_tw" => itme.xpath('content:encoded').text}
|
||||
bu.postdate = itme.xpath('wp:post_date').text
|
||||
|
||||
itme.xpath('category').each do |i_cate|
|
||||
if i_cate["domain"].to_s == "category"
|
||||
|
||||
cat = @module_app.categories.where(:title => i_cate.text.to_s).first rescue nil
|
||||
if cat.nil?
|
||||
cat = Category.new
|
||||
cat.module_app = @module_app
|
||||
cat.title_translations = {"en" => i_cate.text.to_s, "zh_tw" => i_cate.text.to_s}
|
||||
cat.save
|
||||
end
|
||||
|
||||
bu.category = cat
|
||||
|
||||
elsif i_cate["domain"].to_s == "post_tag"
|
||||
|
||||
tag = Tag.where(:name => i_cate.text.to_s )
|
||||
if tag.nil? == false
|
||||
tag = Tag.new
|
||||
tag.name_translations = {"en" => i_cate.text.to_s, "zh_tw" => i_cate.text.to_s}
|
||||
tag.module_app_ids << @module_app.id
|
||||
tag.save
|
||||
end
|
||||
|
||||
bu.tags=tag
|
||||
end
|
||||
end
|
||||
bu.save
|
||||
end
|
||||
end
|
||||
File.delete(xmlfile)
|
||||
end
|
||||
|
||||
def load_access_level
|
||||
if (current_user.is_admin? rescue false)
|
||||
@access_level = "admin"
|
||||
|
|
|
@ -38,6 +38,24 @@
|
|||
</div>
|
||||
<% end %>
|
||||
</form>
|
||||
|
||||
|
||||
<!-- import from wp xml -->
|
||||
<form action="<%= admin_announcement_import_from_wp_path %>" method="post" class="form-horizontal main-forms" id="import-anns-wp-xml" enctype="multipart/form-data">
|
||||
<h3 style="padding-left: 30px;">Import from Word Press XML</h3>
|
||||
<%= hidden_field_tag :authenticity_token, form_authenticity_token %>
|
||||
<div class="input-area">
|
||||
<div class="control-group">
|
||||
<label for="import-anns-wp-xml" class="control-label muted">Upload :</label>
|
||||
<div class="controls">
|
||||
<input type="file" id="import-anns-wp-xml" name="import_xml" data-fv-validation="required;mustbexml;" data-fv-messages="Cannot be empty; Must be an XML file.;" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-actions">
|
||||
<input type="submit" value="Import" class="btn btn-primary">
|
||||
</div>
|
||||
</form>
|
||||
<!-- <form action="<%= admin_announcement_import_from_xml_path %>" method="post" class="form-horizontal main-forms" id="import-anns-xml" enctype="multipart/form-data">
|
||||
<h3 style="padding-left: 30px;">Import from XML</h3>
|
||||
<%#= hidden_field_tag :authenticity_token, form_authenticity_token %>
|
||||
|
@ -60,4 +78,10 @@
|
|||
ext = t[t.length - 1];
|
||||
return (ext == "xls" || ext == "xlsx")
|
||||
}
|
||||
var form = new FormValidator($("#import-anns-wp-xml"));
|
||||
form.validate_functions.mustbexml = function(val){
|
||||
var t = val.split("."),
|
||||
ext = t[t.length - 1];
|
||||
return (ext == "xml")
|
||||
}
|
||||
</script>
|
|
@ -20,6 +20,7 @@ Rails.application.routes.draw do
|
|||
get 'announcement/import', to: 'announcements#import'
|
||||
post 'announcement/createsettings', to: 'announcements#createsettings'
|
||||
patch 'announcement/updatesettings', to: 'announcements#updatesettings'
|
||||
post 'announcement/import_from_wp', to: 'announcements#import_from_wp'
|
||||
resources :announcements
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue