Fix routes and url schema and UTF-8

This commit is contained in:
Manson Wang 2014-04-01 16:37:43 +08:00
parent a54e19ea18
commit e3b25c1ae5
7 changed files with 19 additions and 29 deletions

2
.gitignore vendored
View File

@ -14,3 +14,5 @@
# Ignore all logfiles and tempfiles.
/log/*.log
/tmp
/Gemfile.lock

View File

@ -14,7 +14,7 @@ gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
gem 'announcement', path: '/Volumes/MyData/github/orbit4.5/announcement'
gem 'announcement', git: 'git@gitlab.tp.rulingcom.com:saurabh/announcement-test.git'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
@ -43,4 +43,4 @@ end
# gem 'capistrano', group: :development
# Use debugger
gem 'debugger', group: [:development, :test]
gem 'debugger', '>= 1.6.6', group: [:development, :test]

View File

@ -17,29 +17,21 @@ class PagesController < ApplicationController
end
def show
page = Page.find_by_param(params[:page_id]) rescue nil
page = Page.find_by_param(params[:page_id])
module_app = page.module.downcase.pluralize
params[:target_controller] = "#{module_app}"
@manifest = @key
@dataApi = nil
OrbitHelper.set_params params
OrbitHelper.set_site_locale locale
if params[:slug]
params[:target_action] = "show"
params[:uid] = params[:slug].split("-").last
else
params[:target_action] = "index"
params[:url] = page.url
render render_final_page("#{module_app}/show",page)
end
def moduleShow
page = Page.find_by_param(params[:page_id])
params[:target_action] = "show"
params[:uid] = params[:uid]
module_app = page.module.downcase.pluralize
params[:target_controller] = "#{module_app}"
@manifest = @key
@dataApi = nil
OrbitHelper.set_params params
OrbitHelper.set_site_locale locale
render render_final_page("#{module_app}/show",page)
render render_final_page("#{module_app}/#{params[:target_action]}",page)
end
def preview
@ -82,7 +74,7 @@ class PagesController < ApplicationController
@layout_html = nil
@file = File.join('../templates', "#{@key}", '/home/page.html.erb')
@layout_html = render_to_string(@file)
doc = Nokogiri::HTML(@layout_html)
doc = Nokogiri::HTML(@layout_html, nil, "UTF-8")
@part_partials.each do |key, partial|
html_string = ""

View File

@ -32,7 +32,7 @@ module ApplicationHelper
key = Template::KEY
menu_file = File.open(File.join(Rails.root, 'app', 'templates', "#{key}", '/home/menu.html.erb'))
doc = Nokogiri::HTML(menu_file)
doc = Nokogiri::HTML(menu_file, nil, "UTF-8")
menu_file.close
temp = []
@ -50,7 +50,7 @@ module ApplicationHelper
temp.each_with_index do |menu,i|
t = Nokogiri::HTML(menu)
t = Nokogiri::HTML(menu, nil, "UTF-8")
a = t.css("*[data-menu-link='true']")
a[0]["href"] = "href_here"
li = t.css("*[data-menu-level='#{i}'] > *")
@ -83,7 +83,7 @@ module ApplicationHelper
def render_view
if params[:target_action] == "index"
file = File.open(File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', params[:target_controller], "#{params[:target_action]}.html.erb"))
doc = Nokogiri::HTML(file)
doc = Nokogiri::HTML(file, nil, "UTF-8")
file.close
wrap_elements = doc.css("*[data-module]")
controller = "#{params[:target_controller].capitalize}Controller".classify.constantize.new
@ -103,7 +103,7 @@ module ApplicationHelper
doc.to_s.html_safe
elsif params[:target_action] == "show"
file = File.open(File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', params[:target_controller], "#{params[:target_action]}.html.erb"))
doc = Nokogiri::HTML(file)
doc = Nokogiri::HTML(file, nil, "UTF-8")
file.close
wrap_element_html = doc.to_s
html_to_render = ""

View File

@ -8,7 +8,7 @@ module OrbitHelper
end
def self.url_to_show(uid,title)
"/#{self.get_site_locale.to_s}#{@params[:url]}/#{uid}/#{title.parameterize}"
"/#{self.get_site_locale.to_s}#{@params[:url]}/#{title}--#{uid}"
end
def self.set_site_locale(locale)

View File

@ -2,7 +2,7 @@ module PagesHelper
def parse_pp_tags(file)
opened_file = File.open(file)
doc = Nokogiri::HTML(opened_file)
doc = Nokogiri::HTML(opened_file, nil, "UTF-8")
opened_file.close
pps = doc.css("*[data-pp]")
pps.each do |pp|
@ -13,7 +13,7 @@ module PagesHelper
def render_widget_for_frontend(controller_name, widget_method, widget_file)
file = File.open(File.join(Rails.root, 'app', 'templates', "#{Template::KEY}", 'modules', "#{controller_name}", "_#{widget_file}.html.erb"))
doc = Nokogiri::HTML(file)
doc = Nokogiri::HTML(file, nil, "UTF-8")
file.close
wrap_elements = doc.css("*[data-repeat]")
controller = "#{controller_name.capitalize}Controller".classify.constantize.new

View File

@ -18,11 +18,7 @@ OrbitStore::Application.routes.draw do
# You can have the root of your site routed with "root"
root 'home#index'
scope "(:locale)", locale: /en|zh_tw/ do
get ':page_id(/:page_id(/:page_id))', to: 'pages#show'
get ':page_id(/:uid(/:slug))', to: 'pages#moduleShow'
get ':page_id(/:page_id(/:uid(/:slug)))', to: 'pages#moduleShow'
get ':page_id(/:page_id(/:page_id(/:uid(/:slug))))', to: 'pages#moduleShow'
get ':page_id(/:page_id((/:page_id)/:slug))', to: 'pages#show'
resources :pages
end
# Example of regular route: