parent
a570be1811
commit
f78400c274
|
@ -22,55 +22,6 @@ class Admin::DesignsController < ApplicationController
|
|||
temp_file.close
|
||||
end
|
||||
end
|
||||
def unzip_design(file, zip_name)
|
||||
Zip::ZipFile.open(file) { |zip_file|
|
||||
design = Design.new.from_json(zip_file.read("#{zip_name}/info.json"))
|
||||
Dir.mktmpdir('f_path') { |dir|
|
||||
design.build_layout
|
||||
themes_entries = []
|
||||
javascripts_entries = []
|
||||
images_entries = []
|
||||
#dir/zip_name
|
||||
#dir/zip_name
|
||||
zip_file.entries.each do |entry|
|
||||
case (path = entry.to_s)
|
||||
when /\A(#{zip_name})\/[^\/]*(\.css)\z/ #for structure css
|
||||
filename = File.basename(entry.to_s)
|
||||
temp_file4structure = File.new(dir + '/' + filename, 'w+')
|
||||
temp_file4structure.write (zip_file.read entry ).force_encoding('UTF-8')
|
||||
design.structure_css = temp_file4structure
|
||||
when /\A(#{zip_name})\/[^\/]*(\.html)\z/ #for layout html
|
||||
filename = File.basename(entry.to_s)
|
||||
temp_file4layout = File.new(dir + '/' + filename, 'w+')
|
||||
temp_file4layout.write (zip_file.read entry ).force_encoding('UTF-8')
|
||||
design.layout.file = temp_file4layout
|
||||
design.layout.to_save=true
|
||||
when /\A(#{zip_name})\/(themes)\/.*(\.css)\z/
|
||||
#for themes css
|
||||
themes_entries << entry
|
||||
when /\A(#{zip_name})\/(javascripts)\/.*(\.js)\z/
|
||||
#for js
|
||||
javascripts_entries << entry
|
||||
when /\A(#{zip_name})\/(images)\/.*((\.jpg)|(\.png)|(\.gif))\z/ #for img
|
||||
images_entries << entry
|
||||
end
|
||||
end
|
||||
|
||||
['themes', 'javascripts', 'images'].each do |type|
|
||||
eval("#{type}_entries").each do |entry|
|
||||
filename = File.basename entry.to_s
|
||||
temp_file = File.new(dir + '/' + filename, 'w+')
|
||||
temp_file.write (zip_file.read entry).force_encoding('UTF-8')
|
||||
build_and_store = eval("design.#{type}").build
|
||||
build_and_store.file = temp_file
|
||||
build_and_store.file_filename = filename
|
||||
build_and_store.to_save = true
|
||||
end
|
||||
end
|
||||
}
|
||||
design.save
|
||||
}
|
||||
end
|
||||
|
||||
def index
|
||||
@designs = Design.all.entries
|
||||
|
@ -133,4 +84,56 @@ class Admin::DesignsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def unzip_design(file, zip_name)
|
||||
Zip::ZipFile.open(file) { |zip_file|
|
||||
design = Design.new.from_json(zip_file.read("#{zip_name}/info.json"))
|
||||
Dir.mktmpdir('f_path') { |dir|
|
||||
design.build_layout
|
||||
themes_entries = []
|
||||
javascripts_entries = []
|
||||
images_entries = []
|
||||
#dir/zip_name
|
||||
#dir/zip_name
|
||||
zip_file.entries.each do |entry|
|
||||
case (path = entry.to_s)
|
||||
when /\A(#{zip_name})\/[^\/]*(\.css)\z/ #for structure css
|
||||
filename = File.basename(entry.to_s)
|
||||
temp_file4structure = File.new(dir + '/' + filename, 'w+')
|
||||
temp_file4structure.write (zip_file.read entry ).force_encoding('UTF-8')
|
||||
design.structure_css = temp_file4structure
|
||||
when /\A(#{zip_name})\/[^\/]*(\.html)\z/ #for layout html
|
||||
filename = File.basename(entry.to_s)
|
||||
temp_file4layout = File.new(dir + '/' + filename, 'w+')
|
||||
temp_file4layout.write (zip_file.read entry ).force_encoding('UTF-8')
|
||||
design.layout.file = temp_file4layout
|
||||
design.layout.to_save=true
|
||||
when /\A(#{zip_name})\/(themes)\/.*(\.css)\z/
|
||||
#for themes css
|
||||
themes_entries << entry
|
||||
when /\A(#{zip_name})\/(javascripts)\/.*(\.js)\z/
|
||||
#for js
|
||||
javascripts_entries << entry
|
||||
when /\A(#{zip_name})\/(images)\/.*((\.jpg)|(\.png)|(\.gif))\z/ #for img
|
||||
images_entries << entry
|
||||
end
|
||||
end
|
||||
|
||||
['themes', 'javascripts', 'images'].each do |type|
|
||||
eval("#{type}_entries").each do |entry|
|
||||
filename = File.basename entry.to_s
|
||||
temp_file = File.new(dir + '/' + filename, 'w+')
|
||||
temp_file.write (zip_file.read entry).force_encoding('UTF-8')
|
||||
build_and_store = eval("design.#{type}").build
|
||||
build_and_store.file = temp_file
|
||||
build_and_store.file_filename = filename
|
||||
build_and_store.to_save = true
|
||||
end
|
||||
end
|
||||
}
|
||||
design.save
|
||||
}
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Reference in New Issue