Changeset 1011466
- Timestamp:
- 10/21/2014 02:02:36 PM (11 years ago)
- Location:
- multisite-clone-duplicator
- Files:
-
- 3 added
- 1 deleted
- 7 edited
-
assets/banner-772x250.jpg (added)
-
assets/banner-772x250.png (deleted)
-
assets/icon-128x128.png (added)
-
assets/icon-256x256.png (added)
-
trunk/include/admin.php (modified) (8 diffs)
-
trunk/js/network_admin_duplicate_site.js (modified) (2 diffs)
-
trunk/js/network_admin_settings.js (modified) (2 diffs)
-
trunk/lib/data.php (modified) (3 diffs)
-
trunk/lib/duplicate.php (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/template/network_admin_duplicate_site.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
multisite-clone-duplicator/trunk/include/admin.php
r958538 r1011466 107 107 // Form Data 108 108 $data = array( 109 'source' => 0,109 'source' => (isset($_GET['id']))?$_GET['id']:0, 110 110 'domain' => '', 111 111 'title' => '', 112 112 'email' => '', 113 'copy_files' => ' no',113 'copy_files' => 'yes', 114 114 'keep_users' => 'no', 115 115 'log' => 'no', 116 116 'log-path' => '', 117 'advanced' => 'hide-advanced-options' 117 118 ); 118 119 … … 132 133 // Load template if at least one Site is available 133 134 if( $site_list ) { 134 $select_site_list = MUCD_Admin::select_site_list($site_list, $_GET); 135 136 $select_site_list = MUCD_Admin::select_site_list($site_list, $data['source']); 135 137 136 138 MUCD_Admin::enqueue_script_network_duplicate(); … … 142 144 143 145 MUCD_Duplicate::close_log(); 146 144 147 } 145 148 … … 148 151 * @since 0.2.0 149 152 * @param array $site_list all the sites 150 * @param array $getparameters153 * @param id $current_blog_id parameters 151 154 * @return string the output 152 155 */ 153 public static function select_site_list($site_list, $ get) {156 public static function select_site_list($site_list, $current_blog_id=null) { 154 157 $output = ''; 155 158 … … 157 160 $blog_id = $site_list[0]['blog_id']; 158 161 } 159 else if(isset($ get['id']) && MUCD_Functions::value_in_array($get['id'], $site_list, 'blog_id') && MUCD_Functions::is_duplicable($get['id']) ) {160 $blog_id = $ get['id'];162 else if(isset($current_blog_id) && MUCD_Functions::value_in_array($current_blog_id, $site_list, 'blog_id') && MUCD_Functions::is_duplicable($current_blog_id) ) { 163 $blog_id = $current_blog_id; 161 164 } 162 165 … … 257 260 public static function check_form($init_data) { 258 261 259 $data = array(); 262 $data = $init_data; 263 $data['copy_files'] = 'no'; 264 $data['keep_users'] = 'no'; 265 $data['log'] = 'no'; 260 266 261 267 // Check referer and nonce … … 267 273 268 274 // Merge $data / $_POST['site'] to get Posted data and fill form 269 $data = array_merge($ init_data, $_POST['site']);275 $data = array_merge($data, $_POST['site']); 270 276 271 277 // format and check source … … 342 348 public static function save_admin_network_option_page() { 343 349 344 check_admin_referer( 'siteoptions' );345 350 346 351 if ( isset( $_POST['duplicables'] ) && $_POST['duplicables']=='all' ){ 352 check_admin_referer( 'siteoptions' ); 347 353 update_site_option( 'mucd_duplicables', 'all' ); 348 354 } 349 else { 355 356 else if ( isset( $_POST['duplicables-list'] ) ){ 357 check_admin_referer( 'siteoptions' ); 350 358 update_site_option( 'mucd_duplicables', 'selected' ); 351 352 if ( isset( $_POST['duplicables-list'] ) ){ 353 MUCD_Option::set_duplicable_option($_POST['duplicables-list']); 354 } 355 else { 356 MUCD_Option::set_duplicable_option(array()); 357 } 358 } 359 MUCD_Option::set_duplicable_option($_POST['duplicables-list']); 360 } 361 359 362 } 360 363 -
multisite-clone-duplicator/trunk/js/network_admin_duplicate_site.js
r958538 r1011466 1 1 jQuery(document).ready(function() { 2 3 // Logbox displaying 2 4 jQuery('#log-box').change(function() { 3 5 if(jQuery(this).is(":checked")) { … … 7 9 jQuery('#log-path').prop('disabled', true); 8 10 } 11 }).change(); 12 13 // Advanced Options fields displaying 14 jQuery('#show-advanced-options, #hide-advanced-options').click(function() { 15 mucd_toggle_advanced_options (jQuery(this).attr('id')); 9 16 }); 17 // If display when user Post, Form reload with Advanced Options field displayed 18 if(jQuery('#status-advanced-options').val() == 'show-advanced-options'){ 19 mucd_toggle_advanced_options ( jQuery('#status-advanced-options').val()); 20 } 10 21 11 jQuery('#show-advanced-options').click(function() { 12 jQuery('#advanced-options').show(); 13 jQuery('#hide-advanced-options').show(); 14 jQuery(this).hide(); 15 }); 22 // Function to controle toggle on Advanced Options fields 23 function mucd_toggle_advanced_options (value){ 24 jQuery('#advanced-options').toggle(); 25 jQuery('#hide-advanced-options, #show-advanced-options').toggle(); 26 jQuery(this).hide(); 27 jQuery('#status-advanced-options').val(value); 28 } 16 29 17 jQuery('#hide-advanced-options').click(function() {18 jQuery('#advanced-options').hide();19 jQuery('#show-advanced-options').show();20 jQuery(this).hide();21 });22 30 }); -
multisite-clone-duplicator/trunk/js/network_admin_settings.js
r958538 r1011466 1 1 jQuery(document).ready(function() { 2 3 4 2 5 3 function enable_multiselect() { 6 4 7 jQuery('.duplicables-list').prop('disabled', false);8 jQuery('#site-select-box').css('overflow', 'auto');5 jQuery('.duplicables-list').prop('disabled', false); 6 jQuery('#site-select-box').css('overflow', 'auto'); 9 7 10 var checkboxes = jQuery('#site-select-box').find("input:checkbox");11 checkboxes.each(function() {12 var checkbox = jQuery(this);8 var checkboxes = jQuery('#site-select-box').find("input:checkbox"); 9 checkboxes.each(function() { 10 var checkbox = jQuery(this); 13 11 14 // Highlight pre-selected checkboxes 12 // Highlight pre-selected checkboxes 13 if (checkbox.prop("checked")) { 14 checkbox.parent().addClass("multiselect-on"); 15 } 16 17 // Highlight checkboxes that the user selects 18 checkbox.click(function() { 15 19 if (checkbox.prop("checked")) { 16 20 checkbox.parent().addClass("multiselect-on"); 17 21 } 18 19 // Highlight checkboxes that the user selects 20 checkbox.click(function() { 21 if (checkbox.prop("checked")) { 22 checkbox.parent().addClass("multiselect-on"); 23 } 24 else { 25 checkbox.parent().removeClass("multiselect-on"); 26 } 27 }); 28 }); 22 else { 23 checkbox.parent().removeClass("multiselect-on"); 24 } 25 }); 26 }); 29 27 } 30 28 31 29 function disable_multiselect() { 32 jQuery('.duplicables-list').prop('disabled', true);33 jQuery('#site-select-box').css('overflow', 'hidden');34 var checkboxes = jQuery('#site-select-box').find("input:checkbox");35 checkboxes.each(function() {36 var checkbox = jQuery(this);37 checkbox.parent().removeClass("multiselect-on");38 });30 jQuery('.duplicables-list').prop('disabled', true); 31 jQuery('#site-select-box').css('overflow', 'hidden'); 32 var checkboxes = jQuery('#site-select-box').find("input:checkbox"); 33 checkboxes.each(function() { 34 var checkbox = jQuery(this); 35 checkbox.parent().removeClass("multiselect-on"); 36 }); 39 37 } 40 38 … … 58 56 }); 59 57 60 61 58 }); -
multisite-clone-duplicator/trunk/lib/data.php
r958538 r1011466 30 30 public static function db_copy_tables( $from_site_id, $to_site_id ) { 31 31 global $wpdb ; 32 32 33 33 // Source Site information 34 34 $from_site_prefix = $wpdb->get_blog_prefix( $from_site_id ); // prefix … … 190 190 191 191 192 $sql_query = 'SELECT '.$id. ', ' .$value. ' FROM '.$table.' WHERE ' .$value. ' LIKE "%'.mysql_real_escape_string($from_string).'%" ';192 $sql_query = $wpdb->prepare('SELECT '.$id. ', ' .$value. ' FROM '.$table.' WHERE ' .$value. ' LIKE "%%%s%%" ' , $from_string); 193 193 $results = MUCD_Data::do_sql_query($sql_query, 'results', FALSE); 194 194 … … 198 198 foreach($results as $result => $row) { 199 199 $row[$value] = MUCD_Data::try_replace( $row, $value, $from_string, $to_string ); 200 $sql_query = sprintf($update, mysql_real_escape_string($row[$value]), $row[$id]);200 $sql_query = $wpdb->prepare($update, $row[$value], $row[$id]); 201 201 MUCD_Data::do_sql_query($sql_query); 202 202 } -
multisite-clone-duplicator/trunk/lib/duplicate.php
r958538 r1011466 157 157 add_user_to_blog( $to_site_id, $user->ID, 'subscriber'); 158 158 159 $all_meta = array_map( function( $a ){ return $a[0]; }, get_user_meta( $user->ID ) ); 159 // PHP >= 5.3 160 //$all_meta = array_map( function( $a ){ return $a[0]; }, get_user_meta( $user->ID ) ); 161 // PHP < 5.3 162 $all_meta = array_map( 'user_array_map', get_user_meta( $user->ID ) ); 163 function user_array_map( $a ){ return $a[0]; } 160 164 161 165 foreach ($all_meta as $metakey => $metavalue) { -
multisite-clone-duplicator/trunk/readme.txt
r960362 r1011466 3 3 Tags: duplicate, clone, copy, duplication, duplicator, factory, multisite, site, blog, network, wpmu, new blog 4 4 Requires at least: 3.5.0 5 Tested up to: 3.9.16 Stable tag: 0.2.05 Tested up to: 4.0.0 6 Stable tag: 1.0.0 7 7 License: GPLv2 or later 8 8 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 82 82 83 83 == Changelog == 84 85 = 1.0.0 = 86 * Tested on WP 4.0.0 87 * Bugfix : Compatibility with PHP 5.2 88 * Bugfix : SQL Error replace mysql_real_escape_string by $wpdb->prepare 89 * Bugfix : unable to delete, deactivate, etc. site when plugin is active 90 * Bugfix : Fields in duplicate form lost information after validate with error 84 91 85 92 = 0.2.0 = -
multisite-clone-duplicator/trunk/template/network_admin_duplicate_site.php
r958538 r1011466 58 58 <a id="show-advanced-options" href="#"><?php echo MUCD_NETWORK_PAGE_DUPLICATE_ADVANCED_SHOW; ?> ›</a> 59 59 <a id="hide-advanced-options" style="display: none;" href="#"><?php echo MUCD_NETWORK_PAGE_DUPLICATE_ADVANCED_HIDE; ?> ‹</a> 60 <input id="status-advanced-options" type="hidden" name="site[advanced]" value="<?php echo $data['advanced']; ?>" /> 60 61 </p> 61 62 … … 64 65 <th scope="row"><?php echo MUCD_NETWORK_PAGE_DUPLICATE_FILES; ?></th> 65 66 <td> 66 <label><input name="site[copy_files]" type="checkbox" checked value="yes"/><?php echo MUCD_NETWORK_PAGE_DUPLICATE_FILES_TEXT_1; ?></label>67 <label><input name="site[copy_files]" type="checkbox" value="yes" <?php echo ($data['copy_files']=='yes')?'checked':''; ?> /><?php echo MUCD_NETWORK_PAGE_DUPLICATE_FILES_TEXT_1; ?></label> 67 68 </td> 68 69 </tr> … … 71 72 <th scope="row"><?php echo MUCD_NETWORK_PAGE_DUPLICATE_USERS; ?></th> 72 73 <td> 73 <label><input name="site[keep_users]" type="checkbox" value="yes" /><?php echo MUCD_NETWORK_PAGE_DUPLICATE_USERS_TEXT_1; ?></label>74 <label><input name="site[keep_users]" type="checkbox" value="yes" <?php echo ($data['keep_users']=='yes')?'checked':''; ?> /><?php echo MUCD_NETWORK_PAGE_DUPLICATE_USERS_TEXT_1; ?></label> 74 75 </td> 75 76 </tr> … … 78 79 <th scope="row"><?php echo MUCD_NETWORK_PAGE_DUPLICATE_LOG; ?></th> 79 80 <td> 80 <label><input id="log-box" name="site[log]" type="checkbox" checked value="yes"/><?php echo MUCD_NETWORK_PAGE_DUPLICATE_LOG_TEXT_1; ?></label>81 <label><input id="log-box" name="site[log]" type="checkbox" value="yes" <?php echo ($data['log']=='yes')?'checked':''; ?> /><?php echo MUCD_NETWORK_PAGE_DUPLICATE_LOG_TEXT_1; ?></label> 81 82 <br /><br /><label><?php echo MUCD_NETWORK_PAGE_DUPLICATE_LOG_TEXT_2; ?> : <input id="log-path" name="site[log-path]" type="text" class="large-text" value="<?php echo MUCD_Option::get_option_log_directory(); ?>"/></label> 82 83 </td>
Note: See TracChangeset
for help on using the changeset viewer.