Changeset 3291023
- Timestamp:
- 05/10/2025 08:39:24 PM (9 months ago)
- Location:
- bulk-page-maker-light
- Files:
-
- 59 added
- 4 deleted
- 21 edited
-
Desktop.ini (deleted)
-
assets/banner-1544x500.png (added)
-
assets/banner-772x250.jpg (deleted)
-
assets/banner-772x250.png (added)
-
assets/icon-256x256.png (modified) (previous)
-
assets/screenshot-1.png (added)
-
assets/screenshot-2.png (added)
-
assets/screenshot-3.jpg (deleted)
-
assets/screenshot-4.jpg (deleted)
-
tags/2.0.0 (added)
-
tags/2.0.0/assets (added)
-
tags/2.0.0/assets/js (added)
-
tags/2.0.0/assets/js/bpm-main.js (added)
-
tags/2.0.0/build (added)
-
tags/2.0.0/build/index.asset.php (added)
-
tags/2.0.0/build/index.css (added)
-
tags/2.0.0/build/index.js (added)
-
tags/2.0.0/bulk-page-maker-light.php (added)
-
tags/2.0.0/composer.json (added)
-
tags/2.0.0/includes (added)
-
tags/2.0.0/includes/Admin (added)
-
tags/2.0.0/includes/Admin.php (added)
-
tags/2.0.0/includes/Admin/Bulk_Page.php (added)
-
tags/2.0.0/includes/Admin/Menu.php (added)
-
tags/2.0.0/includes/Admin/Pages_List.php (added)
-
tags/2.0.0/includes/Admin/views (added)
-
tags/2.0.0/includes/Admin/views/bulk-page-list.php (added)
-
tags/2.0.0/includes/Admin/views/bulk-page-new.php (added)
-
tags/2.0.0/includes/Api (added)
-
tags/2.0.0/includes/Api.php (added)
-
tags/2.0.0/includes/Api/BPM_REST_Controller.php (added)
-
tags/2.0.0/includes/Api/Post.php (added)
-
tags/2.0.0/includes/Assets.php (added)
-
tags/2.0.0/includes/Installer.php (added)
-
tags/2.0.0/includes/Traits (added)
-
tags/2.0.0/includes/Traits/ContainerTrait.php (added)
-
tags/2.0.0/includes/functions.php (added)
-
tags/2.0.0/readme.txt (added)
-
tags/2.0.0/vendor (added)
-
tags/2.0.0/vendor/autoload.php (added)
-
tags/2.0.0/vendor/composer (added)
-
tags/2.0.0/vendor/composer/ClassLoader.php (added)
-
tags/2.0.0/vendor/composer/InstalledVersions.php (added)
-
tags/2.0.0/vendor/composer/LICENSE (added)
-
tags/2.0.0/vendor/composer/autoload_classmap.php (added)
-
tags/2.0.0/vendor/composer/autoload_files.php (added)
-
tags/2.0.0/vendor/composer/autoload_namespaces.php (added)
-
tags/2.0.0/vendor/composer/autoload_psr4.php (added)
-
tags/2.0.0/vendor/composer/autoload_real.php (added)
-
tags/2.0.0/vendor/composer/autoload_static.php (added)
-
tags/2.0.0/vendor/composer/installed.json (added)
-
tags/2.0.0/vendor/composer/installed.php (added)
-
trunk/assets/js/bpm-main.js (modified) (1 diff)
-
trunk/build (added)
-
trunk/build/index.asset.php (added)
-
trunk/build/index.css (added)
-
trunk/build/index.js (added)
-
trunk/bulk-page-maker-light.php (modified) (9 diffs)
-
trunk/includes/Admin.php (modified) (1 diff)
-
trunk/includes/Admin/Bulk_Page.php (modified) (4 diffs)
-
trunk/includes/Admin/Menu.php (modified) (1 diff)
-
trunk/includes/Admin/Pages_List.php (modified) (2 diffs)
-
trunk/includes/Admin/views/bulk-page-list.php (modified) (1 diff)
-
trunk/includes/Admin/views/bulk-page-new.php (modified) (1 diff)
-
trunk/includes/Api (added)
-
trunk/includes/Api.php (added)
-
trunk/includes/Api/BPM_REST_Controller.php (added)
-
trunk/includes/Api/Post.php (added)
-
trunk/includes/Assets.php (modified) (3 diffs)
-
trunk/includes/Traits (added)
-
trunk/includes/Traits/ContainerTrait.php (added)
-
trunk/includes/functions.php (modified) (6 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/ClassLoader.php (modified) (24 diffs)
-
trunk/vendor/composer/InstalledVersions.php (added)
-
trunk/vendor/composer/autoload_classmap.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_files.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_namespaces.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_psr4.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (3 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (2 diffs)
-
trunk/vendor/composer/installed.json (modified) (1 diff)
-
trunk/vendor/composer/installed.php (added)
Legend:
- Unmodified
- Added
- Removed
-
bulk-page-maker-light/trunk/assets/js/bpm-main.js
r2557773 r3291023 6 6 var postType = document.getElementById('cmb_post_type').value; 7 7 var pageCmb = document.getElementById('page_id'); 8 if (postType == 'post') {8 if (postType == 'post') { 9 9 pageCmb.setAttribute('disabled', true); 10 10 pageCmb.selectedIndex = 0; -
bulk-page-maker-light/trunk/bulk-page-maker-light.php
r2576225 r3291023 3 3 Plugin Name: Bulk Page Maker Light 4 4 Description: A Light plugin to generate bulk WordPress Pages or Posts 5 Version: 1.3.05 Version: 2.0.0 6 6 Author: Sapayth H. 7 7 Author URI: http://sapayth.com 8 8 License: GPLv2 or later 9 Requires at least: 5. 49 Requires at least: 5.6 10 10 Requires PHP: 5.6 11 Text Domain: sh-bpm-light11 Text Domain: bpm-light 12 12 */ 13 13 … … 37 37 */ 38 38 final class Bulk_Page_Maker { 39 40 const VERSION = ' 1.3.0';41 39 40 const VERSION = '2.0.0'; 41 42 42 /* 43 43 * class constructor … … 45 45 private function __construct() { 46 46 $this->define_constants(); 47 47 48 48 register_activation_hook( __FILE__, [ $this, 'activate'] ); 49 49 register_deactivation_hook( __FILE__, [ $this, 'deactivate'] ); … … 51 51 add_action( 'init', [$this, 'init_plugin'] ); 52 52 } 53 53 54 54 /* 55 55 * initializes a singleton instance … … 57 57 public static function init() { 58 58 static $instance = false; 59 59 60 60 if( ! $instance ) { 61 61 $instance = new self(); 62 62 } 63 64 return $instance; 63 64 return $instance; 65 65 } 66 66 67 67 /** 68 68 * constants 69 */ 69 */ 70 70 public function define_constants() { 71 71 $this->define( 'BPM_VERSION', self::VERSION ); … … 73 73 $this->define( 'BPM_PATH', __DIR__ ); 74 74 $this->define( 'BPM_URL', plugins_url('', BPM_FILE) ); 75 $this->define( 'BPM_ASSETS', BPM_URL . '/assets' ); 75 $this->define( 'BPM_ASSETS', BPM_URL . '/assets' ); 76 76 } 77 77 … … 94 94 public function init_plugin() { 95 95 new Bulk\Page\Maker\Assets(); 96 96 97 new Bulk\Page\Maker\Api(); 98 97 99 if( is_admin() ) { 98 100 new Bulk\Page\Maker\Admin(); … … 102 104 /** 103 105 * Do stuff upon plugin activation 104 */ 106 */ 105 107 public function activate() { 106 108 $installer = new Bulk\Page\Maker\Installer(); … … 110 112 /** 111 113 * Do stuff upon plugin deactivation 112 */ 114 */ 113 115 public function deactivate() { 114 116 $transient_posts = 'bpmaker_all_pages'; -
bulk-page-maker-light/trunk/includes/Admin.php
r2557773 r3291023 19 19 } 20 20 21 /** 22 * dispatch actions 23 * @param object $bulkpage 24 * @return void 25 */ 21 26 public function dispatch_actions( $bulkpage ) { 22 27 add_action( 'admin_init', [ $bulkpage, 'form_handler' ] ); 23 28 add_action( 'admin_post_bpm-delete-action', [ $bulkpage, 'delete_page' ] ); 29 30 // Add AJAX handler for React form submission 31 add_action( 'wp_ajax_bpm_create_bulk_pages', [ $bulkpage, 'ajax_create_bulk_pages' ] ); 24 32 } 25 33 } -
bulk-page-maker-light/trunk/includes/Admin/Bulk_Page.php
r2557773 r3291023 15 15 */ 16 16 public function plugin_page() { 17 17 18 18 $action = isset( $_GET['action'] ) ? sanitize_key( $_GET['action'] ) : 'list'; 19 19 20 20 switch ( $action ) { 21 21 case 'new': 22 wp_enqueue_script( 'bpm-script' );23 22 $template = __DIR__ . '/views/bulk-page-new.php'; 24 23 break; 25 24 26 25 default: 27 26 $template = __DIR__ . '/views/bulk-page-list.php'; … … 58 57 59 58 if( empty( $_POST['txt_pages_list'] ) ) { 60 $this->errors['page_names'] = __( 'Please provide at least one page/post name', ' sh-bpm-light' );59 $this->errors['page_names'] = __( 'Please provide at least one page/post name', 'bpm-light' ); 61 60 } else { 62 61 $pages = sanitize_textarea_field( $_POST['txt_pages_list'] ); … … 118 117 119 118 $redirected_to = admin_url( 'admin.php?page=bulk-page-maker&inserted=true', 'admin' ); 120 119 121 120 wp_redirect( $redirected_to ); 122 121 exit; … … 141 140 142 141 wp_redirect( $redirected_to ); 143 142 144 143 exit; 145 144 } 145 146 /** 147 * Process AJAX request from React app 148 * 149 * @return void 150 */ 151 public function ajax_create_bulk_pages() { 152 // Verify nonce 153 if (!check_ajax_referer('wp_rest', 'nonce', false)) { 154 wp_send_json_error([ 155 'message' => __('Security check failed. Please refresh the page and try again.', 'bpm-light') 156 ]); 157 return; 158 } 159 160 // Check user capabilities 161 if (!current_user_can('publish_pages')) { 162 wp_send_json_error([ 163 'message' => __('You do not have permission to create pages.', 'bpm-light') 164 ]); 165 return; 166 } 167 168 // Get the form data 169 $pages_list = isset($_POST['pages_list']) ? sanitize_text_field($_POST['pages_list']) : ''; 170 $page_content = isset($_POST['page_content']) ? wp_kses_post($_POST['page_content']) : ''; 171 $post_type = isset($_POST['post_type']) ? sanitize_text_field($_POST['post_type']) : 'page'; 172 $page_status = isset($_POST['page_status']) ? sanitize_text_field($_POST['page_status']) : 'publish'; 173 $comment_status = isset($_POST['comment_status']) ? sanitize_text_field($_POST['comment_status']) : 'closed'; 174 175 // Validate pages list 176 if (empty($pages_list)) { 177 wp_send_json_error([ 178 'message' => __('Please enter a list of pages/posts.', 'bpm-light') 179 ]); 180 return; 181 } 182 183 // Validate post type 184 if (!in_array($post_type, ['page', 'post'])) { 185 wp_send_json_error([ 186 'message' => __('Invalid post type.', 'bpm-light') 187 ]); 188 return; 189 } 190 191 // Validate post status 192 if (!in_array($page_status, ['publish', 'draft', 'pending'])) { 193 wp_send_json_error([ 194 'message' => __('Invalid post status.', 'bpm-light') 195 ]); 196 return; 197 } 198 199 // Validate comment status 200 if (!in_array($comment_status, ['open', 'closed'])) { 201 wp_send_json_error([ 202 'message' => __('Invalid comment status.', 'bpm-light') 203 ]); 204 return; 205 } 206 207 // Process the pages 208 $page_names = explode(',', $pages_list); 209 $page_names = array_map('trim', $page_names); 210 $page_names = array_filter($page_names); // Remove empty items 211 212 if (empty($page_names)) { 213 wp_send_json_error([ 214 'message' => __('Please enter valid page names.', 'bpm-light') 215 ]); 216 return; 217 } 218 219 $created_pages = []; 220 $failed_pages = []; 221 222 foreach ($page_names as $page_name) { 223 $page_args = [ 224 'post_type' => $post_type, 225 'post_title' => $page_name, 226 'post_content' => $page_content, 227 'post_status' => $page_status, 228 'comment_status' => $comment_status, 229 ]; 230 231 $page_id = wp_insert_post($page_args); 232 233 if (!is_wp_error($page_id) && $page_id > 0) { 234 $created_pages[] = $page_name; 235 } else { 236 $failed_pages[] = $page_name; 237 } 238 } 239 240 // Update transient for all pages 241 delete_transient('bpmaker_all_pages'); 242 delete_transient('bpmaker_pages_count'); 243 244 // Send response 245 if (count($created_pages) > 0) { 246 wp_send_json_success([ 247 'message' => sprintf( 248 __('%d %s created successfully: %s', 'bpm-light'), 249 count($created_pages), 250 $post_type === 'page' ? 'pages' : 'posts', 251 implode(', ', $created_pages) 252 ), 253 'created' => $created_pages, 254 'failed' => $failed_pages, 255 'clear_form' => count($failed_pages) === 0, // Clear form if all succeeded 256 ]); 257 } else { 258 wp_send_json_error([ 259 'message' => __('Failed to create pages/posts. Please try again.', 'bpm-light'), 260 'failed' => $failed_pages, 261 ]); 262 } 263 264 exit; 265 } 146 266 } -
bulk-page-maker-light/trunk/includes/Admin/Menu.php
r2557773 r3291023 23 23 $capability = 'manage_options'; 24 24 25 add_menu_page( __( 'Bulk Page Maker', ' sh-bpm-light' ), __( 'Bulk Page Maker', 'sh-bpm-light' ), $capability, $parent_slug, [ $this->bulkpage, 'plugin_page' ], 'dashicons-images-alt' );26 add_submenu_page( $parent_slug, __( 'All Pages', ' sh-bpm-light' ), __( 'Add New Pages', 'sh-bpm-light' ), $capability, $parent_slug, [ $this->bulkpage, 'plugin_page' ] );25 add_menu_page( __( 'Bulk Page Maker', 'bpm-light' ), __( 'Bulk Page Maker', 'bpm-light' ), $capability, $parent_slug, [ $this->bulkpage, 'plugin_page' ], 'dashicons-images-alt' ); 26 add_submenu_page( $parent_slug, __( 'All Pages', 'bpm-light' ), __( 'Add New Pages', 'bpm-light' ), $capability, $parent_slug, [ $this->bulkpage, 'plugin_page' ] ); 27 27 } 28 28 } -
bulk-page-maker-light/trunk/includes/Admin/Pages_List.php
r2565100 r3291023 82 82 function get_sortable_columns() { 83 83 $sortable_columns = [ 84 'post_date' => [ ' created_at', true ],84 'post_date' => [ 'date', true ], 85 85 'post_type' => [ 'post_type', true ], 86 86 'post_title' => [ 'post_title', true ] … … 114 114 ]; 115 115 116 117 116 if ( isset( $_REQUEST['orderby'] ) && isset( $_REQUEST['order'] ) ) { 118 $allowed_keys = [ 'post_title', 'post_type', 'date', 'asc', 'desc'];117 $allowed_keys = ['orderby', 'order']; 119 118 $orderby = sanitize_key( $_REQUEST['orderby'] ); 120 119 $order = sanitize_key( $_REQUEST['order'] ); 121 120 122 if( in_array( $orderby, $allowed_keys) ) {121 if( in_array($orderby, $allowed_keys, true) ) { 123 122 $args['orderby'] = $orderby; 124 123 } 125 124 126 if( in_array( $order, $allowed_keys) ) {127 $args['order']= $order;125 if( in_array($order, $allowed_keys, true) ) { 126 $args['order'] = $order; 128 127 } 129 128 } 130 129 131 130 $this->items = bpmaker_get_pages( $args ); 132 133 131 $this->set_pagination_args( [ 134 132 'total_items' => bpmaker_get_pages_count(), -
bulk-page-maker-light/trunk/includes/Admin/views/bulk-page-list.php
r2557773 r3291023 4 4 </h1> 5 5 <a href="<?php echo esc_url( admin_url('admin.php?page=bulk-page-maker&action=new') ); ?>" class="page-title-action"> 6 <?php _e( 'Add New', 'bulk-page-maker' ); ?> 6 <?php _e( 'Add New', 'bulk-page-maker' ); ?> 7 7 </a> 8 8 </ul> -
bulk-page-maker-light/trunk/includes/Admin/views/bulk-page-new.php
r2557773 r3291023 1 <div class="wrap"> 2 <h1 class="wp-heading-inline"><?php _e( 'New Pages', 'sh-bpm-light' ); ?></h1> 3 <div class="form-area"> 4 <form id="createForm" method="post" class=""> 5 <table class="form-table"> 6 <tbody> 7 <tr class="row<?php echo isset($this->errors['map_name']) ? ' form-invalid' : '' ?>"> 8 <th> 9 <?php _e( 'List of Pages/Posts', 'sh-bpm-light' ); ?><br><?php _e( '(Comma Separated)', 'sh-bpm-light' ); ?> <b>(*)</b> 10 </th> 11 <td> 12 <textarea id="txt_pages_list" name="txt_pages_list" class="regular-text"></textarea> 1 <!-- React App Container --> 2 <div id="bpm-create-new" class="bpm-pr-[20px] bpm-h-100vh"> 3 <noscript> 4 <strong> 5 <?php esc_html_e( "We're sorry but this page doesn't work properly without JavaScript. Please enable it to continue.", 'wp-user-frontend' ); ?> 6 </strong> 7 </noscript> 13 8 14 <?php if( isset( $this->errors['page_names'] )) { ?> 15 <br> 16 <span style="color: #B30000"><?php echo $this->errors['page_names']; ?></span> 17 <?php } ?> 18 19 <p class="description"> 20 <?php _e( 'eg. Page1, Page2, page3, PAGE4, PAge5', 'sh-bpm-light' ); ?> 21 </p> 22 </td> 23 </tr> 24 <tr class="row<?php echo isset($this->errors['page_contents']) ? ' form-invalid' : '' ?>"> 25 <th> 26 <?php _e( 'Page/Post content', 'sh-bpm-light' ); ?> 27 </th> 28 <td> 29 30 <?php if( isset( $this->errors['page_content'] )) { ?> 31 <br><span style="color: #B30000"><?php echo $this->errors['page_content']; ?></span> 32 33 <?php 34 } 35 36 $pages_content = filter_input( INPUT_POST, 'cmb_page_content', FILTER_SANITIZE_STRING ); 37 $content = ( isset( $pages_content ) ? htmlspecialchars_decode( $pages_content ) : '' ); 38 $settings = [ 39 'textarea_name' => 'cmb_page_content', 40 'editor_class' => 'requiredField', 41 'textarea_rows' => '6', 42 'media_buttons' => true, 43 'tinymce' => true, 44 ]; 45 wp_editor( $content, 'cmb_page_content', $settings ); 46 ?> 47 <p class="description"> 48 49 <?php 50 _e( 'eg. It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.', 'sh-bpm-light' ); 51 ?> 52 53 </p> 54 </td> 55 </tr> 56 <tr class="type_tr"> 57 <th> 58 <?php _e( 'Type', 'sh-bpm-light' ); ?> 59 </th> 60 <td> 61 <select id="cmb_post_type" name="cmb_post_type" class="regular-text"> 62 <option value="page">Page</option> 63 <option value="post">Post</option> 64 </select> 65 </td> 66 </tr> 67 <tr class="page_status_tr"> 68 <th><?php _e( 'Pages/Posts Status', 'sh-bpm-light' ); ?></th> 69 <td> 70 <select id="cmb_page_status" name="cmb_page_status" class="regular-text"> 71 <option value="publish">Publish</option> 72 <option value="pending">Pending</option> 73 <option value="draft">Draft</option> 74 </select> 75 </td> 76 </tr> 77 <tr class="comment_status_tr"> 78 <th>Pages/Posts Comment Status</th> 79 <td> 80 <select id="cmb_comment_status" name="cmb_comment_status" class="regular-text"> 81 <option value="closed">Closed</option> 82 <option value="open">Open</option> 83 </select> 84 </td> 85 </tr> 86 <tr class="parent_page_id_tr" class="regular-text"> 87 <th>Parent Page</th> 88 <td> 89 90 <?php 91 $args = [ 92 'show_option_none' => 'No Parent', 93 ]; 94 wp_dropdown_pages( $args ); 95 ?> 96 97 </td> 98 </tr> 99 </tbody> 100 </table> 101 102 <?php wp_nonce_field('bpm-nonce'); ?> 103 <?php submit_button( __('Add Pages', 'sh-bpm-light'), 'primary', 'btn_add_pages' ); ?> 104 105 </form> 106 </div> 9 <h2><?php esc_html_e( 'Loading', 'bpm-light' ); ?>...</h2> 107 10 </div> -
bulk-page-maker-light/trunk/includes/Assets.php
r2557773 r3291023 7 7 * 8 8 * @package default 9 * @author 9 * @author 10 10 **/ 11 11 class Assets { … … 15 15 * 16 16 * @return void 17 * @author 17 * @author 18 18 **/ 19 19 public function __construct() { … … 25 25 * @return void 26 26 */ 27 function enqueue_bpm_assets() { 28 wp_register_script( 'bpm-script', BPM_ASSETS . '/js/bpm-main.js', false, filemtime( BPM_PATH . '/assets/js/bpm-main.js' ), true ); 27 function enqueue_bpm_assets($hook) { 28 // Only load React scripts on our plugin page 29 $screen = get_current_screen(); 30 if ( $screen && strpos( $screen->id, 'bulk-page-maker' ) !== false ) { 31 // Enqueue the compiled React script 32 if ( file_exists( BPM_PATH . '/build/index.asset.php' ) ) { 33 $dependencies = require_once BPM_PATH . '/build/index.asset.php'; 34 35 wp_enqueue_script( 36 'bpm-react-app', 37 BPM_URL . '/build/index.js', 38 $dependencies['dependencies'], 39 $dependencies['version'], 40 true 41 ); 42 43 wp_enqueue_style( 44 'bpm-react-styles', 45 BPM_URL . '/build/index.css', 46 [], 47 filemtime( BPM_PATH . '/build/index.css' ) 48 ); 49 50 // Add data to be available in React 51 wp_localize_script( 52 'bpm-react-app', 53 'bpmData', 54 [ 55 'nonce' => wp_create_nonce( 'wp_rest' ), 56 'ajaxUrl' => admin_url( 'admin-ajax.php' ), 57 'restUrl' => esc_url_raw( rest_url() ), 58 'pluginName' => 'Bulk Page Maker Light', 59 'pluginVersion' => BPM_VERSION, 60 ] 61 ); 62 } 63 } 29 64 } 30 65 } -
bulk-page-maker-light/trunk/includes/functions.php
r2576225 r3291023 8 8 function bpmaker_insert_pages_info( $args = [] ) { 9 9 global $wpdb; 10 11 $transient_posts = 'bpmaker_all_pages'; 12 $transient_count = 'bpmaker_pages_count'; 10 13 11 14 $defaults = [ … … 29 32 } 30 33 34 // delete releated transient 35 if ( false !== get_transient( $transient_count ) ) { 36 delete_transient( $transient_count ); 37 } 38 39 // delete releated transient 40 if ( false !== get_transient( $transient_posts ) ) { 41 delete_transient( $transient_posts ); 42 } 43 31 44 return $wpdb->insert_id; 32 45 } … … 39 52 function bpmaker_get_pages( $args = [] ) { 40 53 global $wpdb; 54 $transient = 'bpmaker_all_pages'; 41 55 42 56 $defaults = [ … … 58 72 ); 59 73 60 $items = $wpdb->get_results( $sql ); 74 // store pages in a transient 75 if ( false === ( $items = get_transient( $transient ) ) ) { 76 $items = $wpdb->get_results( $sql ); 77 set_transient( $transient, $items, MONTH_IN_SECONDS ); 78 } 61 79 62 80 return $items; … … 69 87 function bpmaker_get_pages_count() { 70 88 global $wpdb; 89 $transient = 'bpmaker_pages_count'; 71 90 72 $count = (int) $wpdb->get_var( "SELECT count(id) FROM {$wpdb->prefix}bpm_pages" ); 91 if ( false === ( $count = get_transient( $transient ) ) ) { 92 $count = (int) $wpdb->get_var( "SELECT count(id) FROM {$wpdb->prefix}bpm_pages" ); 93 set_transient( $transient, $count, MONTH_IN_SECONDS ); 94 } 73 95 74 96 return $count; … … 95 117 function bpmaker_delete_page( $post_id ) { 96 118 global $wpdb; 119 $transient_posts = 'bpmaker_all_pages'; 120 $transient_count = 'bpmaker_pages_count'; 121 122 // delete releated transient 123 if ( false !== get_transient( $transient_count ) ) { 124 delete_transient( $transient_count ); 125 } 126 127 // delete releated transient 128 if ( false !== get_transient( $transient_posts ) ) { 129 delete_transient( $transient_posts ); 130 } 97 131 98 132 // delete from posts table -
bulk-page-maker-light/trunk/readme.txt
r2557773 r3291023 2 2 Contributors: sapayth 3 3 Donate link: 4 Tags: page, pages, bulk, bulk page, bulk post, page generator, post generator, multiple post generator, multiple page generator4 Tags: bulk post creation, WordPress page generator, create multiple posts, bulk post generator, post, posts, bulk, post generator, multiple post generator, multiple page generator 5 5 Requires at least: 5.6 6 Tested up to: 5.77 Stable tag: 5.18 Requires PHP: 5.66 Tested up to: 6.8 7 Stable tag: 2.0.0 8 Requires PHP: 7.4 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html 11 11 12 Bulk Page Maker is a light plugin to make multiple pages or posts on a single click.12 Bulk Page Maker Light – Instantly create unlimited WordPress pages or posts in one click! Save hours and supercharge your site-building workflow. 13 13 14 14 == Description == 15 15 16 Bulk Page Maker is a light plugin for WordPress pages and posts creation. You can make a thousands of pages or posts by a single click with Bulk Page maker. Activate and enjoy Bulk Page Maker with: 17 - Type selection option (Page or Post) 18 - Status selection option (Publish, Pending, Draft etc.) 19 - Comment status (Open or Closed) 20 - Select parent page 16 **Bulk Page Maker Light** is the fastest way to create hundreds or thousands of WordPress pages or posts in seconds. Perfect for agencies, site builders, bloggers, and anyone who needs to generate content at scale. No more repetitive manual work—just enter your titles, choose your options, and let Bulk Page Maker Light do the rest! 17 18 **Key Features:** 19 - 🚀 **Unlimited bulk page or post creation** – Generate as many pages or posts as you need, instantly. 20 - 📝 **Flexible content types** – Choose between Pages or Posts. 21 - 📅 **Status selection** – Set to Publish, Pending or more. 22 - 💬 **Comment status control** – Open or close comments on creation. 23 - 🏷️ **Parent page selection** – Organize your content with parent/child hierarchy. 24 - ⚡ **Lightning-fast and lightweight** – Minimal impact on your site's performance. 25 - 🛡️ **Safe and secure** – Built to WordPress coding standards for maximum compatibility. 26 27 **Why Choose Bulk Page Maker Light?** 28 - Save hours of manual work 29 - Perfect for launching new sites, SEO projects, or content migrations 30 - No coding required – simple, intuitive interface 31 32 **Get started in seconds and experience the easiest way to bulk create WordPress pages or posts!** 21 33 22 34 == Installation == … … 24 36 = Minimum Requirements = 25 37 26 * PHP 7. 0 or higher is recommended27 * MySQL 5.1 or higher is recommended38 * PHP 7.4 or higher 39 * MySQL 5.1 or higher 28 40 29 41 = Automatic installation = 30 42 31 Automatic installation is the easiest option -- WordPress will handles the file transfer, and you won’t need to leave your web browser. To do an automatic install of Bulk Page Maker, log in to your WordPress dashboard, navigate to the Plugins menu, and click “Add New.” 32 33 In the search field type “Bulk Page Maker”, then click “Search Plugins.” Once you’ve the plugin, you can install it by Clicking “Install Now” and WordPress will take it from there. 43 1. Log in to your WordPress dashboard. 44 2. Go to Plugins > Add New. 45 3. Search for "Bulk Page Maker Light". 46 4. Click "Install Now" and then "Activate". 34 47 35 48 = Manual installation = 36 49 37 Manual installation method requires downloading the Bulk Page Maker plugin and uploading it to your web server via your favorite FTP application. The WordPress codex contains [instructions on how to do this here](https://wordpress.org/support/article/managing-plugins/#manual-plugin-installation). 50 1. Download the Bulk Page Maker Light plugin. 51 2. Upload the plugin folder to your `/wp-content/plugins/` directory via FTP. 52 3. Activate the plugin through the Plugins menu in WordPress. 38 53 39 54 = Updating = 40 55 41 Automatic updates should work smoothly, I still recommend you back up your site. 56 Automatic updates are supported. Always back up your site before updating. 57 58 == Frequently Asked Questions == 59 60 = Is there a limit to how many pages or posts I can create? = 61 No! You can create as many as you need, limited only by your server resources. 62 63 = Does this plugin work with custom post types? = 64 Currently, Bulk Page Maker Light supports Pages and Posts. Support for custom post types is coming soon! 65 66 = Will this slow down my website? = 67 No, Bulk Page Maker Light is optimized for performance and built to WordPress standards. 42 68 43 69 == Screenshots == 44 70 45 1. Light and User Friendly UI screenshot-1.jpg 46 2. Post Type screenshot-2.jpg 47 3. Page/Post status screenshot-3.jpg 48 4. Page/Post commengitn status screenshot-4.jpg 71 1. Instantly add pages or posts in bulk – screenshot-1.png 72 2. Flexible options for custom content – screenshot-2.png 49 73 74 == Changelog == 75 76 = 2.0.0 = 77 * Revamped public release. 78 79 == Upgrade Notice == 80 81 = 2.0.0 = 82 First release of Bulk Page Maker Light. Enjoy bulk page and post creation! -
bulk-page-maker-light/trunk/vendor/autoload.php
r2279238 r3291023 3 3 // autoload.php @generated by Composer 4 4 5 if (PHP_VERSION_ID < 50600) { 6 if (!headers_sent()) { 7 header('HTTP/1.1 500 Internal Server Error'); 8 } 9 $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL; 10 if (!ini_get('display_errors')) { 11 if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { 12 fwrite(STDERR, $err); 13 } elseif (!headers_sent()) { 14 echo $err; 15 } 16 } 17 trigger_error( 18 $err, 19 E_USER_ERROR 20 ); 21 } 22 5 23 require_once __DIR__ . '/composer/autoload_real.php'; 6 24 7 return ComposerAutoloaderInit 399471fa877346621c4fe8120f0b7096::getLoader();25 return ComposerAutoloaderInitbdf5c980198440bb0bcef7a745b454de::getLoader(); -
bulk-page-maker-light/trunk/vendor/composer/ClassLoader.php
r2279238 r3291023 38 38 * @author Fabien Potencier <[email protected]> 39 39 * @author Jordi Boggiano <[email protected]> 40 * @see http ://www.php-fig.org/psr/psr-0/41 * @see http ://www.php-fig.org/psr/psr-4/40 * @see https://www.php-fig.org/psr/psr-0/ 41 * @see https://www.php-fig.org/psr/psr-4/ 42 42 */ 43 43 class ClassLoader 44 44 { 45 /** @var \Closure(string):void */ 46 private static $includeFile; 47 48 /** @var string|null */ 49 private $vendorDir; 50 45 51 // PSR-4 52 /** 53 * @var array<string, array<string, int>> 54 */ 46 55 private $prefixLengthsPsr4 = array(); 56 /** 57 * @var array<string, list<string>> 58 */ 47 59 private $prefixDirsPsr4 = array(); 60 /** 61 * @var list<string> 62 */ 48 63 private $fallbackDirsPsr4 = array(); 49 64 50 65 // PSR-0 66 /** 67 * List of PSR-0 prefixes 68 * 69 * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) 70 * 71 * @var array<string, array<string, list<string>>> 72 */ 51 73 private $prefixesPsr0 = array(); 74 /** 75 * @var list<string> 76 */ 52 77 private $fallbackDirsPsr0 = array(); 53 78 79 /** @var bool */ 54 80 private $useIncludePath = false; 81 82 /** 83 * @var array<string, string> 84 */ 55 85 private $classMap = array(); 86 87 /** @var bool */ 56 88 private $classMapAuthoritative = false; 89 90 /** 91 * @var array<string, bool> 92 */ 57 93 private $missingClasses = array(); 94 95 /** @var string|null */ 58 96 private $apcuPrefix; 59 97 98 /** 99 * @var array<string, self> 100 */ 101 private static $registeredLoaders = array(); 102 103 /** 104 * @param string|null $vendorDir 105 */ 106 public function __construct($vendorDir = null) 107 { 108 $this->vendorDir = $vendorDir; 109 self::initializeIncludeClosure(); 110 } 111 112 /** 113 * @return array<string, list<string>> 114 */ 60 115 public function getPrefixes() 61 116 { 62 117 if (!empty($this->prefixesPsr0)) { 63 return call_user_func_array('array_merge', $this->prefixesPsr0);118 return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); 64 119 } 65 120 … … 67 122 } 68 123 124 /** 125 * @return array<string, list<string>> 126 */ 69 127 public function getPrefixesPsr4() 70 128 { … … 72 130 } 73 131 132 /** 133 * @return list<string> 134 */ 74 135 public function getFallbackDirs() 75 136 { … … 77 138 } 78 139 140 /** 141 * @return list<string> 142 */ 79 143 public function getFallbackDirsPsr4() 80 144 { … … 82 146 } 83 147 148 /** 149 * @return array<string, string> Array of classname => path 150 */ 84 151 public function getClassMap() 85 152 { … … 88 155 89 156 /** 90 * @param array $classMap Class to filename map 157 * @param array<string, string> $classMap Class to filename map 158 * 159 * @return void 91 160 */ 92 161 public function addClassMap(array $classMap) … … 103 172 * appending or prepending to the ones previously set for this prefix. 104 173 * 105 * @param string $prefix The prefix 106 * @param array|string $paths The PSR-0 root directories 107 * @param bool $prepend Whether to prepend the directories 174 * @param string $prefix The prefix 175 * @param list<string>|string $paths The PSR-0 root directories 176 * @param bool $prepend Whether to prepend the directories 177 * 178 * @return void 108 179 */ 109 180 public function add($prefix, $paths, $prepend = false) 110 181 { 182 $paths = (array) $paths; 111 183 if (!$prefix) { 112 184 if ($prepend) { 113 185 $this->fallbackDirsPsr0 = array_merge( 114 (array)$paths,186 $paths, 115 187 $this->fallbackDirsPsr0 116 188 ); … … 118 190 $this->fallbackDirsPsr0 = array_merge( 119 191 $this->fallbackDirsPsr0, 120 (array)$paths192 $paths 121 193 ); 122 194 } … … 127 199 $first = $prefix[0]; 128 200 if (!isset($this->prefixesPsr0[$first][$prefix])) { 129 $this->prefixesPsr0[$first][$prefix] = (array)$paths;201 $this->prefixesPsr0[$first][$prefix] = $paths; 130 202 131 203 return; … … 133 205 if ($prepend) { 134 206 $this->prefixesPsr0[$first][$prefix] = array_merge( 135 (array)$paths,207 $paths, 136 208 $this->prefixesPsr0[$first][$prefix] 137 209 ); … … 139 211 $this->prefixesPsr0[$first][$prefix] = array_merge( 140 212 $this->prefixesPsr0[$first][$prefix], 141 (array)$paths213 $paths 142 214 ); 143 215 } … … 148 220 * appending or prepending to the ones previously set for this namespace. 149 221 * 150 * @param string $prefix The prefix/namespace, with trailing '\\'151 * @param array|string $paths The PSR-4 base directories152 * @param bool $prepend Whether to prepend the directories222 * @param string $prefix The prefix/namespace, with trailing '\\' 223 * @param list<string>|string $paths The PSR-4 base directories 224 * @param bool $prepend Whether to prepend the directories 153 225 * 154 226 * @throws \InvalidArgumentException 227 * 228 * @return void 155 229 */ 156 230 public function addPsr4($prefix, $paths, $prepend = false) 157 231 { 232 $paths = (array) $paths; 158 233 if (!$prefix) { 159 234 // Register directories for the root namespace. 160 235 if ($prepend) { 161 236 $this->fallbackDirsPsr4 = array_merge( 162 (array)$paths,237 $paths, 163 238 $this->fallbackDirsPsr4 164 239 ); … … 166 241 $this->fallbackDirsPsr4 = array_merge( 167 242 $this->fallbackDirsPsr4, 168 (array)$paths243 $paths 169 244 ); 170 245 } … … 176 251 } 177 252 $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; 178 $this->prefixDirsPsr4[$prefix] = (array)$paths;253 $this->prefixDirsPsr4[$prefix] = $paths; 179 254 } elseif ($prepend) { 180 255 // Prepend directories for an already registered namespace. 181 256 $this->prefixDirsPsr4[$prefix] = array_merge( 182 (array)$paths,257 $paths, 183 258 $this->prefixDirsPsr4[$prefix] 184 259 ); … … 187 262 $this->prefixDirsPsr4[$prefix] = array_merge( 188 263 $this->prefixDirsPsr4[$prefix], 189 (array)$paths264 $paths 190 265 ); 191 266 } … … 196 271 * replacing any others previously set for this prefix. 197 272 * 198 * @param string $prefix The prefix 199 * @param array|string $paths The PSR-0 base directories 273 * @param string $prefix The prefix 274 * @param list<string>|string $paths The PSR-0 base directories 275 * 276 * @return void 200 277 */ 201 278 public function set($prefix, $paths) … … 212 289 * replacing any others previously set for this namespace. 213 290 * 214 * @param string $prefix The prefix/namespace, with trailing '\\'215 * @param array|string $paths The PSR-4 base directories291 * @param string $prefix The prefix/namespace, with trailing '\\' 292 * @param list<string>|string $paths The PSR-4 base directories 216 293 * 217 294 * @throws \InvalidArgumentException 295 * 296 * @return void 218 297 */ 219 298 public function setPsr4($prefix, $paths) … … 235 314 * 236 315 * @param bool $useIncludePath 316 * 317 * @return void 237 318 */ 238 319 public function setUseIncludePath($useIncludePath) … … 257 338 * 258 339 * @param bool $classMapAuthoritative 340 * 341 * @return void 259 342 */ 260 343 public function setClassMapAuthoritative($classMapAuthoritative) … … 277 360 * 278 361 * @param string|null $apcuPrefix 362 * 363 * @return void 279 364 */ 280 365 public function setApcuPrefix($apcuPrefix) … … 297 382 * 298 383 * @param bool $prepend Whether to prepend the autoloader or not 384 * 385 * @return void 299 386 */ 300 387 public function register($prepend = false) 301 388 { 302 389 spl_autoload_register(array($this, 'loadClass'), true, $prepend); 390 391 if (null === $this->vendorDir) { 392 return; 393 } 394 395 if ($prepend) { 396 self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; 397 } else { 398 unset(self::$registeredLoaders[$this->vendorDir]); 399 self::$registeredLoaders[$this->vendorDir] = $this; 400 } 303 401 } 304 402 305 403 /** 306 404 * Unregisters this instance as an autoloader. 405 * 406 * @return void 307 407 */ 308 408 public function unregister() 309 409 { 310 410 spl_autoload_unregister(array($this, 'loadClass')); 411 412 if (null !== $this->vendorDir) { 413 unset(self::$registeredLoaders[$this->vendorDir]); 414 } 311 415 } 312 416 … … 315 419 * 316 420 * @param string $class The name of the class 317 * @return bool|null True if loaded, null otherwise421 * @return true|null True if loaded, null otherwise 318 422 */ 319 423 public function loadClass($class) 320 424 { 321 425 if ($file = $this->findFile($class)) { 322 includeFile($file); 426 $includeFile = self::$includeFile; 427 $includeFile($file); 323 428 324 429 return true; 325 430 } 431 432 return null; 326 433 } 327 434 … … 368 475 } 369 476 477 /** 478 * Returns the currently registered loaders keyed by their corresponding vendor directories. 479 * 480 * @return array<string, self> 481 */ 482 public static function getRegisteredLoaders() 483 { 484 return self::$registeredLoaders; 485 } 486 487 /** 488 * @param string $class 489 * @param string $ext 490 * @return string|false 491 */ 370 492 private function findFileWithExtension($class, $ext) 371 493 { … … 433 555 return false; 434 556 } 557 558 /** 559 * @return void 560 */ 561 private static function initializeIncludeClosure() 562 { 563 if (self::$includeFile !== null) { 564 return; 565 } 566 567 /** 568 * Scope isolated include. 569 * 570 * Prevents access to $this/self from included files. 571 * 572 * @param string $file 573 * @return void 574 */ 575 self::$includeFile = \Closure::bind(static function($file) { 576 include $file; 577 }, null, null); 578 } 435 579 } 436 437 /**438 * Scope isolated include.439 *440 * Prevents access to $this/self from included files.441 */442 function includeFile($file)443 {444 include $file;445 } -
bulk-page-maker-light/trunk/vendor/composer/autoload_classmap.php
r2279238 r3291023 3 3 // autoload_classmap.php @generated by Composer 4 4 5 $vendorDir = dirname( dirname(__FILE__));5 $vendorDir = dirname(__DIR__); 6 6 $baseDir = dirname($vendorDir); 7 7 8 8 return array( 9 'Bulk\\Page\\Maker\\Admin' => $baseDir . '/includes/Admin.php', 10 'Bulk\\Page\\Maker\\Admin\\Bulk_Page' => $baseDir . '/includes/Admin/Bulk_Page.php', 11 'Bulk\\Page\\Maker\\Admin\\Menu' => $baseDir . '/includes/Admin/Menu.php', 12 'Bulk\\Page\\Maker\\Admin\\Pages_List' => $baseDir . '/includes/Admin/Pages_List.php', 13 'Bulk\\Page\\Maker\\Assets' => $baseDir . '/includes/Assets.php', 14 'Bulk\\Page\\Maker\\Installer' => $baseDir . '/includes/Installer.php', 15 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 9 16 ); -
bulk-page-maker-light/trunk/vendor/composer/autoload_files.php
r2279238 r3291023 3 3 // autoload_files.php @generated by Composer 4 4 5 $vendorDir = dirname( dirname(__FILE__));5 $vendorDir = dirname(__DIR__); 6 6 $baseDir = dirname($vendorDir); 7 7 -
bulk-page-maker-light/trunk/vendor/composer/autoload_namespaces.php
r2279238 r3291023 3 3 // autoload_namespaces.php @generated by Composer 4 4 5 $vendorDir = dirname( dirname(__FILE__));5 $vendorDir = dirname(__DIR__); 6 6 $baseDir = dirname($vendorDir); 7 7 -
bulk-page-maker-light/trunk/vendor/composer/autoload_psr4.php
r2279238 r3291023 3 3 // autoload_psr4.php @generated by Composer 4 4 5 $vendorDir = dirname( dirname(__FILE__));5 $vendorDir = dirname(__DIR__); 6 6 $baseDir = dirname($vendorDir); 7 7 -
bulk-page-maker-light/trunk/vendor/composer/autoload_real.php
r2279238 r3291023 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 399471fa877346621c4fe8120f0b70965 class ComposerAutoloaderInitbdf5c980198440bb0bcef7a745b454de 6 6 { 7 7 private static $loader; … … 23 23 } 24 24 25 spl_autoload_register(array('ComposerAutoloaderInit 399471fa877346621c4fe8120f0b7096', 'loadClassLoader'), true, true);26 self::$loader = $loader = new \Composer\Autoload\ClassLoader( );27 spl_autoload_unregister(array('ComposerAutoloaderInit 399471fa877346621c4fe8120f0b7096', 'loadClassLoader'));25 spl_autoload_register(array('ComposerAutoloaderInitbdf5c980198440bb0bcef7a745b454de', 'loadClassLoader'), true, true); 26 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 27 spl_autoload_unregister(array('ComposerAutoloaderInitbdf5c980198440bb0bcef7a745b454de', 'loadClassLoader')); 28 28 29 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); 30 if ($useStaticLoader) { 31 require_once __DIR__ . '/autoload_static.php'; 32 33 call_user_func(\Composer\Autoload\ComposerStaticInit399471fa877346621c4fe8120f0b7096::getInitializer($loader)); 34 } else { 35 $map = require __DIR__ . '/autoload_namespaces.php'; 36 foreach ($map as $namespace => $path) { 37 $loader->set($namespace, $path); 38 } 39 40 $map = require __DIR__ . '/autoload_psr4.php'; 41 foreach ($map as $namespace => $path) { 42 $loader->setPsr4($namespace, $path); 43 } 44 45 $classMap = require __DIR__ . '/autoload_classmap.php'; 46 if ($classMap) { 47 $loader->addClassMap($classMap); 48 } 49 } 29 require __DIR__ . '/autoload_static.php'; 30 call_user_func(\Composer\Autoload\ComposerStaticInitbdf5c980198440bb0bcef7a745b454de::getInitializer($loader)); 50 31 51 32 $loader->register(true); 52 33 53 if ($useStaticLoader) { 54 $includeFiles = Composer\Autoload\ComposerStaticInit399471fa877346621c4fe8120f0b7096::$files; 55 } else { 56 $includeFiles = require __DIR__ . '/autoload_files.php'; 57 } 58 foreach ($includeFiles as $fileIdentifier => $file) { 59 composerRequire399471fa877346621c4fe8120f0b7096($fileIdentifier, $file); 34 $filesToLoad = \Composer\Autoload\ComposerStaticInitbdf5c980198440bb0bcef7a745b454de::$files; 35 $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { 36 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { 37 $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; 38 39 require $file; 40 } 41 }, null, null); 42 foreach ($filesToLoad as $fileIdentifier => $file) { 43 $requireFile($fileIdentifier, $file); 60 44 } 61 45 … … 63 47 } 64 48 } 65 66 function composerRequire399471fa877346621c4fe8120f0b7096($fileIdentifier, $file)67 {68 if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {69 require $file;70 71 $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;72 }73 } -
bulk-page-maker-light/trunk/vendor/composer/autoload_static.php
r2279238 r3291023 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 399471fa877346621c4fe8120f0b70967 class ComposerStaticInitbdf5c980198440bb0bcef7a745b454de 8 8 { 9 9 public static $files = array ( … … 25 25 ); 26 26 27 public static $classMap = array ( 28 'Bulk\\Page\\Maker\\Admin' => __DIR__ . '/../..' . '/includes/Admin.php', 29 'Bulk\\Page\\Maker\\Admin\\Bulk_Page' => __DIR__ . '/../..' . '/includes/Admin/Bulk_Page.php', 30 'Bulk\\Page\\Maker\\Admin\\Menu' => __DIR__ . '/../..' . '/includes/Admin/Menu.php', 31 'Bulk\\Page\\Maker\\Admin\\Pages_List' => __DIR__ . '/../..' . '/includes/Admin/Pages_List.php', 32 'Bulk\\Page\\Maker\\Assets' => __DIR__ . '/../..' . '/includes/Assets.php', 33 'Bulk\\Page\\Maker\\Installer' => __DIR__ . '/../..' . '/includes/Installer.php', 34 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 35 ); 36 27 37 public static function getInitializer(ClassLoader $loader) 28 38 { 29 39 return \Closure::bind(function () use ($loader) { 30 $loader->prefixLengthsPsr4 = ComposerStaticInit399471fa877346621c4fe8120f0b7096::$prefixLengthsPsr4; 31 $loader->prefixDirsPsr4 = ComposerStaticInit399471fa877346621c4fe8120f0b7096::$prefixDirsPsr4; 40 $loader->prefixLengthsPsr4 = ComposerStaticInitbdf5c980198440bb0bcef7a745b454de::$prefixLengthsPsr4; 41 $loader->prefixDirsPsr4 = ComposerStaticInitbdf5c980198440bb0bcef7a745b454de::$prefixDirsPsr4; 42 $loader->classMap = ComposerStaticInitbdf5c980198440bb0bcef7a745b454de::$classMap; 32 43 33 44 }, null, ClassLoader::class); -
bulk-page-maker-light/trunk/vendor/composer/installed.json
r2279238 r3291023 1 [] 1 { 2 "packages": [], 3 "dev": true, 4 "dev-package-names": [] 5 }
Note: See TracChangeset
for help on using the changeset viewer.