/** * BackType Connect settings page * * @uses btc_db_clear_comment_counts() * @uses btc_db_get_own_blog_comments() * @uses btc_db_get_retweets() * @uses btc_db_update_filtered() * @uses btc_db_update_ignored() * @uses btc_disable_plugin() * @uses btc_enable_plugin() * @uses _btc_display_message() * @uses _btc_url_open() */ function btc_settings_submenu() { if (!current_user_can('manage_options')) { die; } if (isset($_POST[BTC_API_KEY_OPTION])) { $error = false; $authenticated = false; $tries = 0; $processed = true; do { $btc_api_key = $_POST[BTC_API_KEY_OPTION]; if ($btc_api_key != get_option(BTC_API_KEY_OPTION)) { // authenticate $url = get_option('siteurl'); $params = array('identifier' => 'btc', 'key' => $btc_api_key, 'url' => $url); if (!($contents = _btc_url_open(BTC_API_PING_URL . '?' . http_build_query($params, null, '&')))) { $tries++; } else { $xml = _btc_xml_unserialize($contents['body']); unset($contents); if (class_exists('SimpleXMLElement')) { if (!empty($xml->errorCode)) { $error = 'An error occured authenticating with BackType Connect. Please contact <a href="mailto:support@backtype.com">support@backtype.com</a>'; break; } } else { if (!empty($xml['error']['errorCode'])) { $error = 'An error occured authenticating with BackType Connect. Please contact <a href="mailto:support@backtype.com">support@backtype.com</a>'; break; } } update_option(BTC_API_KEY_OPTION, $btc_api_key); $authenticated = true; $processed = true; break; } } else { $authenticated = true; $processed = true; break; } if ($tries == 3) { $error = 'Could not contact BackType, are you sure your webserver is online? If so contact <a href="mailto:support@backtype.com">support@backtype.com</a>'; } } while (!$processed && !$error); if ($authenticated) { if ($_POST['control'] == 1) { require_once BTC_DIR . '/install.php'; if (get_option(BTC_ENABLED_OPTION)) { btc_disable_plugin(); _btc_display_message(__('BackType Connect is now disabled.'), 'success'); } else { btc_enable_plugin(); _btc_display_message(__('BackType Connect is now enabled.'), 'success'); } } else { require_once BTC_DIR . '/db.php'; $btc_comment_sort = isset($_POST[BTC_COMMENT_SORT_OPTION]) && in_array($_POST[BTC_COMMENT_SORT_OPTION], array('mixed', 'end')) ? $_POST[BTC_COMMENT_SORT_OPTION] : 'mixed'; $btc_summary = isset($_POST[BTC_SUMMARY_OPTION]) ? true : false; $btc_more_comments = isset($_POST[BTC_MORE_COMMENTS_OPTION]) ? true : false; $btc_ignore_own_blog = isset($_POST[BTC_IGNORE_OWN_BLOG_OPTION]) ? true : false; $btc_ignore_retweets = isset($_POST[BTC_IGNORE_RETWEETS_OPTION]) ? true : false; $btc_moderation = isset($_POST[BTC_MODERATION_OPTION]) ? true : false; $btc_akismet = isset($_POST[BTC_AKISMET_OPTION]) ? true : false; update_option(BTC_COMMENT_SORT_OPTION, $btc_comment_sort); update_option(BTC_SUMMARY_OPTION, $btc_summary); update_option(BTC_MORE_COMMENTS_OPTION, $btc_more_comments); $clear_btc_counts = false; if ($btc_ignore_own_blog != get_option(BTC_IGNORE_OWN_BLOG_OPTION)) { $clear_btc_counts = true; $btc_own_blog_comments = btc_db_get_own_blog_comments(); btc_db_update_ignored($btc_ignore_own_blog, $btc_own_blog_comments); update_option(BTC_IGNORE_OWN_BLOG_OPTION, $btc_ignore_own_blog); } if ($btc_ignore_retweets != get_option(BTC_IGNORE_RETWEETS_OPTION)) { $clear_btc_counts = true; $btc_retweets = btc_db_get_retweets(); btc_db_update_ignored($btc_ignore_retweets, $btc_retweets); update_option(BTC_IGNORE_RETWEETS_OPTION, $btc_ignore_retweets); } update_option(BTC_MODERATION_OPTION, $btc_moderation); update_option(BTC_AKISMET_OPTION, $btc_akismet); $options = array(BTC_OPTION_DISABLED, BTC_OPTION_ENABLED); $btc_src_blog = isset($_POST[BTC_SRC_BLOG_OPTION]) && in_array((int) $_POST[BTC_SRC_BLOG_OPTION], $options) ? (int) $_POST[BTC_SRC_BLOG_OPTION] : BTC_OPTION_DISABLED; $btc_src_digg = isset($_POST[BTC_SRC_DIGG_OPTION]) && in_array((int) $_POST[BTC_SRC_DIGG_OPTION], $options) ? (int) $_POST[BTC_SRC_DIGG_OPTION] : BTC_OPTION_DISABLED; $btc_src_reddit = isset($_POST[BTC_SRC_REDDIT_OPTION]) && in_array((int) $_POST[BTC_SRC_REDDIT_OPTION], $options) ? (int) $_POST[BTC_SRC_REDDIT_OPTION] : BTC_OPTION_DISABLED; $btc_src_friendfeed = isset($_POST[BTC_SRC_FRIENDFEED_OPTION]) && in_array((int) $_POST[BTC_SRC_FRIENDFEED_OPTION], $options) ? (int) $_POST[BTC_SRC_FRIENDFEED_OPTION] : BTC_OPTION_DISABLED; $btc_src_yc = isset($_POST[BTC_SRC_YC_OPTION]) && in_array((int) $_POST[BTC_SRC_YC_OPTION], $options) ? (int) $_POST[BTC_SRC_YC_OPTION] : BTC_OPTION_DISABLED; $btc_src_twitter = isset($_POST[BTC_SRC_TWITTER_OPTION]) && in_array((int) $_POST[BTC_SRC_TWITTER_OPTION], $options) ? (int) $_POST[BTC_SRC_TWITTER_OPTION] : BTC_OPTION_DISABLED; // update filters if ($btc_src_blog != get_option(BTC_SRC_BLOG_OPTION)) { $clear_btc_counts = true; btc_db_update_filtered('btc_blog', $btc_src_blog); update_option(BTC_SRC_BLOG_OPTION, $btc_src_blog); } if ($btc_src_digg != get_option(BTC_SRC_DIGG_OPTION)) { $clear_btc_counts = true; btc_db_update_filtered('btc_digg', $btc_src_digg); update_option(BTC_SRC_DIGG_OPTION, $btc_src_digg); } if ($btc_src_reddit != get_option(BTC_SRC_REDDIT_OPTION)) { $clear_btc_counts = true; btc_db_update_filtered('btc_reddit', $btc_src_reddit); update_option(BTC_SRC_REDDIT_OPTION, $btc_src_reddit); } if ($btc_src_friendfeed != get_option(BTC_SRC_FRIENDFEED_OPTION)) { $clear_btc_counts = true; btc_db_update_filtered('btc_friendfeed', $btc_src_friendfeed); update_option(BTC_SRC_FRIENDFEED_OPTION, $btc_src_friendfeed); } if ($btc_src_yc != get_option(BTC_SRC_YC_OPTION)) { $clear_btc_counts = true; btc_db_update_filtered('btc_yc', $btc_src_yc); update_option(BTC_SRC_YC_OPTION, $btc_src_yc); } if ($btc_src_twitter != get_option(BTC_SRC_TWITTER_OPTION)) { $clear_btc_counts = true; btc_db_update_filtered('btc_twitter', $btc_src_twitter); update_option(BTC_SRC_TWITTER_OPTION, $btc_src_twitter); } if ($clear_btc_counts) { btc_db_clear_comment_counts(); } _btc_display_message(__('Settings updated.'), 'success'); } } if ($error) { _btc_display_message(__($error), 'error'); } } include BTC_DIR . '/admin-settings.php'; }
function btc_admin_notices() { if (!_btc_is_registered()) { _btc_install(); } if (!_btc_is_registered()) { _btc_display_message('There was a problem registering your plugin with BackType. Please contact <a href="mailto:support@backtype.com">support@backtype.com</a> for assistance.', 'notice'); } elseif (!get_option(BTC_ENABLED_OPTION) && $_SERVER['REQUEST_URI'] != '/wp-admin/options-general.php?page=BackType%20Connect') { _btc_display_message('<a href="' . get_option('siteurl') . '/wp-admin/options-general.php?page=BackType%20Connect">Configure the plugin</a> to finish setting up BackType Connect.', 'success'); } }