diff options
author | Zach Copley <zach@controlyourself.ca> | 2009-01-11 07:03:59 +0000 |
---|---|---|
committer | Zach Copley <zach@controlyourself.ca> | 2009-01-11 07:03:59 +0000 |
commit | 689be142158dae5af1516cb38b947f0364d725dd (patch) | |
tree | 5abdea40b707a4e84b12826e9dc295eb3867b616 /actions | |
parent | f0436655c8644844b3f37d722a120df3b0727575 (diff) |
trac750 - Facebook app now uses XMLWriter for output (much cleaner!)
Diffstat (limited to 'actions')
-rw-r--r-- | actions/facebookhome.php | 109 | ||||
-rw-r--r-- | actions/facebookinvite.php | 25 | ||||
-rw-r--r-- | actions/facebooksettings.php | 66 |
3 files changed, 91 insertions, 109 deletions
diff --git a/actions/facebookhome.php b/actions/facebookhome.php index 6206fb6c2..4e67494f0 100644 --- a/actions/facebookhome.php +++ b/actions/facebookhome.php @@ -28,75 +28,73 @@ class FacebookhomeAction extends FacebookAction { parent::handle($args); - $this->login(); - } - - function login() - { - - $user = null; - $facebook = get_facebook(); $fbuid = $facebook->require_login(); - # check to see whether there's already a Facebook link for this user - $flink = Foreign_link::getByForeignID($fbuid, 2); // 2 == Facebook + // Check to see whether there's already a Facebook link for this user + $flink = Foreign_link::getByForeignID($fbuid, FACEBOOK_SERVICE); if ($flink) { - - $user = $flink->getUser(); - $this->show_home($facebook, $fbuid, $user); - + $this->showHome($flink, null); } else { + $this->login($fbuid); + } - # Make the user put in her Laconica creds - $nickname = common_canonical_nickname($this->trimmed('nickname')); - $password = $this->arg('password'); + } - if ($nickname) { + function login($fbuid) + { + $nickname = common_canonical_nickname($this->trimmed('nickname')); + $password = $this->arg('password'); - if (common_check_user($nickname, $password)) { + $msg = null; + if ($nickname) { - $user = User::staticGet('nickname', $nickname); + if (common_check_user($nickname, $password)) { - if (!$user) { - echo '<fb:error message="Coudln\'t get user!" />'; - $this->show_login_form(); - } + $user = User::staticGet('nickname', $nickname); - $flink = DB_DataObject::factory('foreign_link'); - $flink->user_id = $user->id; - $flink->foreign_id = $fbuid; - $flink->service = 2; # Facebook - $flink->created = common_sql_now(); - $flink->set_flags(true, false, false); + if (!$user) { + $this->showLoginForm(_("Server error - couldn't get user!")); + } - $flink_id = $flink->insert(); + $flink = DB_DataObject::factory('foreign_link'); + $flink->user_id = $user->id; + $flink->foreign_id = $fbuid; + $flink->service = FACEBOOK_SERVICE; + $flink->created = common_sql_now(); + $flink->set_flags(true, false, false); - if ($flink_id) { - echo '<fb:success message="You can now use Identi.ca from Facebook!" />'; - } + $flink_id = $flink->insert(); - $this->show_home($facebook, $fbuid, $user); + // XXX: Do some error handling here - return; - } else { - echo '<fb:error message="Incorrect username or password." />'; - } - } + $this->showHome($flink, _('You can now use Identi.ca from Facebook!')); - $this->show_login_form(); + } else { + $msg = _('Incorrect username or password.'); + } } + $this->showLoginForm($msg); } - function show_home($facebook, $fbuid, $user) + function showHome($flink, $msg) { - $this->show_header('Home'); + if ($msg) { + common_element('fb:success', array('message' => $msg)); + } + + $facebook = get_facebook(); + $fbuid = $facebook->require_login(); + + $user = $flink->getUser(); + echo $this->show_notices($user); + $this->update_profile_box($facebook, $fbuid, $user); $this->show_footer(); @@ -112,25 +110,16 @@ class FacebookhomeAction extends FacebookAction $notice = $user->noticesWithFriends(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); - echo '<ul id="notices">'; - - $cnt = 0; - - while ($notice->fetch() && $cnt <= NOTICES_PER_PAGE) { - $cnt++; + $cnt = $this->show_notice_list($notice); - if ($cnt > NOTICES_PER_PAGE) { - break; - } - - echo $this->render_notice($notice); - } - - echo '<ul>'; - - $this->pagination($page > 1, $cnt > NOTICES_PER_PAGE, - $page, 'index.php', array('nickname' => $user->nickname)); + common_pagination($page > 1, $cnt > NOTICES_PER_PAGE, + $page, 'all', array('nickname' => $user->nickname)); + } + function show_notice_list($notice) + { + $nl = new NoticeList($notice); + return $nl->show(); } } diff --git a/actions/facebookinvite.php b/actions/facebookinvite.php index 0b966cf26..b3653c78b 100644 --- a/actions/facebookinvite.php +++ b/actions/facebookinvite.php @@ -40,17 +40,20 @@ class FacebookinviteAction extends FacebookAction $this->show_header('Invite'); - $fbml = '<fb:request-form ' - .'action="invite.php" ' - .'method="POST" ' - .'invite="true" ' - .'type="Identi.ca" ' - .'content="You have been invited to Identi.ca! ' - . htmlentities('<fb:req-choice url="http://apps.facebook.com/identica_app/" label="Add"/>') . '">' - .'<fb:multi-friend-selector showborder="false" actiontext="Invite your friends to use Identi.ca.">' - .'</fb:request-form>'; - - echo $fbml; + $content = 'You have been invited to Identi.ca! ' . + htmlentities('<fb:req-choice url="http://apps.facebook.com/identica_app/" label="Add"/>'); + + common_element_start('fb:request-form', array('action' => 'invite.php', + 'method' => 'POST', + 'invite' => 'true', + 'type' => 'Identi.ca', + 'content' => $content)); + + $actiontext = 'Invite your friends to use Identi.ca.'; + common_element_start('fb:multi-friend-selector', array('showborder' => 'false', + 'actiontext' => $actiontext)); + + common_element_end('fb:request-form'); $this->show_footer(); diff --git a/actions/facebooksettings.php b/actions/facebooksettings.php index d28b1aa5c..88364c797 100644 --- a/actions/facebooksettings.php +++ b/actions/facebooksettings.php @@ -35,7 +35,6 @@ class FacebooksettingsAction extends FacebookAction } } - function save_settings() { $noticesync = $this->arg('noticesync'); @@ -44,68 +43,59 @@ class FacebooksettingsAction extends FacebookAction $facebook = get_facebook(); $fbuid = $facebook->require_login(); - $flink = Foreign_link::getByForeignID($fbuid, 2); // 2 == Facebook + $flink = Foreign_link::getByForeignID($fbuid, FACEBOOK_SERVICE); $original = clone($flink); $flink->set_flags($noticesync, $replysync, false); $result = $flink->update($original); if ($result) { - echo '<fb:success message="Sync preferences saved." />'; + $this->show_form('Sync preferences saved.', true); + } else { + $this->show_form('There was a problem saving your sync preferences!'); } - - $this->show_form(); - } - function show_form() { + function show_form($msg = null, $success = false) { $facebook = get_facebook(); $fbuid = $facebook->require_login(); - $flink = Foreign_link::getByForeignID($fbuid, 2); // 2 == Facebook + $flink = Foreign_link::getByForeignID($fbuid, FACEBOOK_SERVICE); - $this->show_header('Settings'); + $this->show_header('Settings', $msg, $success); - $fbml = '<fb:if-section-not-added section="profile">' - .'<h2>Add an Identi.ca box to my profile</h2>' - .'<p><fb:add-section-button section="profile"/></p>' - .'</fb:if-section-not-added>'; + common_element_start('fb:if-section-not-added', array('section' => 'profile')); + common_element('h2', null, _('Add an Identi.ca box to my profile')); + common_element_start('p'); + common_element('fb:add-section-button', array('section' => 'profile')); + common_element_end('p'); + common_element_end('fb:if-section-not-added'); - $fbml .= '<p><fb:prompt-permission perms="status_update"><h2>Allow Identi.ca to update my Facebook status</h2></fb:prompt-permission></p>'; + common_element_start('p'); + common_element_start('fb:prompt-permission', array('perms' => 'status_update')); + common_element('h2', null, _('Allow Identi.ca to update my Facebook status')); + common_element_end('fb:prompt-permission'); + common_element_end('p'); if ($facebook->api_client->users_hasAppPermission('status_update')) { - $fbml .= '<form method="post" id="facebook_settings">' - .'<h2>Sync preferences</h2>' - .'<p>'; + common_element_start('form', array('method' => 'post', + 'id' => 'facebook_settings')); - if ($flink->noticesync & FOREIGN_NOTICE_SEND) { - $fbml .= '<input name="noticesync" type="checkbox" class="checkbox" id="noticesync" checked="checked"/>'; - } else { - $fbml .= '<input name="noticesync" type="checkbox" class="checkbox" id="noticesync">'; - } + common_element('h2', null, _('Sync preferences')); - $fbml .= '<label class="checkbox_label" for="noticesync">Automatically update my Facebook status with my notices.</label>' - .'</p>' - .'<p>'; + common_checkbox('noticesync', _('Automatically update my Facebook status with my notices.'), + ($flink) ? ($flink->noticesync & FOREIGN_NOTICE_SEND) : true); - if ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) { - $fbml .= '<input name="replysync" type="checkbox" class="checkbox" id="replysync" checked="checked"/>'; - } else { - $fbml .= '<input name="replysync" type="checkbox" class="checkbox" id="replysync"/>'; - } + common_checkbox('replysync', _('Send local "@" replies to Facebook.'), + ($flink) ? ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) : true); - $fbml .= '<label class="checkbox_label" for="replysync">Send "@" replies to Facebook.</label>' - .'</p>' - .'<p>' - .'<input type="submit" id="save" name="save" class="submit" value="Save"/>' - .'</p>' - .'</form>'; + common_submit('save', _('Save')); - } + common_element_end('form'); - echo $fbml; + } $this->show_footer(); } |