function mytwconnect_usercp() { global $mybb, $lang, $inlinesuccess; // Load API in certain areas if (in_array($mybb->input['action'], array('twlink', 'do_twlink')) or $_SESSION['twlogin'] or $mybb->input['action'] == 'mytwconnect' and $mybb->request_method == 'post') { require_once MYBB_ROOT . "inc/plugins/MyTwitterConnect/class_twitter.php"; $TwitterConnect = new MyTwitter(); } $settingsToCheck = array('twavatar', 'twbio', 'twlocation'); if (!$lang->mytwconnect) { $lang->load('mytwconnect'); } // Authenticate if ($mybb->input['action'] == 'twlink') { $TwitterConnect->set_fallback('usercp.php?action=do_twlink'); $TwitterConnect->authenticate(); } // Link account to his Twitter's one if ($mybb->input['action'] == 'do_twlink') { $TwitterConnect->obtain_tokens(); $user = $TwitterConnect->get_user(); if ($user) { $TwitterConnect->link_user('', $user['id']); } else { error($lang->mytwconnect_error_noauth); } $TwitterConnect->redirect('usercp.php?action=mytwconnect', '', $lang->mytwconnect_success_linked); } // Settings page if ($mybb->input['action'] == 'mytwconnect') { global $db, $lang, $theme, $templates, $headerinclude, $header, $footer, $plugins, $usercpnav; add_breadcrumb($lang->nav_usercp, 'usercp.php'); add_breadcrumb($lang->mytwconnect_page_title, 'usercp.php?action=mytwconnect'); // The user is changing his settings if ($mybb->request_method == 'post' or $_SESSION['twlogin']) { if ($mybb->request_method == 'post') { verify_post_check($mybb->input['my_post_key']); } // He's unlinking his account if ($mybb->input['unlink']) { $TwitterConnect->unlink_user(); redirect('usercp.php?action=mytwconnect', $lang->mytwconnect_success_accunlinked, $lang->mytwconnect_success_accunlinked_title); } else { $settings = array(); foreach ($settingsToCheck as $setting) { $settings[$setting] = 0; if ($mybb->input[$setting] == 1) { $settings[$setting] = 1; } // Build a list of parameters to include in the fallback URL $loginUrlExtra .= "&{$setting}=" . $settings[$setting]; } // Process the tokens if ($_SESSION['twlogin']) { $TwitterConnect->obtain_tokens(); } $user = $TwitterConnect->get_user(); // This user is not logged in with Twitter if (!$user) { // Store a token in the session, we will check for it in the next call $_SESSION['twlogin'] = 1; $TwitterConnect->set_fallback("usercp.php?action=mytwconnect" . $loginUrlExtra); $TwitterConnect->authenticate(); return; } if ($db->update_query('users', $settings, 'uid = ' . (int) $mybb->user['uid'])) { unset($_SESSION['twlogin']); $newUser = array_merge($mybb->user, $settings); $TwitterConnect->sync($newUser, $user); redirect('usercp.php?action=mytwconnect', $lang->mytwconnect_success_settingsupdated, $lang->mytwconnect_success_settingsupdated_title); } } } $options = ''; if ($mybb->user['mytw_uid']) { // Checking if admins and users want to sync that stuff foreach ($settingsToCheck as $setting) { $tempKey = 'mytwconnect_' . $setting; if (!$mybb->settings[$tempKey]) { continue; } $userSettings[$setting] = 0; if ($mybb->user[$setting]) { $userSettings[$setting] = 1; } } $text = $lang->setting_mytwconnect_whattosync; $unlink = "<input type=\"submit\" class=\"button\" name=\"unlink\" value=\"{$lang->mytwconnect_settings_unlink}\" />"; if ($userSettings) { foreach ($userSettings as $setting => $value) { $tempKey = 'mytwconnect_settings_' . $setting; $checked = ''; if ($value) { $checked = " checked=\"checked\""; } $label = $lang->{$tempKey}; $altbg = alt_trow(); eval("\$options .= \"" . $templates->get('mytwconnect_usercp_settings_setting') . "\";"); } } else { $text = $lang->setting_mytwconnect_connected; } } else { $text = $lang->setting_mytwconnect_linkaccount; eval("\$options = \"" . $templates->get('mytwconnect_usercp_settings_linkprofile') . "\";"); } eval("\$content = \"" . $templates->get('mytwconnect_usercp_settings') . "\";"); output_page($content); } }