diff --git a/bath.php b/bath.php index 4062281..e9af193 100644 --- a/bath.php +++ b/bath.php @@ -1,226 +1,226 @@ -prefix . 'batch_operations'; - - $charset_collate = $wpdb->get_charset_collate(); - - $sql = "CREATE TABLE $table_name ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `operations` longtext NOT NULL, - PRIMARY KEY (`id`) - ) $charset_collate AUTO_INCREMENT=1;"; - - require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); - dbDelta( $sql ); - -} - -/** - * Add backend page without menu item - */ -function batch_operations_add_page() { - add_management_page( 'Batch operations', '', 'edit_posts', 'batch-operations', 'batch_operations_page_view' ); -} - -/** - * View batch operations page - */ -function batch_operations_page_view() { - //WP 3.3 - wp_enqueue_script( 'jquery' ); - wp_enqueue_script( 'batch_operations_script', plugin_dir_url('') . 'batch-operations/js/batch.min.js' ); - wp_enqueue_style( 'batch_operations_script', plugin_dir_url('') . 'batch-operations/css/batch.css' ); - $id = ( intval( $_REQUEST["id"] ) < 0 )? 0 : intval( $_REQUEST["id"] ); - ?> - -
- * $batch = array( - * 'title' => t('Exporting'), - * 'operations' => array( - * array('my_function_1', array(123, 'qwe')), - * array('my_function_2', array()), - * ), - * 'finished' => 'my_finished_callback', - * ); - * - * batch_operations_start($batch); - *- * - *
- * function my_function_1($id, $text, &$context) { - * $context['results'][] = $text . $id; - * $context['message'] = 'Text + id ='.$text . $id; - * } - * - * The $context array gathers batch context information about the execution (read), - * as well as 'return values' for the current operation (write) - * The following keys are provided : - * 'results' (read / write): The array of results gathered so far by - * the batch processing, for the current operation to append its own. - * 'message' (write): A text message displayed in the progress page. - * The following keys allow for multi-step operations : - * 'sandbox' (read / write): An array that can be freely used to - * store persistent data between iterations. It is recommended to - * use this instead of $_SESSION, which is unsafe if the user - * continues browsing in a separate window while the batch is processing. - * 'finished' (write): A float number between 0 and 1 informing - * the processing engine of the completion level for the operation. - * 1 (or no value explicitly set) means the operation is finished - * and the batch processing can continue to the next operation. - *- * - * @param array $batch_arr array operations and more - */ -function batch_operations_start($batch_arr) -{ - global $wpdb; - - $batch_arr['context'] = array( - 'message' => '', - 'sandbox' => array(), - 'finished' => true, - 'results' => array() - ); - $batch_arr['count'] = count( $batch_arr['operations'] ); - $batch_arr['current'] = 0; - - $wpdb->insert( - $wpdb->prefix . 'batch_operations', - array( - 'operations' => serialize( $batch_arr ) - ), - array( - '%s' - ) - ); - - $location = get_admin_url(null, 'tools.php') . "?page=batch-operations&id=" . $wpdb->insert_id; - - if ( ! headers_sent() ) { - wp_redirect( $location ); - } else { - // if header is set then runs this hack - echo ''; - echo ''; - } - exit(0); +prefix . 'batch_operations'; + + $charset_collate = $wpdb->get_charset_collate(); + + $sql = "CREATE TABLE $table_name ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `operations` longtext NOT NULL, + PRIMARY KEY (`id`) + ) $charset_collate AUTO_INCREMENT=1;"; + + require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); + dbDelta( $sql ); + +} + +/** + * Add backend page without menu item + */ +function batch_operations_add_page() { + add_management_page( 'Batch operations', '', 'edit_posts', 'batch-operations', 'batch_operations_page_view' ); +} + +/** + * View batch operations page + */ +function batch_operations_page_view() { + //WP 3.3 + wp_enqueue_script( 'jquery' ); + wp_enqueue_script( 'batch_operations_script', plugin_dir_url('') . 'batch-operations/js/batch.min.js' ); + wp_enqueue_style( 'batch_operations_script', plugin_dir_url('') . 'batch-operations/css/batch.css' ); + $id = ( intval( $_REQUEST["id"] ) < 0 )? 0 : intval( $_REQUEST["id"] ); + ?> + +
+ * $batch = array( + * 'title' => t('Exporting'), + * 'operations' => array( + * array('my_function_1', array(123, 'qwe')), + * array('my_function_2', array()), + * ), + * 'finished' => 'my_finished_callback', + * ); + * + * batch_operations_start($batch); + *+ * + *
+ * function my_function_1($id, $text, &$context) { + * $context['results'][] = $text . $id; + * $context['message'] = 'Text + id ='.$text . $id; + * } + * + * The $context array gathers batch context information about the execution (read), + * as well as 'return values' for the current operation (write) + * The following keys are provided : + * 'results' (read / write): The array of results gathered so far by + * the batch processing, for the current operation to append its own. + * 'message' (write): A text message displayed in the progress page. + * The following keys allow for multi-step operations : + * 'sandbox' (read / write): An array that can be freely used to + * store persistent data between iterations. It is recommended to + * use this instead of $_SESSION, which is unsafe if the user + * continues browsing in a separate window while the batch is processing. + * 'finished' (write): A float number between 0 and 1 informing + * the processing engine of the completion level for the operation. + * 1 (or no value explicitly set) means the operation is finished + * and the batch processing can continue to the next operation. + *+ * + * @param array $batch_arr array operations and more + */ +function batch_operations_start($batch_arr) +{ + global $wpdb; + + $batch_arr['context'] = array( + 'message' => '', + 'sandbox' => array(), + 'finished' => true, + 'results' => array() + ); + $batch_arr['count'] = count( $batch_arr['operations'] ); + $batch_arr['current'] = 0; + + $wpdb->insert( + $wpdb->prefix . 'batch_operations', + array( + 'operations' => serialize( $batch_arr ) + ), + array( + '%s' + ) + ); + + $location = get_admin_url(null, 'tools.php') . "?page=batch-operations&id=" . $wpdb->insert_id; + + if ( ! headers_sent() ) { + wp_redirect( $location ); + } else { + // if header is set then runs this hack + echo ''; + echo ''; + } + exit(0); } \ No newline at end of file