X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/8e404f3a468a2636481d52f245b816c41e9d5ac0..b40353b9b05350bccac09e136315f2fcb0093ca7:/app/helpers/browse_helper.rb diff --git a/app/helpers/browse_helper.rb b/app/helpers/browse_helper.rb index 793baf07b..a2d0e440d 100644 --- a/app/helpers/browse_helper.rb +++ b/app/helpers/browse_helper.rb @@ -1,3 +1,5 @@ +require "uri" + module BrowseHelper def printable_name(object, version = false) if object.id.is_a?(Array) @@ -133,17 +135,19 @@ module BrowseHelper return nil end - if value =~ /^([^#]*)(#.*)/ + if value =~ /^([^#]*)#(.*)/ # Contains a reference to a section of the wikipedia article # Must break it up to correctly build the url value = $1 - section = $2 + section = "#" + $2 + encoded_section = "#" + URI.encode($2.gsub(" ", "_")).gsub("%3A", ":").gsub("%", ".") else section = "" + encoded_section = "" end { - :url => "http://#{lang}.wikipedia.org/wiki/#{value}?uselang=#{I18n.locale}#{section}", + :url => "http://#{lang}.wikipedia.org/wiki/#{value}?uselang=#{I18n.locale}#{encoded_section}", :title => value + section } end @@ -160,7 +164,7 @@ module BrowseHelper def telephone_link(_key, value) # does it look like a phone number? eg "+1 (234) 567-8901 " ? - return nil unless value =~ /^\s*\+[\d\s\(\)\/\.-]{6,25}\s*$/ + return nil unless value =~ %r{^\s*\+[\d\s\(\)/\.-]{6,25}\s*$} # remove all whitespace instead of encoding it http://tools.ietf.org/html/rfc3966#section-5.1.1 # "+1 (234) 567-8901 " -> "+1(234)567-8901"