/**
 * 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 
}
Example #2
0
/**
 * 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('&mdash; No Network &mdash;', '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 
    }