PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 3.8.9
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v3.8.9
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 +147 -135 3.4.23.8.9 View file →
@@ -2,177 +2,189 @@
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 + if ( $hook == 'site-editor.php' || ( $hook == 'themes.php' && isset( $_GET['page'] ) && $_GET['page'] == 'gutenberg-edit-site' ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
98 + $editor = 'core/edit-site';
99 + }
99 100
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 - ] );
101 + $this->assets->register( 'betterdocs-blocks-editor-controls', 'blocks/controls.css' );
102 + $this->assets->register( 'betterdocs-blocks-editor', 'blocks/style-editor.css', [ 'betterdocs-blocks-editor-controls' ] );
103 + $this->assets->register( 'betterdocs-blocks-editor', 'blocks/editor.js', [ 'betterdocs-blocks-style-handler' ] );
104 + $this->assets->enqueue( 'betterdocs-blocks-actions', 'blocks/actions.js', [] );
105 + $this->assets->localize(
106 + 'betterdocs-blocks-editor',
107 + 'betterDocsBlocksHelper',
108 + [
109 + 'is_pro_active' => betterdocs()->is_pro_active(),
110 + 'resturl' => get_rest_url(),
111 + 'editorType' => $editor,
112 + 'betterdocs_glossaries' => Helper::get_glossaries(),
113 + 'docsIcon' => isset( betterdocs()->settings->get( 'docs_list_icon' )['url'] ) ? betterdocs()->settings->get( 'docs_list_icon' )['url'] : ''
114 + ]
115 + );
109 116
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 - }
117 + if ( $hook == 'post-new.php' || $hook == 'post.php' || $hook == 'site-editor.php' ) {
118 + $this->assets->enqueue( 'fontpicker-default-theme', 'vendor/css/fonticonpicker.base-theme.react.css' );
119 + $this->assets->enqueue( 'fontpicker-material-theme', 'vendor/css/fonticonpicker.material-theme.react.css' );
120 + }
121 + }
115 122
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' );
123 + /**
124 + * Add a block category
125 + *
126 + * @param $block_categories array
127 + *
128 + * @return array
129 + */
130 + public function register_category( array $block_categories ): array {
131 + $categories_slugs = wp_list_pluck( $block_categories, 'slug' );
125 132
126 - return in_array( 'betterdocs', $categories_slugs, true ) ? $block_categories : array_merge( [[
127 - 'slug' => 'betterdocs',
128 - 'title' => __( 'Betterdocs', 'betterdocs' )
129 - ]], $block_categories );
130 - }
133 + return in_array( 'betterdocs', $categories_slugs, true ) ? $block_categories : array_merge(
134 + [
135 + [
136 + 'slug' => 'betterdocs',
137 + 'title' => __( 'Betterdocs', 'betterdocs' )
138 + ]
139 + ],
140 + $block_categories
141 + );
142 + }
131 143
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 - }
144 + /**
145 + * Get Blocks
146 + *
147 + * @since 2.5.0
148 + * @return array<array>
149 + */
150 + public function get_blocks() {
151 + $config_array = require_once BETTERDOCS_ABSPATH . 'includes/blocks.php';
152 + return apply_filters( 'betterdocs_blocks_config', $config_array );
153 + }
142 154
143 - public function register_blocks( $enqueue = false ) {
144 - $blocks = $this->get_blocks();
155 + public function register_blocks( $enqueue = false ) {
156 + $blocks = $this->get_blocks();
145 157
146 - if ( empty( $blocks ) || ! is_array( $blocks ) ) {
147 - return;
148 - }
158 + if ( empty( $blocks ) || ! is_array( $blocks ) ) {
159 + return;
160 + }
149 161
150 - foreach ( $blocks as $block_name => $block ) {
151 - if ( isset( $block['object'] ) ) {
152 - $block_object = betterdocs()->container->get( $block['object'] );
162 + foreach ( $blocks as $block_name => $block ) {
163 + if ( isset( $block['object'] ) ) {
164 + $block_object = betterdocs()->container->get( $block['object'] );
153 165
154 - if ( ! $block_object->can_enable() ) {
155 - continue;
156 - }
166 + if ( ! $block_object->can_enable() ) {
167 + continue;
168 + }
157 169
158 - if ( method_exists( $block_object, 'load_dependencies' ) ) {
159 - $block_object->load_dependencies();
160 - }
170 + if ( method_exists( $block_object, 'load_dependencies' ) ) {
171 + $block_object->load_dependencies();
172 + }
161 173
162 - if ( $enqueue && method_exists( $block_object, 'enqueue' ) ) {
163 - $block_object->enqueue( $this->assets );
164 - continue;
165 - }
174 + if ( $enqueue && method_exists( $block_object, 'enqueue' ) ) {
175 + $block_object->enqueue( $this->assets );
176 + continue;
177 + }
166 178
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 - }
179 + if ( method_exists( $block_object, 'inner_blocks' ) ) {
180 + $_inner_blocks = $block_object->inner_blocks();
181 + foreach ( $_inner_blocks as $block_name => $block ) {
182 + $block->register( $this->assets );
183 + }
184 + }
173 185
174 - $block_object->register( $this->assets );
175 - }
176 - }
177 - }
186 + $block_object->register( $this->assets );
187 + }
188 + }
189 + }
178 190 }