Improve the browse helper code use to generate wiki links

This commit is contained in:
Tom Hughes 2010-04-20 19:04:12 +01:00
parent da74fbb769
commit d6755356e0
3 changed files with 25 additions and 32 deletions

View file

@ -16,41 +16,34 @@ module BrowseHelper
return name
end
def wiki_link(type, key, tag)
wiki_data = YAML.load_file("#{RAILS_ROOT}/config/wiki-tag-and-key-description.yml")
my_locale = I18n.locale.to_s
if type == "key"
ret = key
lookup = key
def format_key(key)
if url = wiki_link("key", key)
link_to h(key), url, :title => t('browse.tag_details.wiki_link.key', :key => key)
else
ret = tag
lookup = key + "=" + tag
h(key)
end
# Try our native language
has_primary = wiki_data[my_locale][type][lookup] rescue false
if has_primary
ret = wikify(type, key, tag, lookup, wiki_data[my_locale][type][lookup])
else
# Fall back on English
has_fallback = wiki_data["en"][type][lookup] rescue false
if has_fallback
ret = wikify(type, key, tag, lookup, wiki_data["en"][type][lookup])
end
end
return ret
end
def wikify(type, key, tag, text, wiki)
my_locale = I18n.locale
url = "http://wiki.openstreetmap.org/wiki/#{wiki}?uselang=#{my_locale}"
if type == "key"
return '<a href="' + url + '" title="' + h(t('browse.tag_details.wiki_link.key', :key => key)) + '">' + h(text) + '</a>'
def format_value(key, value)
if url = wiki_link("tag", "#{key}=#{value}")
link_to h(value), url, :title => t('browse.tag_details.wiki_link.tag', :key => key, :value => value)
else
return '<a href="' + url + '" title="' + h(t('browse.tag_details.wiki_link.tag', :key => key, :value => tag)) + '">' + h(tag) + '</a>'
linkify h(value)
end
end
private
def wiki_link(type, lookup)
wiki_data = YAML.load_file("#{RAILS_ROOT}/config/wiki-tag-and-key-description.yml")
locale = I18n.locale.to_s
if page = wiki_data[locale][type][lookup] rescue nil
url = "http://wiki.openstreetmap.org/wiki/#{page}?uselang=#{locale}"
elsif page = wiki_data["en"][type][lookup] rescue nil
url = "http://wiki.openstreetmap.org/wiki/#{page}?uselang=#{locale}"
end
return url
end
end