]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/facebookinvite.php
whitespace and formatting in showstream.php
[quix0rs-gnu-social.git] / actions / facebookinvite.php
index 48a820e44bae8dfb3c821d2750dce272e3a045d8..1302064ad7fc6c8b33f540c3c8eb4df06beaccc3 100644 (file)
@@ -27,23 +27,120 @@ class FacebookinviteAction extends FacebookAction
     function handle($args)
     {
         parent::handle($args);
+        $this->showForm();
+    }
+
+    /**
+     * Wrapper for showing a page
+     *
+     * Stores an error and shows the page
+     *
+     * @param string $error Error, if any
+     *
+     * @return void
+     */
+
+    function showForm($error=null)
+    {
+        $this->error = $error;
+        $this->showPage();
+    }
 
-        $this->display();
+    /**
+     * Show the page content
+     *
+     * Either shows the registration form or, if registration was successful,
+     * instructions for using the site.
+     *
+     * @return void
+     */
+
+    function showContent()
+    {
+        if ($this->arg('ids')) {
+            $this->showSuccessContent();
+        } else {
+            $this->showFormContent();
+        }
     }
 
-    function display()
+    function showSuccessContent()
     {
 
-        $facebook = $this->get_facebook();
+        $this->element('h2', null, sprintf(_('Thanks for inviting your friends to use %s'), 
+            common_config('site', 'name')));
+        $this->element('p', null, _('Invitations have been sent to the following users:'));
 
-        $fbuid = $facebook->require_login();
+        $friend_ids = $_POST['ids']; // XXX: Hmm... is this the best way to access the list?
 
-        $this->show_header('Invite');
+        $this->elementStart('ul', array('id' => 'facebook-friends'));
 
-        echo '<h2>Coming soon...</h2>';
+        foreach ($friend_ids as $friend) {
+            $this->elementStart('li');
+            $this->element('fb:profile-pic', array('uid' => $friend, 'size' => 'square'));
+            $this->element('fb:name', array('uid' => $friend,
+                                            'capitalize' => 'true'));
+            $this->elementEnd('li');
+        }
 
-        $this->show_footer();
+        $this->elementEnd("ul");
 
     }
 
+    function showFormContent()
+    {
+
+        // Get a list of users who are already using the app for exclusion
+        $exclude_ids = $this->facebook->api_client->friends_getAppUsers();
+        $exclude_ids_csv = null;
+        
+        // fbml needs these as a csv string, not an array
+        if ($exclude_ids) {
+            $exclude_ids_csv = implode(',', $exclude_ids);
+        }
+
+        $content = sprintf(_('You have been invited to %s'), common_config('site', 'name')) .
+            htmlentities('<fb:req-choice url="' . $this->app_uri . '" label="Add"/>');
+
+        $this->elementStart('fb:request-form', array('action' => 'invite.php',
+                                                      'method' => 'post',
+                                                      'invite' => 'true',
+                                                      'type' => common_config('site', 'name'),
+                                                      'content' => $content));
+        $this->hidden('invite', 'true');
+        $actiontext = sprintf(_('Invite your friends to use %s'), common_config('site', 'name'));
+        
+        $multi_params = array('showborder' => 'false');    
+        $multi_params['actiontext'] = $actiontext;
+        
+        if ($exclude_ids_csv) {
+            $multi_params['exclude_ids'] = $exclude_ids_csv;
+        }
+
+        $multi_params['bypass'] = 'cancel';
+                
+        $this->element('fb:multi-friend-selector', $multi_params);
+
+        $this->elementEnd('fb:request-form');
+
+        $this->element('h2', null, sprintf(_('Friends already using %s:'), 
+            common_config('site', 'name')));
+        $this->elementStart('ul', array('id' => 'facebook-friends'));
+        
+        foreach ($exclude_ids as $friend) {
+            $this->elementStart('li');
+            $this->element('fb:profile-pic', array('uid' => $friend, 'size' => 'square'));
+            $this->element('fb:name', array('uid' => $friend,
+                                            'capitalize' => 'true'));
+            $this->elementEnd('li');
+        }
+
+        $this->elementEnd("ul");
+    }
+    
+    function title() 
+    {
+        return sprintf(_('Send invitations'));
+    }
+
 }