Commit be35b4641d099338b2b2b8b92138c7652d707f93
1 parent
1df5fcff
Exists in
master
and in
29 other branches
metadata: give url without redirects for profiles
Showing
3 changed files
with
26 additions
and
11 deletions
Show diff stats
plugins/metadata/lib/ext/profile.rb
... | ... | @@ -5,11 +5,8 @@ class Profile |
5 | 5 | metadata_spec namespace: :og, tags: { |
6 | 6 | type: proc{ |p, plugin| plugin.context.params[:og_type] || MetadataPlugin.og_types[:profile] || :profile }, |
7 | 7 | image: proc{ |p, plugin| "#{p.environment.top_url}#{p.image.public_filename}" if p.image }, |
8 | - title: proc{ |p, plugin| if p.nickname.present? then p.nickname else p.name end }, | |
9 | - url: proc do |p, plugin| | |
10 | - #force profile identifier for custom domains and fixed host. see og_url_for | |
11 | - plugin.og_url_for p.url.merge(profile: p.identifier) | |
12 | - end, | |
8 | + title: proc{ |p, plugin| if p.nickname.present? then p.nickname else p.name end }, | |
9 | + url: proc{ |p, plugin| plugin.og_url_for plugin.og_profile_url(p) }, | |
13 | 10 | description: proc{ |p, plugin| p.description }, |
14 | 11 | updated_time: proc{ |p, plugin| p.updated_at.iso8601 }, |
15 | 12 | 'locale:locale' => proc{ |p, plugin| p.environment.default_language }, | ... | ... |
plugins/metadata/lib/metadata_plugin/base.rb
... | ... | @@ -58,12 +58,7 @@ class MetadataPlugin::Base < Noosfero::Plugin |
58 | 58 | end |
59 | 59 | end |
60 | 60 | |
61 | - # context HELPERS | |
62 | - def og_url_for options | |
63 | - options.delete :port | |
64 | - options[:host] = self.class.config[:open_graph][:domain] rescue context.send(:environment).default_hostname | |
65 | - Noosfero::Application.routes.url_helpers.url_for options | |
66 | - end | |
61 | + include MetadataPlugin::UrlHelper | |
67 | 62 | |
68 | 63 | def helpers |
69 | 64 | self.context.class.helpers | ... | ... |
... | ... | @@ -0,0 +1,23 @@ |
1 | +module MetadataPlugin::UrlHelper | |
2 | + | |
3 | + def og_domain | |
4 | + MetadataPlugin.config[:open_graph][:domain] rescue context.send(:environment).default_hostname | |
5 | + end | |
6 | + | |
7 | + def og_url_for options | |
8 | + options.delete :port | |
9 | + options[:host] = self.og_domain | |
10 | + Noosfero::Application.routes.url_helpers.url_for options | |
11 | + end | |
12 | + | |
13 | + def og_profile_url profile | |
14 | + # open_graph client don't like redirects, give the exact url | |
15 | + if profile.home_page_id.present? | |
16 | + # force profile identifier for custom domains and fixed host. see og_url_for | |
17 | + profile.url.merge profile: profile.identifier | |
18 | + else | |
19 | + {controller: :profile, profile: profile.identifier} | |
20 | + end | |
21 | + end | |
22 | + | |
23 | +end | ... | ... |