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/facebookhome.php | |
parent | f0436655c8644844b3f37d722a120df3b0727575 (diff) |
trac750 - Facebook app now uses XMLWriter for output (much cleaner!)
Diffstat (limited to 'actions/facebookhome.php')
-rw-r--r-- | actions/facebookhome.php | 109 |
1 files changed, 49 insertions, 60 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(); } } |