function sitewide_tags_update_options() { global $wpdb, $current_site, $current_user; if (!$_POST['tags_blog_enabled']) { if (get_sitewide_tags_option('tags_blog_enabled') != $_POST['tags_blog_enabled']) { update_sitewide_tags_option('tags_blog_enabled', 0, true); } return; } update_sitewide_tags_option('tags_blog_enabled', 1); if ((isset($_POST['tags_blog']) || isset($_POST['tags_blog_main_blog'])) && isset($_POST['tags_blog_public'])) { if ($_POST['tags_blog_main_blog'] == 1) { if ($current_site->blog_id) { $id = $current_site->blog_id; } else { $id = $wpdb->get_var("SELECT blog_id FROM {$wpdb->blogs} WHERE domain = '{$current_site->domain}' AND path = '{$current_site->path}'"); } if ($id) { update_sitewide_tags_option('tags_blog_id', $id); update_sitewide_tags_option('tags_blog_main_blog', 1); } else { update_sitewide_tags_option('tags_blog_main_blog', 0); } } else { update_sitewide_tags_option('tags_blog_main_blog', 0); $tags_blog = $_POST['tags_blog']; update_sitewide_tags_option('tags_blog', $tags_blog); if (constant('VHOST') == 'yes') { $domain = $tags_blog . '.' . $current_site->domain; $path = $current_site->path; } else { $domain = $current_site->domain; $path = trailingslashit($current_site->path . $tags_blog); } $tags_blog_id = $wpdb->get_var("SELECT blog_id FROM {$wpdb->blogs} WHERE domain = '{$domain}' AND path = '{$path}'"); if ($tags_blog_id) { update_sitewide_tags_option('tags_blog_id', $tags_blog_id); } else { $wpdb->hide_errors(); $id = wpmu_create_blog($domain, $path, __('Global Posts', 'wpmu-sitewide-tags'), $current_user->id, array("public" => $_POST['tags_blog_public']), $current_site->id); update_sitewide_tags_option('tags_blog_id', $id); $wpdb->show_errors(); } } $tags_blog_public = (int) $_POST['tags_blog_public']; update_sitewide_tags_option('tags_blog_public', $tags_blog_public); update_blog_option($tags_blog_id, 'blog_public', $tags_blog_public); update_blog_status($tags_blog_id, 'public', $tags_blog_public); } if (isset($_POST['tags_max_posts'])) { update_sitewide_tags_option('tags_max_posts', (int) $_POST['tags_max_posts']); } if (get_sitewide_tags_option('tags_blog_pages') != $_POST['tags_blog_pages']) { update_sitewide_tags_option('tags_blog_pages', (int) $_POST['tags_blog_pages']); } if (get_sitewide_tags_option('tags_blog_pub_check') != $_POST['tags_blog_pub_check']) { if ($tags_blog_public == 0) { update_sitewide_tags_option('tags_blog_pub_check', (int) $_POST['tags_blog_pub_check']); } else { update_sitewide_tags_option('tags_blog_pub_check', 0); } } if ($_POST['tags_blog_postmeta'] != '') { $meta_keys = split("\n", stripslashes($_POST['tags_blog_postmeta'])); foreach ((array) $meta_keys as $key) { $keys[] = trim($key); } update_sitewide_tags_option("tags_blog_postmeta", $keys); } else { update_sitewide_tags_option("tags_blog_postmeta", ''); } // force write if changes saved update_sitewide_tags_option(true); }
function sitewide_tags_update_options() { global $wpdb, $current_site, $current_user, $wp_version; $valid_nonce = isset($_REQUEST['_wpnonce']) ? wp_verify_nonce($_REQUEST['_wpnonce'], 'sitewidetags') : false; if (!$valid_nonce) { return false; } if ($_GET['action'] == 'populateblogs') { $id = isset($_GET['populate_blog']) ? (int) $_GET['populate_blog'] : 0; $c = isset($_GET['c']) ? (int) $_GET['c'] : 0; // blog count $p = isset($_GET['p']) ? (int) $_GET['p'] : 0; // post count $all = isset($_GET['all']) ? (int) $_GET['all'] : 0; // all blogs if ($id == 0 && isset($_GET['populate_all_blogs'])) { // all blogs. $all = 1; } $tags_blog_id = get_sitewide_tags_option('tags_blog_id'); if (!$tags_blog_id) { return false; } if ($all) { $blogs = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM {$wpdb->blogs} ORDER BY blog_id DESC LIMIT %d,5", $c)); } else { $blogs = array($id); } foreach ($blogs as $blog) { if ($blog != $tags_blog_id) { $details = get_blog_details($blog); $url = add_query_arg(array('p' => $p, 'action' => 'sitewidetags-populate', 'key' => md5(serialize($details))), $details->siteurl); $p = 0; $post_count = 0; $result = wp_remote_get($url); if (isset($result['body'])) { $post_count = (int) $result['body']; } if ($post_count) { $p = $post_count; break; } } $c++; } if (!empty($blogs) && ($all || $p)) { if (version_compare($wp_version, '3.0.9', '<=') && version_compare($wp_version, '3.0', '>=')) { $url = admin_url('ms-admin.php'); } else { $url = network_admin_url('settings.php'); } wp_redirect(wp_nonce_url($url, 'sitewidetags') . "&page=sitewidetags&action=populateblogs&c={$c}&p={$p}&all={$all}"); die; } wp_die('Finished importing posts into tags blogs!'); } if (!$_POST['tags_blog_enabled']) { if (get_sitewide_tags_option('tags_blog_enabled') != $_POST['tags_blog_enabled']) { update_sitewide_tags_option('tags_blog_enabled', 0, true); } wp_redirect(add_query_arg(array('updated' => '1'))); exit; } update_sitewide_tags_option('tags_blog_enabled', 1); if ((isset($_POST['tags_blog']) || isset($_POST['tags_blog_main_blog'])) && isset($_POST['tags_blog_public'])) { if ($_POST['tags_blog_main_blog'] == 1) { if ($current_site->blog_id) { $id = $current_site->blog_id; } else { $id = $wpdb->get_var("SELECT blog_id FROM {$wpdb->blogs} WHERE domain = '{$current_site->domain}' AND path = '{$current_site->path}'"); } if ($id) { update_sitewide_tags_option('tags_blog_id', $id); update_sitewide_tags_option('tags_blog_main_blog', 1); } else { update_sitewide_tags_option('tags_blog_main_blog', 0); } } else { update_sitewide_tags_option('tags_blog_main_blog', 0); $tags_blog = $_POST['tags_blog']; update_sitewide_tags_option('tags_blog', $tags_blog); if (constant('VHOST') == 'yes') { $domain = $tags_blog . '.' . $current_site->domain; $path = $current_site->path; } else { $domain = $current_site->domain; $path = trailingslashit($current_site->path . $tags_blog); } $tags_blog_id = $wpdb->get_var("SELECT blog_id FROM {$wpdb->blogs} WHERE domain = '{$domain}' AND path = '{$path}'"); if ($tags_blog_id) { update_sitewide_tags_option('tags_blog_id', $tags_blog_id); } else { $wpdb->hide_errors(); $id = wpmu_create_blog($domain, $path, __('Global Posts', 'wpmu-sitewide-tags'), $current_user->id, array("public" => $_POST['tags_blog_public']), $current_site->id); update_sitewide_tags_option('tags_blog_id', $id); $wpdb->show_errors(); } } $tags_blog_public = (int) $_POST['tags_blog_public']; update_sitewide_tags_option('tags_blog_public', $tags_blog_public); update_blog_option($tags_blog_id, 'blog_public', $tags_blog_public); update_blog_status($tags_blog_id, 'public', $tags_blog_public); } if (isset($_POST['tags_max_posts'])) { update_sitewide_tags_option('tags_max_posts', (int) $_POST['tags_max_posts']); } if (get_sitewide_tags_option('tags_blog_pages') != $_POST['tags_blog_pages']) { update_sitewide_tags_option('tags_blog_pages', (int) $_POST['tags_blog_pages']); } if (get_sitewide_tags_option('tags_blog_thumbs') != $_POST['tags_blog_thumbs']) { update_sitewide_tags_option('tags_blog_thumbs', (int) $_POST['tags_blog_thumbs']); } if (get_sitewide_tags_option('tags_blog_pub_check') != $_POST['tags_blog_pub_check']) { if ($tags_blog_public == 0) { update_sitewide_tags_option('tags_blog_pub_check', (int) $_POST['tags_blog_pub_check']); } else { update_sitewide_tags_option('tags_blog_pub_check', 0); } } if ($_POST['tags_blog_postmeta'] != '') { $meta_keys = split("\n", stripslashes($_POST['tags_blog_postmeta'])); foreach ((array) $meta_keys as $key) { $keys[] = trim($key); } update_sitewide_tags_option("tags_blog_postmeta", $keys); } else { update_sitewide_tags_option("tags_blog_postmeta", ''); } // force write if changes saved update_sitewide_tags_option(true); wp_redirect(add_query_arg(array('updated' => '1'))); exit; }