PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 4.9.2
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v4.9.2
4.9.2 4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 All 200 releases
← All changes | includes/Editors/BlockEditor.php +150 -135 3.3.44.9.2 View file →
@@ -2,177 +2,192 @@
2 2
3 3 namespace WPDeveloper\BetterDocs\Editors;
4 4
5 5 if ( ! defined( 'ABSPATH' ) ) {
6 - exit; // Exit if accessed directly
6 + exit; // Exit if accessed directly
7 7 }
8 8
9 -use WPDeveloper\BetterDocs\Editors\BlockEditor\Patterns\BasePattern;
9 +use WPDeveloper\BetterDocs\Utils\Helper;
10 +use WPDeveloper\BetterDocs\Editors\BlockEditor\FontLoader;
10 11 use WPDeveloper\BetterDocs\Editors\BlockEditor\StyleHandler;
11 -use WPDeveloper\BetterDocs\Editors\BlockEditor\FontLoader;
12 12 use WPDeveloper\BetterDocs\Editors\BlockEditor\TemplatesController;
13 +use WPDeveloper\BetterDocs\Editors\BlockEditor\Patterns\BasePattern;
13 14
14 15 class BlockEditor extends BaseEditor {
15 16
16 - public function init() {
17 - betterdocs()->container->get( TemplatesController::class );
17 + public function init() {
18 + betterdocs()->container->get( TemplatesController::class );
18 19
19 - add_action( 'admin_init', [$this, 'enqueue'] );
20 - add_action( 'admin_enqueue_scripts', [$this, 'enqueue'] );
20 + add_action( 'admin_init', [ $this, 'enqueue' ] );
21 + add_action( 'admin_enqueue_scripts', [ $this, 'enqueue' ] );
21 22
22 - $_blocks_category_hook = version_compare( get_bloginfo( 'version' ), '5.8', '>=' ) ? 'block_categories_all' : 'block_categories';
23 - add_filter( $_blocks_category_hook, [$this, 'register_category'], 9, 1 );
23 + $_blocks_category_hook = version_compare( get_bloginfo( 'version' ), '5.8', '>=' ) ? 'block_categories_all' : 'block_categories';
24 + add_filter( $_blocks_category_hook, [ $this, 'register_category' ], 9, 1 );
24 25
25 - StyleHandler::get_instance();
26 - FontLoader::get_instance();
26 + StyleHandler::get_instance();
27 + FontLoader::get_instance();
27 28
28 - $this->register_blocks();
29 + $this->register_blocks();
29 30
30 - add_action( 'init', [$this, 'pattern_category'] );
31 + add_action( 'init', [ $this, 'pattern_category' ] );
31 32
32 - $this->pattern_initialization();
33 - }
33 + $this->pattern_initialization();
34 + }
34 35
35 - /**
36 - * Pattren category registration.
37 - * @return void
38 - */
39 - public function pattern_category() {
40 - register_block_pattern_category(
41 - 'batterdocs',
42 - array( 'label' => __( 'BetterDocs', 'betterdocs' ) )
43 - );
44 - }
36 + /**
37 + * Pattren category registration.
38 + * @return void
39 + */
40 + public function pattern_category() {
41 + register_block_pattern_category(
42 + 'batterdocs',
43 + [ 'label' => __( 'BetterDocs', 'betterdocs' ) ]
44 + );
45 + }
45 46
46 - /**
47 - * Get all the Pattrens initialized.
48 - * @return void
49 - */
50 - public function pattern_initialization() {
51 - $_api_classes = scandir( __DIR__ . DIRECTORY_SEPARATOR . 'BlockEditor' . DIRECTORY_SEPARATOR . 'Patterns' );
47 + /**
48 + * Get all the Pattrens initialized.
49 + * @return void
50 + */
51 + public function pattern_initialization() {
52 + $_api_classes = scandir( __DIR__ . DIRECTORY_SEPARATOR . 'BlockEditor' . DIRECTORY_SEPARATOR . 'Patterns' );
52 53
53 - if ( ! empty( $_api_classes ) && is_array( $_api_classes ) ) {
54 - foreach ( $_api_classes as $class ) {
55 - if ( $class == '.' || $class == '..' || $class == 'BasePattern.php' || strpos( $class, '.' ) === 0) {
56 - continue;
57 - }
54 + if ( ! empty( $_api_classes ) && is_array( $_api_classes ) ) {
55 + foreach ( $_api_classes as $class ) {
56 + if ( $class == '.' || $class == '..' || $class == 'BasePattern.php' || strpos( $class, '.' ) === 0 ) {
57 + continue;
58 + }
58 59
59 - $classname = basename( $class, '.php' );
60 - $classname = '\\' . __NAMESPACE__ . "\\BlockEditor\\Patterns\\$classname";
61 - $patterns_class = betterdocs()->container->get( $classname );
60 + $classname = basename( $class, '.php' );
61 + $classname = '\\' . __NAMESPACE__ . "\\BlockEditor\\Patterns\\$classname";
62 + $patterns_class = betterdocs()->container->get( $classname );
62 63
63 - if ( $patterns_class instanceof BasePattern ) {
64 - $patterns_class->pattern_category();
65 - $patterns_class->register();
66 - }
67 - }
68 - }
69 - }
64 + if ( $patterns_class instanceof BasePattern ) {
65 + $patterns_class->pattern_category();
66 + $patterns_class->register();
67 + }
68 + }
69 + }
70 + }
70 71
71 - public function admin_init() {
72 - $blocks = $this->get_blocks();
72 + public function admin_init() {
73 + $blocks = $this->get_blocks();
73 74
74 - if ( empty( $blocks ) || ! is_array( $blocks ) ) {
75 - return;
76 - }
75 + if ( empty( $blocks ) || ! is_array( $blocks ) ) {
76 + return;
77 + }
77 78
78 - foreach ( $blocks as $block_name => $block ) {
79 - if ( isset( $block['object'] ) ) {
80 - $block_object = betterdocs()->container->get( $block['object'] );
79 + foreach ( $blocks as $block_name => $block ) {
80 + if ( isset( $block['object'] ) ) {
81 + $block_object = betterdocs()->container->get( $block['object'] );
81 82
82 - if ( ! $block_object->can_enable() ) {
83 - continue;
84 - }
83 + if ( ! $block_object->can_enable() ) {
84 + continue;
85 + }
85 86
86 - $block_object->register_scripts();
87 - }
88 - }
89 - }
87 + $block_object->register_scripts();
88 + }
89 + }
90 + }
90 91
91 - /**
92 - * Only for Admin Add/Edit Pages
93 - */
94 - public function enqueue( $hook ) {
95 - $editor = 'core/edit-post';
96 - if ( $hook == 'site-editor.php' || ( $hook == 'themes.php' && isset( $_GET['page'] ) && $_GET['page'] == 'gutenberg-edit-site' ) ) {
97 - $editor = 'core/edit-site';
98 - }
92 + /**
93 + * Only for Admin Add/Edit Pages
94 + */
95 + public function enqueue( $hook ) {
96 + $editor = 'core/edit-post';
97 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only screen detection.
98 + $page = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : '';
99 + if ( $hook === 'site-editor.php' || ( $hook === 'themes.php' && $page === 'gutenberg-edit-site' ) ) {
100 + $editor = 'core/edit-site';
101 + }
99 102
100 - $this->assets->register( 'betterdocs-blocks-editor-controls', 'blocks/controls.css' );
101 - $this->assets->register( 'betterdocs-blocks-editor', 'blocks/style-editor.css', ['betterdocs-blocks-editor-controls'] );
102 - $this->assets->register( 'betterdocs-blocks-editor', 'blocks/editor.js', ['betterdocs-blocks-style-handler'] );
103 - $this->assets->enqueue( 'betterdocs-blocks-actions', 'blocks/actions.js', [] );
104 - $this->assets->localize( 'betterdocs-blocks-editor', 'betterDocsBlocksHelper', [
105 - 'is_pro_active' => betterdocs()->is_pro_active(),
106 - 'resturl' => get_rest_url(),
107 - 'editorType' => $editor
108 - ] );
103 + $this->assets->register( 'betterdocs-blocks-editor-controls', 'blocks/controls.css' );
104 + $this->assets->register( 'betterdocs-blocks-editor', 'blocks/style-editor.css', [ 'betterdocs-blocks-editor-controls' ] );
105 + $this->assets->register( 'betterdocs-blocks-editor', 'blocks/editor.js', [ 'betterdocs-blocks-style-handler' ] );
106 + $this->assets->enqueue( 'betterdocs-blocks-actions', 'blocks/actions.js', [] );
107 + $this->assets->localize(
108 + 'betterdocs-blocks-editor',
109 + 'betterDocsBlocksHelper',
110 + array_merge([
111 + 'is_pro_active' => betterdocs()->is_pro_active(),
112 + 'is_woocommerce_active' => class_exists( 'WooCommerce' ),
113 + 'resturl' => get_rest_url(),
114 + 'editorType' => $editor,
115 + 'betterdocs_glossaries' => Helper::get_glossaries(),
116 + 'docsIcon' => isset( betterdocs()->settings->get( 'docs_list_icon' )['url'] ) ? betterdocs()->settings->get( 'docs_list_icon' )['url'] : ''
117 + ], betterdocs()->settings->chatbot_active_localize())
118 + );
109 119
110 - if ( $hook == 'post-new.php' || $hook == 'post.php' || $hook == 'site-editor.php' ) {
111 - $this->assets->enqueue( 'fontpicker-default-theme', 'vendor/css/fonticonpicker.base-theme.react.css' );
112 - $this->assets->enqueue( 'fontpicker-material-theme', 'vendor/css/fonticonpicker.material-theme.react.css' );
113 - }
114 - }
120 + if ( $hook == 'post-new.php' || $hook == 'post.php' || $hook == 'site-editor.php' ) {
121 + $this->assets->enqueue( 'fontpicker-default-theme', 'vendor/css/fonticonpicker.base-theme.react.css' );
122 + $this->assets->enqueue( 'fontpicker-material-theme', 'vendor/css/fonticonpicker.material-theme.react.css' );
123 + }
124 + }
115 125
116 - /**
117 - * Add a block category
118 - *
119 - * @param $block_categories array
120 - *
121 - * @return array
122 - */
123 - public function register_category( array $block_categories ): array {
124 - $categories_slugs = wp_list_pluck( $block_categories, 'slug' );
126 + /**
127 + * Add a block category
128 + *
129 + * @param $block_categories array
130 + *
131 + * @return array
132 + */
133 + public function register_category( array $block_categories ): array {
134 + $categories_slugs = wp_list_pluck( $block_categories, 'slug' );
125 135
126 - return in_array( 'betterdocs', $categories_slugs, true ) ? $block_categories : array_merge( [[
127 - 'slug' => 'betterdocs',
128 - 'title' => __( 'Betterdocs', 'betterdocs' )
129 - ]], $block_categories );
130 - }
136 + return in_array( 'betterdocs', $categories_slugs, true ) ? $block_categories : array_merge(
137 + [
138 + [
139 + 'slug' => 'betterdocs',
140 + 'title' => __( 'Betterdocs', 'betterdocs' )
141 + ]
142 + ],
143 + $block_categories
144 + );
145 + }
131 146
132 - /**
133 - * Get Blocks
134 - *
135 - * @since 2.5.0
136 - * @return array<array>
137 - */
138 - public function get_blocks() {
139 - $config_array = require_once BETTERDOCS_ABSPATH . 'includes/blocks.php';
140 - return apply_filters( 'betterdocs_blocks_config', $config_array );
141 - }
147 + /**
148 + * Get Blocks
149 + *
150 + * @since 2.5.0
151 + * @return array<array>
152 + */
153 + public function get_blocks() {
154 + $config_array = require_once BETTERDOCS_ABSPATH . 'includes/blocks.php';
155 + return apply_filters( 'betterdocs_blocks_config', $config_array );
156 + }
142 157
143 - public function register_blocks( $enqueue = false ) {
144 - $blocks = $this->get_blocks();
158 + public function register_blocks( $enqueue = false ) {
159 + $blocks = $this->get_blocks();
145 160
146 - if ( empty( $blocks ) || ! is_array( $blocks ) ) {
147 - return;
148 - }
161 + if ( empty( $blocks ) || ! is_array( $blocks ) ) {
162 + return;
163 + }
149 164
150 - foreach ( $blocks as $block_name => $block ) {
151 - if ( isset( $block['object'] ) ) {
152 - $block_object = betterdocs()->container->get( $block['object'] );
165 + foreach ( $blocks as $block_name => $block ) {
166 + if ( isset( $block['object'] ) ) {
167 + $block_object = betterdocs()->container->get( $block['object'] );
153 168
154 - if ( ! $block_object->can_enable() ) {
155 - continue;
156 - }
169 + if ( ! $block_object->can_enable() ) {
170 + continue;
171 + }
157 172
158 - if ( method_exists( $block_object, 'load_dependencies' ) ) {
159 - $block_object->load_dependencies();
160 - }
173 + if ( method_exists( $block_object, 'load_dependencies' ) ) {
174 + $block_object->load_dependencies();
175 + }
161 176
162 - if ( $enqueue && method_exists( $block_object, 'enqueue' ) ) {
163 - $block_object->enqueue( $this->assets );
164 - continue;
165 - }
177 + if ( $enqueue && method_exists( $block_object, 'enqueue' ) ) {
178 + $block_object->enqueue( $this->assets );
179 + continue;
180 + }
166 181
167 - if ( method_exists( $block_object, 'inner_blocks' ) ) {
168 - $_inner_blocks = $block_object->inner_blocks();
169 - foreach ( $_inner_blocks as $block_name => $block ) {
170 - $block->register( $this->assets );
171 - }
172 - }
182 + if ( method_exists( $block_object, 'inner_blocks' ) ) {
183 + $_inner_blocks = $block_object->inner_blocks();
184 + foreach ( $_inner_blocks as $block_name => $block ) {
185 + $block->register( $this->assets );
186 + }
187 + }
173 188
174 - $block_object->register( $this->assets );
175 - }
176 - }
177 - }
189 + $block_object->register( $this->assets );
190 + }
191 + }
192 + }
178 193 }