From 689be142158dae5af1516cb38b947f0364d725dd Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Sun, 11 Jan 2009 07:03:59 +0000 Subject: trac750 - Facebook app now uses XMLWriter for output (much cleaner!) --- actions/facebookhome.php | 109 +++++++++++++++++++------------------------ actions/facebookinvite.php | 25 +++++----- actions/facebooksettings.php | 66 +++++++++++--------------- 3 files changed, 91 insertions(+), 109 deletions(-) (limited to 'actions') 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 ''; - $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 ''; - } + $flink_id = $flink->insert(); - $this->show_home($facebook, $fbuid, $user); + // XXX: Do some error handling here - return; - } else { - echo ''; - } - } + $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 '
    '; - - $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 '
      '; - - $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 = '') . '">' - .'' - .''; - - echo $fbml; + $content = 'You have been invited to Identi.ca! ' . + htmlentities(''); + + 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 ''; + $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 = '' - .'

      Add an Identi.ca box to my profile

      ' - .'

      ' - .'
      '; + 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 .= '

      Allow Identi.ca to update my Facebook status

      '; + 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 .= '
      ' - .'

      Sync preferences

      ' - .'

      '; + common_element_start('form', array('method' => 'post', + 'id' => 'facebook_settings')); - if ($flink->noticesync & FOREIGN_NOTICE_SEND) { - $fbml .= ''; - } else { - $fbml .= ''; - } + common_element('h2', null, _('Sync preferences')); - $fbml .= '' - .'

      ' - .'

      '; + 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 .= ''; - } else { - $fbml .= ''; - } + common_checkbox('replysync', _('Send local "@" replies to Facebook.'), + ($flink) ? ($flink->noticesync & FOREIGN_NOTICE_SEND_REPLY) : true); - $fbml .= '' - .'

      ' - .'

      ' - .'' - .'

      ' - .'
      '; + common_submit('save', _('Save')); - } + common_element_end('form'); - echo $fbml; + } $this->show_footer(); } -- cgit v1.2.3-54-g00ecf