Development

/plugins/sfFacebookConnectPlugin/trunk/lib/helper/sfFacebookConnectHelper.php

You must first sign up to be able to contribute.

root/plugins/sfFacebookConnectPlugin/trunk/lib/helper/sfFacebookConnectHelper.php

Revision 23021, 4.1 kB (checked in by fabriceb, 4 years ago)

[sfFacebookConnectPlugin] jQuery/Prototype loading of Facebook Connect

Line 
1 <?php
2
3
4 /**
5  *
6  * @param string $on_load_js
7  * @author fabriceb
8  * @since May 27, 2009 fabriceb
9  */
10 function include_bottom_facebook_connect_script($on_load_js = '')
11 {
12   if (sfFacebook::isJsLoaded())
13   {
14     return;
15   }
16   ?>
17   <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/<?php echo sfFacebook::getLocale() ?>" type="text/javascript"></script>
18   <script src="<?php echo javascript_path('/sfFacebookConnectPlugin/js/sfFacebookConnect') ?>" type="text/javascript"></script>
19
20   <script type="text/javascript">
21     //<![CDATA[
22     var sf_fb = null;
23 <?php
24     $html = '';
25     switch(sfConfig::get('app_facebook_js_framework'))
26     {
27       case 'jQuery':
28         $html .= '
29           jQuery(function(){'.init_sf_fb().$on_load_js.' });
30         ';
31         break;
32       case 'prototype':
33         $html .= '
34           document.observe("dom:loaded", function(){'.init_sf_fb().$on_load_js.' });
35         ';
36         break;
37       case 'none':
38       default:
39         $html .= '
40           window.onload = function() { '.init_sf_fb().$on_load_js.' };
41         ';
42         break;
43     }
44     echo $html;
45 ?>
46     //]]>
47   </script>
48   <?php
49   sfFacebook::setJsLoaded();
50 }
51
52 /**
53  *
54  * @author fabriceb
55  * @since May 27, 2009 fabriceb
56  */
57 function include_facebook_connect_script()
58 {
59   if (sfFacebook::isJsLoaded())
60   {
61     return;
62   }
63   ?>
64   <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/<?php echo sfFacebook::getLocale() ?>" type="text/javascript"></script>
65   <script src="<?php echo javascript_path('/sfFacebookConnectPlugin/js/sfFacebookConnect') ?>" type="text/javascript"></script>
66
67   <script type="text/javascript">
68     //<![CDATA[
69     if (typeof sf_fb == 'undefined')
70     {
71       <?php echo init_sf_fb(); ?>
72     }
73     //]]>
74   </script>
75   <?php
76   sfFacebook::setJsLoaded();
77 }
78
79 /**
80  *
81  * @author fabriceb
82  * @since May 27, 2009 fabriceb
83  */
84 function include_facebook_connect_script_src()
85 {
86   if (sfFacebook::isJsLoaded())
87   {
88     return;
89   }
90   ?>
91   <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/<?php echo sfFacebook::getLocale() ?>" type="text/javascript"></script>
92   <script src="<?php echo javascript_path('/sfFacebookConnectPlugin/js/sfFacebookConnect') ?>" type="text/javascript"></script>
93   <?php
94   sfFacebook::setJsLoaded();
95 }
96
97 function init_sf_fb()
98 {
99   return "sf_fb = new sfFacebookConnect('".sfConfig::get('app_facebook_api_key')."', '".url_for(sfConfig::get('app_facebook_connect_signin_url','sfFacebookConnectAuth/signin'))."');";
100 }
101
102
103 /**
104  *
105  * @param string $forward a url to forward to
106  * @return string
107  * @author fabriceb
108  * @since May 22, 2009 fabriceb
109  */
110 function facebook_connect_button($forward = '', $callback = '', $options = array())
111 {
112   $default_options =
113     array(
114       'size' => 'medium',
115       'bg'   => 'light',
116       'format' => 'short'
117     );
118   $options = array_merge($default_options, $options);
119
120   $js_arguments = array("'".rawurlencode($forward)."'");
121   if ($callback != '')
122   {
123     array_push($js_arguments,$callback);
124   }
125
126   $html =
127   '
128   <script type="text/javascript">
129     //<![CDATA[
130     function fb_button_click()
131     {
132       if (typeof sf_fb == "undefined")
133       {';
134  
135  
136   switch(sfConfig::get('app_facebook_js_framework'))
137   {
138     case 'jQuery':
139       $html .= '
140         jQuery(function(){sf_fb.requireSession('.implode(',',$js_arguments).'); });
141       ';
142       break;
143     case 'prototype':
144       $html .= '
145         document.observe("dom:loaded", function(){sf_fb.requireSession('.implode(',',$js_arguments).'); });
146       ';
147       break;
148     case 'none':
149     default:
150       $html .= '
151         window.onload = function() { sf_fb.requireSession('.implode(',',$js_arguments).'); };
152       ';
153       break;
154   }
155  
156  
157   $html .=
158       '
159       }
160       else
161       {
162         sf_fb.requireSession('.implode(',',$js_arguments).');
163       }
164       
165       return false;
166     }
167     //]]>
168   </script>
169  
170   <a href="#" onclick="return fb_button_click();">'.
171     image_tag(
172       '/sfFacebookConnectPlugin/images/fb_'.$options['bg'].'_'.$options['size'].'_'.$options['format'].'.gif',
173       array(
174         'id' => 'fb_login_image',
175         'alt' => 'Facebook Connect'
176       )
177     ).
178   '</a>';
179
180   return $html;
181 }
182
Note: See TracBrowser for help on using the browser.