/** * Metabox for assigning properties of a network * * @since 1.7.0 * * @param WP_Network $network Results of get_blog_details() */ function wpmn_edit_network_details_metabox($network = null) { // Domain $domain = !empty($network->domain) ? Requests_IDNAEncoder::encode($network->domain) : ''; // Path $path = !empty($network->path) ? $network->path : '/'; ?> <table class="edit-network form-table"> <tr class="form-field form-required"> <th scope="row"> <label for="domain"><?php esc_html_e('Domain', 'wp-multi-network'); ?> </label> </th> <td> <label for="domain"> <span class="scheme"><?php echo wp_get_scheme(); ?> </span> <input type="text" name="domain" id="domain" class="regular-text" value="<?php echo esc_attr($domain); ?> "> </label> </td> </tr> <tr class="form-field form-required"> <th scope="row"> <label for="path"><?php esc_html_e('Path', 'wp-multi-network'); ?> </label> </th> <td> <input type="text" name="path" id="path" class="regular-text" value="<?php echo esc_attr($path); ?> "> <p class="description"><?php esc_html_e('Use "/" if you are unsure.', 'wp-multi-network'); ?> </p> </td> </tr> </table> <?php }
/** * Metabox for assigning which network a site is part of * * @since 1.7.0 * * @param WP_Site $site Results of get_blog_details() */ function wpmn_move_site_list_metabox($site = null) { // Get all networks $networks = get_networks(); ?> <table class="move-site widefat"> <tr> <th><?php echo esc_html(get_blog_option($site->blog_id, 'blogname')); ?> </th> <td> <select name="to" id="to"> <option value="0"><?php esc_html_e('— No Network —', 'wp-multi-network'); ?> </option><?php // Loop through networks foreach ($networks as $new_network) { // Option value is network ID ?> <option value="<?php echo esc_attr($new_network->id); ?> " <?php selected($site->site_id, $new_network->id); ?> ><?php // Include scheme, domain, & path echo wp_get_scheme() . esc_html($new_network->domain . '/' . ltrim($new_network->path, '/')); ?> </option><?php } ?> </select> </td> </tr> </table> <?php }
/** * Output a list-table row * * @since 1.7.0 * * @param object $network */ public function display_row($network) { // Default class $class = ''; // Row class if (get_current_site()->id == $network['id']) { $class = 'active'; } else { $class = 'alternate' === $class ? '' : 'alternate'; } // Start an output buffer ob_start(); ?> <tr class="<?php echo esc_attr($class); ?> "> <?php list($columns, $hidden) = $this->get_column_info(); foreach (array_keys($columns) as $column_name) { // Hidden? $style = in_array($column_name, $hidden) ? ' style="display:none;"' : ''; // Which column? switch ($column_name) { case 'cb': ?> <th scope="row" class="check-column"> <?php if (get_current_site()->id != $network['id'] && $network['id'] != 1) { ?> <input type="checkbox" id="network_<?php echo $network['site_id']; ?> " name="all_networks[]" value="<?php echo esc_attr($network['site_id']); ?> "> <?php } ?> </th> <?php break; case 'domain': ?> <td valign="top" class="<?php echo $column_name; ?> column-<?php echo $column_name; ?> " <?php echo $style; ?> > <?php echo esc_html($network['domain']); ?> </td> <?php break; case 'path': ?> <td valign="top" class="<?php echo $column_name; ?> column-<?php echo $column_name; ?> " <?php echo $style; ?> > <?php echo esc_html($network['path']); ?> </td> <?php break; case 'title': ?> <td valign="top" class="<?php echo $column_name; ?> column-<?php echo $column_name; ?> " <?php echo $style; ?> > <?php switch_to_network($network['id']); $network_admin_url = network_admin_url(); $network_home_url = network_home_url(); restore_current_network(); $myurl = add_query_arg(array('page' => 'networks', 'id' => $network['id'])); ?> <strong> <a href="<?php echo add_query_arg(array('action' => 'edit_network'), $myurl); ?> "><?php echo $network['sitename']; ?> </a> </strong> <?php $actions = array('edit' => '<span class="edit"><a href="' . add_query_arg(array('action' => 'edit_network'), $myurl) . '">' . esc_html__('Edit', 'wp-multi-network') . '</a></span>', 'network_admin' => '<span class="edit"><a href="' . esc_url($network_admin_url) . '">' . esc_html__('Dashboard', 'wp-multi-network') . '</a></span>', 'visit' => '<span class="edit"><a href="' . esc_url($network_home_url) . '">' . esc_html__('Visit', 'wp-multi-network') . '</a></span>'); if (get_current_site()->id != $network['id'] && $network['id'] != 1) { if (current_user_can('manage_network_options', $network['id'])) { $actions['delete'] = '<span class="delete"><a href="' . esc_url(wp_nonce_url(add_query_arg(array('action' => 'delete_network'), $myurl))) . '">' . esc_html__('Delete', 'wp-multi-network') . '</a></span>'; } } $actions = apply_filters('manage_networks_action_links', array_filter($actions), $network['id'], $network['sitename']); echo $this->row_actions($actions); ?> </td> <?php break; case 'blogs': ?> <td valign="top" class="<?php echo $column_name; ?> column-<?php echo $column_name; ?> " <?php echo $style; ?> > <a href="<?php echo wp_get_scheme() . $network['domain'] . $network['blog_path']; ?> wp-admin/network/sites.php" title="<?php esc_attr_e('Sites on this network', 'wp-multi-network'); ?> "> <?php echo $network['blogs']; ?> </a> </td> <?php break; case 'admins': ?> <td valign="top" class="<?php echo $column_name; ?> column-<?php echo $column_name; ?> " <?php echo $style; ?> > <?php if (!empty($network['network_admins'])) { $network_admins = array_filter(maybe_unserialize($network['network_admins'])); if (!empty($network_admins)) { echo join(', ', $network_admins); } } ?> </td> <?php break; case 'plugins': if (has_filter('wpmublogsaction')) { ?> <td valign="top" class="<?php echo $column_name; ?> column-<?php echo $column_name; ?> " <?php echo $style; ?> > <?php do_action('wpmublogsaction', $network['id']); ?> </td> <?php } break; default: ?> <td valign="top" class="<?php echo $column_name; ?> column-<?php echo $column_name; ?> " <?php echo $style; ?> > <?php do_action('manage_sites_custom_column', $column_name, $network['id']); ?> </td> <?php break; } } ?> </tr> <?php // Return the outpub buffer echo ob_get_clean(); }
/** * Output the delete network page * * @global object $wpdb */ public function delete_network_page() { global $wpdb; // get network by id $network = wp_get_network($_GET['id']); if (empty($network)) { wp_die(esc_html__('Invalid network id.', 'wp-multi-network')); } // Get sites to delete $sites = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->blogs} WHERE site_id = %d", (int) $_GET['id'])); ?> <div class="wrap"> <h1><?php esc_html_e('Delete Network', 'wp-multi-network'); if (current_user_can('manage_network_options')) { ?> <a href="<?php echo esc_url(add_query_arg(array('page' => 'add-new-network'), $this->admin_url())); ?> " class="add-new-h2"><?php echo esc_html_x('Add New', 'network', 'wp-multi-network'); ?> </a> <?php } ?> </h1> <form method="post" action="<?php echo remove_query_arg('action'); ?> "> <?php // Network has sites if (!empty($sites)) { // Orphaned sites are rescued if (RESCUE_ORPHANED_BLOGS) { ?> <div id="message" class="network-delete"> <p><?php esc_html_e('The following sites are associated with this network:', 'wp-multi-network'); ?> </p> <ul class="delete-sites"> <?php foreach ($sites as $site) { ?> <li><?php echo esc_html($site->domain . $site->path); ?> </li> <?php } ?> </ul> <p> <input type="checkbox" name="override" id="override"> <label for="override"> <?php esc_html_e('Rescue these sites', 'wp-multi-network'); ?> </label> </p> </div> <p><?php printf(esc_html__('Are you sure you want to delete the entire "%s" network?', 'wp-multi-network'), esc_html($network->domain . $network->path)); ?> </p> <?php } else { ?> <div id="message" class="network-delete"> <p><?php esc_html_e('The following sites are associated with this network:', 'wp-multi-network'); ?> </p> <ul class="delete-sites"> <?php foreach ($sites as $site) { ?> <li><?php echo esc_html($site->domain . $site->path); ?> </li> <?php } ?> </ul> <p> <input type="checkbox" name="override" id="override"> <label for="override"> <?php esc_html_e('Delete these sites', 'wp-multi-network'); ?> </label> </p> </div> <p><?php printf(esc_html__('Are you sure you want to delete the entire "%s" network?', 'wp-multi-network'), esc_html(wp_get_scheme() . $network->domain . $network->path)); ?> </p> <?php } } submit_button(esc_html__('Delete Network', 'wp-multi-network'), 'primary', 'delete', false); ?> <a class="button" href="<?php echo esc_url($this->admin_url()); ?> "><?php esc_html_e('Cancel', 'wp-multi-network'); ?> </a> </form> </div> <?php }