blog_id != $perfmatters_network['default']) {
$option_names = array(
'perfmatters_options',
'perfmatters_tools'
);
foreach($option_names as $option_name) {
//clear selected blog previous option
delete_blog_option($blog->blog_id, $option_name);
//grab new option from default blog
$new_option = get_blog_option($perfmatters_network['default'], $option_name);
//remove options we don't want to copy
if($option_name == 'perfmatters_option') {
unset($new_option['cdn']['cdn_url']);
}
//update selected blog with default option
update_blog_option($blog->blog_id, $option_name, $new_option);
}
//Default Settings Updated Notice
echo "
" . __('Default settings applied!', 'perfmatters') . "
";
}
else {
//Can't Apply to Network Default
echo "" . __('Select a site that is not already the Network Default.', 'perfmatters') . "
";
}
}
else {
//Network Default Not Set
echo "" . __('Network Default not set.', 'perfmatters') . "
";
}
}
else {
//Blog Not Found Notice
echo "" . __('Error: Blog Not Found.', 'perfmatters') . "
";
}
}
}
elseif(isset($_POST['perfmatters_apply_defaults_all'])) {
check_admin_referer('perfmatters-network-apply');
$perfmatters_network = get_site_option('perfmatters_network');
if(!empty($perfmatters_network['default'])) {
$sites = array_map('get_object_vars', get_sites(array('deleted' => 0, 'number' => 1000)));
if(is_array($sites) && $sites !== array()) {
$update_count = 0;
foreach($sites as $site) {
$apply = perfmatters_apply_defaults_to_blog($site['blog_id'], $perfmatters_network['default']);
if($apply) {
$update_count++;
}
}
if($update_count > 0) {
//default settings applied
echo "" . __('Default settings applied!', 'perfmatters') . "
";
}
}
else {
//no sites available
echo "" . __('No available sites found.', 'perfmatters') . "
";
}
}
else {
//network default not set
echo "" . __('Network Default not set.', 'perfmatters') . "
";
}
}
//Options Updated
if(isset($_GET['updated'])) {
echo "" . __('Options saved.', 'perfmatters') . "
";
}
echo "";
echo "";
//apply defaults to blog
function perfmatters_apply_defaults_to_blog($blog_id, $network_default) {
$blog = get_blog_details($blog_id);
if($blog && !empty($network_default)) {
if($blog->blog_id != $network_default) {
$option_names = array(
'perfmatters_options',
'perfmatters_tools'
);
foreach($option_names as $option_name) {
//clear selected blog previous option
delete_blog_option($blog->blog_id, $option_name);
//grab new option from default blog
$new_option = get_blog_option($network_default, $option_name);
//remove options we don't want to copy
if($option_name == 'perfmatters_options') {
unset($new_option['cdn']['cdn_url']);
}
//update selected blog with default option
update_blog_option($blog->blog_id, $option_name, $new_option);
}
return true;
}
}
return false;
}