forked from saurabh/orbit4-5
now the external links open in new browser window and internal links open in same window. also now internal links are independent of the host
This commit is contained in:
parent
ce525719b7
commit
6bb2708b82
|
@ -1,7 +1,7 @@
|
||||||
# pass the layout=false for not rendering the layouts and also can specify the methods to in the backend controller.
|
# pass the layout=false for not rendering the layouts and also can specify the methods to in the backend controller.
|
||||||
# data-layout-content="arrayname" in layouts can be used to render data in the array
|
# data-layout-content="arrayname" in layouts can be used to render data in the array
|
||||||
require 'zhconv'
|
require 'zhconv'
|
||||||
|
require "uri"
|
||||||
class PagesController < ApplicationController
|
class PagesController < ApplicationController
|
||||||
before_action :get_key
|
before_action :get_key
|
||||||
layout :get_layout
|
layout :get_layout
|
||||||
|
@ -308,6 +308,10 @@ class PagesController < ApplicationController
|
||||||
@url = page.url + "/#{params[:page][:page_id]}"
|
@url = page.url + "/#{params[:page][:page_id]}"
|
||||||
p = params.require(:page).permit(:number, :page_type, :page_id, :module, :layout, :parent_page, :data_count, :enabled_for_mobile, enabled_for_sitemap: [], enabled_for: [], menu_enabled_for: [], categories: [], tags: [], name_translations: [:en, :zh_tw],external_url_translations: [:en, :zh_tw])
|
p = params.require(:page).permit(:number, :page_type, :page_id, :module, :layout, :parent_page, :data_count, :enabled_for_mobile, enabled_for_sitemap: [], enabled_for: [], menu_enabled_for: [], categories: [], tags: [], name_translations: [:en, :zh_tw],external_url_translations: [:en, :zh_tw])
|
||||||
p["url"] = @url
|
p["url"] = @url
|
||||||
|
if p["external_url_translations"]
|
||||||
|
p["external_url_translations"]["en"] = p["external_url_translations"]["en"].sub("http://" + request.host_with_port,"")
|
||||||
|
p["external_url_translations"]["zh_tw"] = p["external_url_translations"]["zh_tw"].sub("http://" + request.host_with_port,"")
|
||||||
|
end
|
||||||
p
|
p
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -316,6 +320,10 @@ class PagesController < ApplicationController
|
||||||
p["enabled_for"] = p["enabled_for"] || []
|
p["enabled_for"] = p["enabled_for"] || []
|
||||||
p["menu_enabled_for"] = p["menu_enabled_for"] || []
|
p["menu_enabled_for"] = p["menu_enabled_for"] || []
|
||||||
p["enabled_for_mobile"] = p["enabled_for_mobile"] || 0
|
p["enabled_for_mobile"] = p["enabled_for_mobile"] || 0
|
||||||
|
if p["external_url_translations"]
|
||||||
|
p["external_url_translations"]["en"] = p["external_url_translations"]["en"].sub("http://" + request.host_with_port,"")
|
||||||
|
p["external_url_translations"]["zh_tw"] = p["external_url_translations"]["zh_tw"].sub("http://" + request.host_with_port,"")
|
||||||
|
end
|
||||||
p
|
p
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -93,17 +93,18 @@ module ApplicationHelper
|
||||||
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url, "children"=>create_json(page.sorted_published_child_pages_for_mobile), "target" => "_self"}
|
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url, "children"=>create_json(page.sorted_published_child_pages_for_mobile), "target" => "_self"}
|
||||||
end
|
end
|
||||||
elsif page.page_type == "link"
|
elsif page.page_type == "link"
|
||||||
|
target = get_target(page.external_url)
|
||||||
if $mobile.blank?
|
if $mobile.blank?
|
||||||
item["#{page.name}"] = {"url"=> page.external_url, "children"=>create_json(page.sorted_published_child_pages), "target" => "_blank"}
|
item["#{page.name}"] = {"url"=> page.external_url, "children"=>create_json(page.sorted_published_child_pages), "target" => target}
|
||||||
else
|
else
|
||||||
item["#{page.name}"] = {"url"=> page.external_url, "children"=>create_json(page.sorted_published_child_pages_for_mobile), "target" => "_blank"}
|
item["#{page.name}"] = {"url"=> page.external_url, "children"=>create_json(page.sorted_published_child_pages_for_mobile), "target" => target}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if page.page_type == "page"
|
if page.page_type == "page"
|
||||||
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url, "target" => "_self"}
|
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url, "target" => "_self"}
|
||||||
elsif page.page_type == "link"
|
elsif page.page_type == "link"
|
||||||
item["#{page.name}"] = {"url"=> page.external_url, "target" => "_blank"}
|
item["#{page.name}"] = {"url"=> page.external_url, "target" => get_target(page.external_url)}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -455,4 +456,13 @@ module ApplicationHelper
|
||||||
html
|
html
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_target(link)
|
||||||
|
temp_url = URI.parse(link)
|
||||||
|
target = "_blank"
|
||||||
|
if temp_url.host.nil?
|
||||||
|
target = "_self"
|
||||||
|
end
|
||||||
|
target
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -16,7 +16,19 @@
|
||||||
<label class="control-label">Url (<%= t(locale.to_s) %>) :</label>
|
<label class="control-label">Url (<%= t(locale.to_s) %>) :</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<%= f.fields_for :external_url_translations do |n| %>
|
<%= f.fields_for :external_url_translations do |n| %>
|
||||||
<%= n.text_field locale, :value=>@page.external_url_translations[locale] rescue nil %>
|
<%
|
||||||
|
if params[:action] == "edit"
|
||||||
|
temp_url = @page.external_url_translations[locale]
|
||||||
|
temp_url = URI.parse(temp_url)
|
||||||
|
url = ""
|
||||||
|
if temp_url.host.nil?
|
||||||
|
url = "http://" + request.host_with_port + @page.external_url_translations[locale]
|
||||||
|
else
|
||||||
|
url = @page.external_url_translations[locale]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
%>
|
||||||
|
<%= n.text_field locale, :value=>url rescue nil %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
Loading…
Reference in New Issue