* 'master' of http://github.com/mixr/facebooker2:
  - the async call needs to load into the body, otherwise FB.ui doesn't work in "dialog" mode - facebook also recommends loading into the front of the body:   http://developers.facebook.com/docs/reference/javascript/FB.init
  added methods fb_concat and fb_html_safe   -> use concat or not, depending on rails version   -> use html_safe when available
  fixed version check
  make fb_connect_async_js return a html_safe string for rails 3
  use :locale parameter in options to set locale of fb-connect javascript assets

Conflicts:
	lib/facebooker2/rails/helpers/javascript.rb
This commit is contained in:
W. Andrew Loe III 2010-08-24 01:00:51 -07:00
commit 0937d2ba9d

View File

@ -2,6 +2,13 @@ module Facebooker2
module Rails module Rails
module Helpers module Helpers
module Javascript module Javascript
def fb_concat(str)
if ::Rails::VERSION::STRING.to_i > 2
str
else
concat(str)
end
end
def fb_html_safe(str) def fb_html_safe(str)
if str.respond_to?(:html_safe) if str.respond_to?(:html_safe)
@ -16,6 +23,7 @@ module Facebooker2
cookie = opts[:cookie] cookie = opts[:cookie]
status = opts[:status] status = opts[:status]
xfbml = opts[:xfbml] xfbml = opts[:xfbml]
locale = options[:locale] || "en_US"
extra_js = capture(&proc) if block_given? extra_js = capture(&proc) if block_given?
js = <<-JAVASCRIPT js = <<-JAVASCRIPT
<script> <script>
@ -34,13 +42,13 @@ module Facebooker2
s.setAttribute('id','fb-root'); s.setAttribute('id','fb-root');
document.documentElement.getElementsByTagName("body")[0].appendChild(s); document.documentElement.getElementsByTagName("body")[0].appendChild(s);
var e = document.createElement('script'); var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; e.src = document.location.protocol + '//connect.facebook.net/#{locale}/all.js';
e.async = true; e.async = true;
s.appendChild(e); s.appendChild(e);
}()); }());
</script> </script>
JAVASCRIPT JAVASCRIPT
js fb_html_safe(block_given? ? fb_concat(js) : js)
end end
end end
end end