Plugin Directory

Changeset 1011466


Ignore:
Timestamp:
10/21/2014 02:02:36 PM (11 years ago)
Author:
globalis
Message:

New Feature - Version 1.0.0

Location:
multisite-clone-duplicator
Files:
3 added
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • multisite-clone-duplicator/trunk/include/admin.php

    r958538 r1011466  
    107107            // Form Data
    108108            $data = array(
    109                 'source'        => 0,
     109                'source'        => (isset($_GET['id']))?$_GET['id']:0,
    110110                'domain'        => '',
    111111                'title'         => '',
    112112                'email'         => '',
    113                 'copy_files'    => 'no',
     113                'copy_files'    => 'yes',
    114114                'keep_users'    => 'no',
    115115                'log'           => 'no',
    116116                'log-path'      => '',
     117                'advanced'      => 'hide-advanced-options'
    117118            );
    118119
     
    132133            // Load template if at least one Site is available
    133134            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']);
    135137
    136138                MUCD_Admin::enqueue_script_network_duplicate();
     
    142144
    143145            MUCD_Duplicate::close_log();
     146
    144147        }
    145148
     
    148151         * @since 0.2.0
    149152         * @param  array $site_list all the sites
    150          * @param  array $get parameters
     153         * @param  id $current_blog_id parameters
    151154         * @return string the output
    152155         */
    153         public static function select_site_list($site_list, $get) {
     156        public static function select_site_list($site_list, $current_blog_id=null) {
    154157            $output = '';
    155158
     
    157160                $blog_id = $site_list[0]['blog_id'];
    158161            }
    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;
    161164            }
    162165
     
    257260        public static function check_form($init_data) {
    258261
    259             $data = array();
     262            $data = $init_data;
     263            $data['copy_files'] = 'no';               
     264            $data['keep_users'] = 'no';                 
     265            $data['log'] = 'no';                 
    260266
    261267            // Check referer and nonce
     
    267273
    268274                // 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']);
    270276
    271277                // format and check source
     
    342348        public static function save_admin_network_option_page() {
    343349
    344             check_admin_referer( 'siteoptions' );
    345350
    346351            if ( isset( $_POST['duplicables'] ) && $_POST['duplicables']=='all' ){
     352                check_admin_referer( 'siteoptions' );
    347353                update_site_option( 'mucd_duplicables', 'all' );
    348354            }
    349             else {
     355
     356            else if ( isset( $_POST['duplicables-list'] ) ){
     357                check_admin_referer( 'siteoptions' );
    350358                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
    359362        }
    360363
  • multisite-clone-duplicator/trunk/js/network_admin_duplicate_site.js

    r958538 r1011466  
    11jQuery(document).ready(function() {
     2
     3    // Logbox displaying
    24    jQuery('#log-box').change(function() {
    35        if(jQuery(this).is(":checked")) {
     
    79            jQuery('#log-path').prop('disabled', true);
    810        }   
     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'));
    916    });
     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    }
    1021
    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    }
    1629
    17     jQuery('#hide-advanced-options').click(function() {
    18          jQuery('#advanced-options').hide();
    19          jQuery('#show-advanced-options').show();
    20          jQuery(this).hide();
    21     }); 
    2230});
  • multisite-clone-duplicator/trunk/js/network_admin_settings.js

    r958538 r1011466  
    11jQuery(document).ready(function() {
    2 
    3 
    42
    53    function enable_multiselect() {
    64
    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');
    97
    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);
    1311
    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() {
    1519                if (checkbox.prop("checked")) {
    1620                    checkbox.parent().addClass("multiselect-on");
    1721                }
    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        });       
    2927    }
    3028
    3129    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        });       
    3937    }
    4038
     
    5856    });
    5957
    60 
    6158});
  • multisite-clone-duplicator/trunk/lib/data.php

    r958538 r1011466  
    3030        public static function db_copy_tables( $from_site_id, $to_site_id ) {
    3131            global $wpdb ;
    32 
     32           
    3333            // Source Site information
    3434            $from_site_prefix = $wpdb->get_blog_prefix( $from_site_id );                    // prefix
     
    190190
    191191
    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);   
    193193                    $results = MUCD_Data::do_sql_query($sql_query, 'results', FALSE);
    194194
     
    198198                         foreach($results as $result => $row) {
    199199                            $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]);
    201201                            MUCD_Data::do_sql_query($sql_query);
    202202                        }
  • multisite-clone-duplicator/trunk/lib/duplicate.php

    r958538 r1011466  
    157157                    add_user_to_blog( $to_site_id, $user->ID, 'subscriber');
    158158
    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]; }
    160164
    161165                    foreach ($all_meta as $metakey => $metavalue) {
  • multisite-clone-duplicator/trunk/readme.txt

    r960362 r1011466  
    33Tags: duplicate, clone, copy, duplication, duplicator, factory, multisite, site, blog, network, wpmu, new blog
    44Requires at least: 3.5.0
    5 Tested up to: 3.9.1
    6 Stable tag: 0.2.0
     5Tested up to: 4.0.0
     6Stable tag: 1.0.0
    77License: GPLv2 or later
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    8282
    8383== 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
    8491
    8592= 0.2.0 =
  • multisite-clone-duplicator/trunk/template/network_admin_duplicate_site.php

    r958538 r1011466  
    5858            <a id="show-advanced-options" href="#"><?php echo MUCD_NETWORK_PAGE_DUPLICATE_ADVANCED_SHOW; ?> &rsaquo;</a>
    5959            <a id="hide-advanced-options" style="display: none;" href="#"><?php echo MUCD_NETWORK_PAGE_DUPLICATE_ADVANCED_HIDE; ?> &lsaquo;</a>
     60            <input id="status-advanced-options" type="hidden" name="site[advanced]" value="<?php echo $data['advanced']; ?>" />
    6061        </p>
    6162
     
    6465                <th scope="row"><?php echo MUCD_NETWORK_PAGE_DUPLICATE_FILES; ?></th>
    6566                <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>
    6768                </td>
    6869            </tr>
     
    7172                <th scope="row"><?php echo MUCD_NETWORK_PAGE_DUPLICATE_USERS; ?></th>
    7273                <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>
    7475                </td>
    7576            </tr>
     
    7879                <th scope="row"><?php echo MUCD_NETWORK_PAGE_DUPLICATE_LOG; ?></th>
    7980                <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>
    8182                    <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>
    8283                </td>
Note: See TracChangeset for help on using the changeset viewer.