PluginProbe
Block Manager / 3.2.1
Block Manager v3.2.1
trunk 1.0 1.0.1 1.1 1.2 1.2.1 1.2.2 1.2.3c 1.2.4 1.2.5 2.0.0 2.1.0 2.1.0.1 2.1.1 3.0.0 3.1.0 3.1.1 3.1.2 3.2.0 3.2.1
block-manager / api / export.php

export.php in Block Manager 3.2.1, at api/export.php

91 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * API Route: Export block settings as PHP.
4 *
5 * @since 1.0
6 * @package blockmanager
7 */
8
9 add_action(
10 'rest_api_init',
11 function () {
12 $my_namespace = 'gbm';
13 $my_endpoint = '/export';
14 register_rest_route(
15 $my_namespace,
16 $my_endpoint,
17 array(
18 'methods' => 'GET',
19 'callback' => 'block_manager_export',
20 'permission_callback' => function () {
21 return Gutenberg_Block_Manager::has_access();
22 },
23 )
24 );
25 }
26 );
27
28 /**
29 * Export disabled blocks as an erray.
30 *
31 * @param WP_REST_Request $request The API request data.
32 * @since 1.0
33 */
34 function block_manager_export( WP_REST_Request $request ) {
35 if ( is_user_logged_in() && current_user_can( apply_filters( 'block_manager_user_role', 'activate_plugins' ) ) ) {
36 $type = filter_input( INPUT_GET, 'type', @FILTER_SANITIZE_STRING ); // phpcs:ignore
37
38 switch($type) {
39 case 'blocks':
40 $filtered_blocks = GBM_Blocks::gbm_get_filtered_blocks();
41 $blocks = GBM_Blocks::gbm_get_disabled_blocks();
42 wp_send_json(
43 [
44 'success' => true,
45 'code' => wp_json_encode( array_merge( $blocks, $filtered_blocks ) ),
46 ]
47 );
48 break;
49
50 case 'patterns':
51 $filtered_patterns = GBM_Patterns::gbm_get_filtered_patterns();
52 $patterns = GBM_Patterns::gbm_get_disabled_patterns();
53 wp_send_json(
54 [
55 'success' => true,
56 'code' => wp_json_encode( array_merge( $patterns, $filtered_patterns ) ),
57 ]
58 );
59 break;
60
61 case 'categories':
62 $filtered_categories = GBM_Categories::gbm_get_filtered_categories();
63 $categories = GBM_Categories::gbm_get_block_categories();
64 wp_send_json(
65 [
66 'success' => true,
67 'code' => wp_json_encode( array_merge( $categories, $filtered_categories ) ),
68 ]
69 );
70 break;
71 }
72
73 wp_send_json(
74 [
75 'success' => false,
76 ]
77 );
78
79 } else {
80 wp_send_json(
81 [
82 'success' => false,
83 'msg' => __(
84 'Unatuhorized.',
85 'block-manager'
86 ),
87 ]
88 );
89 }
90 }
91