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.
|
||||
# data-layout-content="arrayname" in layouts can be used to render data in the array
|
||||
require 'zhconv'
|
||||
|
||||
require "uri"
|
||||
class PagesController < ApplicationController
|
||||
before_action :get_key
|
||||
layout :get_layout
|
||||
|
@ -308,6 +308,10 @@ class PagesController < ApplicationController
|
|||
@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["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
|
||||
end
|
||||
|
||||
|
@ -316,6 +320,10 @@ class PagesController < ApplicationController
|
|||
p["enabled_for"] = p["enabled_for"] || []
|
||||
p["menu_enabled_for"] = p["menu_enabled_for"] || []
|
||||
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
|
||||
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"}
|
||||
end
|
||||
elsif page.page_type == "link"
|
||||
target = get_target(page.external_url)
|
||||
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
|
||||
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
|
||||
else
|
||||
if page.page_type == "page"
|
||||
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url, "target" => "_self"}
|
||||
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
|
||||
|
@ -455,4 +456,13 @@ module ApplicationHelper
|
|||
html
|
||||
end
|
||||
|
||||
def get_target(link)
|
||||
temp_url = URI.parse(link)
|
||||
target = "_blank"
|
||||
if temp_url.host.nil?
|
||||
target = "_self"
|
||||
end
|
||||
target
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -16,7 +16,19 @@
|
|||
<label class="control-label">Url (<%= t(locale.to_s) %>) :</label>
|
||||
<div class="controls">
|
||||
<%= 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 %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
|
Loading…
Reference in New Issue