structure.css -> default.css

Themes are optional, a theme overrides style in default.css
This commit is contained in:
chris2tof 2011-09-05 15:18:36 +08:00
parent f4b1d1e182
commit 151f005815
11 changed files with 29 additions and 33 deletions

View File

@ -94,26 +94,23 @@ class Admin::DesignsController < ApplicationController
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
when /\A(#{zip_name})\/(default\.css)\z/ #for default 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
temp_file = File.new(dir + '/' + filename, 'w+')
temp_file.write (zip_file.read entry ).force_encoding('UTF-8')
design.default_css = temp_file
when /\A(#{zip_name})\/(layout\.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
temp_file = File.new(dir + '/' + filename, 'w+')
temp_file.write (zip_file.read entry ).force_encoding('UTF-8')
design.layout.file = temp_file
design.layout.to_save=true
when /\A(#{zip_name})\/(themes)\/.*(\.css)\z/
#for themes css
when /\A(#{zip_name})\/(themes)\/.*(\.css)\z/ #for themes css
themes_entries << entry
when /\A(#{zip_name})\/(javascripts)\/.*(\.js)\z/
#for js
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

View File

@ -23,7 +23,6 @@ class Admin::PagesController < ApplicationController
@item.parent_id = @parent_item.id rescue nil
@designs = Design.all.entries
@default_design = Design.first
@default_theme = @default_design.themes.detect {|t| t.name.to_s == 'default' }
end
def edit
@ -90,7 +89,6 @@ class Admin::PagesController < ApplicationController
def reload_themes
@design = Design.find(params[:id])
@themes = @design.themes
@default_theme = @themes.detect {|t| t.name.to_s == 'default' }
respond_to do |format|
format.js {}
end

View File

@ -64,10 +64,10 @@ class Admin::PurchasesController < ApplicationController
design.layout.file = temp
design.layout.to_save = true
title = design.structure_css_filename
title = design.default_css_filename
temp = File.new(dir + '/' + title, 'w+')
temp.write orig_zip.read(zip_name + '/' + title)
design.structure_css = temp
design.default_css = temp
['themes', 'javascripts', 'images'].each do |type|
design.send(type).each do |object|

View File

@ -15,7 +15,7 @@ class Design
has_many :pages
embeds_one :layout
mount_uploader :structure_css, AssetUploader
mount_uploader :default_css, AssetUploader
embeds_many :themes
embeds_many :javascripts

View File

@ -1,7 +1,7 @@
class Page < Item
field :content
field :theme_id, :type => BSON::ObjectId
field :theme_id, :type => BSON::ObjectId, :default => nil
belongs_to :design
has_many :page_parts

View File

@ -26,11 +26,11 @@
<% end %>
</p>
<p>
<%= f.label "structure_css", t('admin.structure_css') %>
<% if @design.structure_css.blank? %>
<%= f.file_field :structure_css %>
<%= f.label "default_css", t('admin.default_css') %>
<% if @design.default_css.blank? %>
<%= f.file_field :default_css %>
<% else%>
<%= File.basename (@design.structure_css.url) %>
<%= File.basename (@design.default_css.url) %>
<% end %>
</p>
<p>

View File

@ -27,7 +27,7 @@
<% if @design %>
<%= f.select :theme_id, @design.themes.collect { |t| [t.name.capitalize, t.id] }%>
<% else %>
<%= f.select :theme_id, @default_design.themes.collect { |t| [t.name.capitalize, t.id] }, :selected => @default_theme.id %>
<%= f.select :theme_id, @default_design.themes.collect { |t| [t.name.capitalize, t.id] }, :include_blank => true %>
<% end %>
</p>

View File

@ -0,0 +1,2 @@
<option></option>
<%= options_from_collection_for_select(@themes, :id, :name) %>

View File

@ -1 +1 @@
$('#page_theme_id').html("<%= escape_javascript(options_from_collection_for_select(@themes, :id, :name, @default_theme.id )) %>");
$('#page_theme_id').html("<%= escape_javascript(render :partial => 'admin/pages/themes_ddl') %>");

View File

@ -10,9 +10,8 @@ Package content:
My_design.zip
- info.json
- layout.html
- structure.css
- themes
- default.css
- themes
- blue.css
- red.css
- javascripts

View File

@ -65,7 +65,7 @@ module Parser
end
c.define_tag 'stylesheets' do |tag|
res = ''
res << "<link href='#{page.design.structure_css.url}' rel='stylesheet' type='text/css' /> "
res << "<link href='#{page.design.default_css.url}' rel='stylesheet' type='text/css' /> "
theme = page.design.themes.detect{ |d| d.id == page.theme_id }
res << "<link href='#{theme.file.url}' rel='stylesheet' type='text/css' />"
end
@ -173,7 +173,7 @@ module Parser
end
c.define_tag 'stylesheets' do |tag|
res = ''
res << "<link href='#{page.design.structure_css.url}' rel='stylesheet' type='text/css' />"
res << "<link href='#{page.design.default_css.url}' rel='stylesheet' type='text/css' />"
theme = page.design.themes.detect{ |d| d.id == page.theme_id }
res << "<link href='#{theme.file.url}' rel='stylesheet' type='text/css' />"
end
@ -226,7 +226,7 @@ module Parser
res << menu.values["class_#{current}"]
res << ">"
i = nil
i = 1 if menu.values["li_recursive_#{current}"]
i = 1 if menu.values["li_incremental_#{current}"]
if current == 1 && menu.values['home'].eql?('true')
res << menu_li(page, current, menu, i)
i += 1 if i
@ -267,7 +267,7 @@ module Parser
layout.build_menu(:levels => 0, :values => {}) unless layout.menu
layout.menu.levels = i = tag.attr['level'].to_i
layout.menu.values.merge!({'home' => tag.attr['home']}) if i == 1
layout.menu.values.merge!({"id_#{i}" => tag.attr['id'], "class_#{i}" => tag.attr['class'], "li_class_#{i}" => tag.attr['li_class'], "li_recursive_#{i}" => tag.attr['li_recursive']})
layout.menu.values.merge!({"id_#{i}" => tag.attr['id'], "class_#{i}" => tag.attr['class'], "li_class_#{i}" => tag.attr['li_class'], "li_incremental_#{i}" => tag.attr['li_incremental']})
layout.menu.save
tag.expand
end