PluginProbe
wpForo Forum / 3.0.9
wpForo Forum v3.0.9
3.1.5 3.1.4 3.1.2 3.1.1 3.1.0 3.0.9 3.0.8 3.0.7 trunk 1.0.0 1.0.1 1.0.2 1.1.0 1.1.1 1.1.2 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.10 1.4.11 1.4.12 1.4.13 1.4.2 All 137 releases
wpforo / classes / Blocks.php

Blocks.php in wpForo Forum 3.0.9, at classes/Blocks.php

181 lines 5.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace wpforo\classes;
4
5 if( ! defined( 'ABSPATH' ) ) exit;
6
7 class Blocks {
8 public function __construct() {
9 if( did_action( 'init' ) ) {
10 $this->register_blocks();
11 } else {
12 add_action( 'init', [ $this, 'register_blocks' ] );
13 }
14 add_action( 'enqueue_block_editor_assets', [ $this, 'enqueue_block_editor_assets' ] );
15 }
16
17 public function register_blocks() {
18 $dir = WPFORO_DIR . '/blocks/online-members';
19 register_block_type( $dir );
20
21 $dir = WPFORO_DIR . '/blocks/search';
22 register_block_type( $dir );
23
24 $dir = WPFORO_DIR . '/blocks/tags';
25 register_block_type( $dir );
26
27 $dir = WPFORO_DIR . '/blocks/forums';
28 register_block_type( $dir );
29
30 $dir = WPFORO_DIR . '/blocks/profile';
31 register_block_type( $dir );
32
33 $dir = WPFORO_DIR . '/blocks/recent-posts';
34 register_block_type( $dir );
35
36 $dir = WPFORO_DIR . '/blocks/recent-topics';
37 register_block_type( $dir );
38 }
39
40 public function enqueue_block_editor_assets() {
41 $dir = WPFORO_DIR . '/blocks/online-members';
42 $asset_file = include( $dir . '/index.asset.php' );
43 $handle = 'wpforo-online-members-editor-script';
44
45 wp_enqueue_script(
46 $handle,
47 WPFORO_URL . '/blocks/online-members/index.js',
48 $asset_file['dependencies'],
49 $asset_file['version']
50 );
51
52 wp_enqueue_style(
53 'wpforo-online-members-editor-style',
54 WPFORO_URL . '/blocks/online-members/editor.css',
55 [],
56 $asset_file['version']
57 );
58
59 $dir = WPFORO_DIR . '/blocks/search';
60 $asset_file = include( $dir . '/index.asset.php' );
61 $handle_search = 'wpforo-search-editor-script';
62
63 wp_enqueue_script(
64 $handle_search,
65 WPFORO_URL . '/blocks/search/index.js',
66 $asset_file['dependencies'],
67 $asset_file['version']
68 );
69
70 wp_enqueue_style(
71 'wpforo-search-editor-style',
72 WPFORO_URL . '/blocks/online-members/editor.css',
73 [],
74 $asset_file['version']
75 );
76
77 $user_groups = WPF()->usergroup->usergroup_list_data();
78 $boards = WPF()->board->get_boards( [ 'status' => 1 ] );
79 $forums = WPF()->forum->get_forums();
80 $data = [
81 'user_groups' => array_values( $user_groups ),
82 'boards' => array_values( $boards ),
83 'forums' => array_values( $forums ),
84 ];
85
86 // Localize data once on the first script — all blocks read the same global
87 wp_localize_script( $handle, 'wpforo_block_data', $data );
88 wp_add_inline_script( $handle, "window.wpforo_block_data = " . json_encode( $data ) . ";", 'before' );
89
90 $dir = WPFORO_DIR . '/blocks/tags';
91 $asset_file = include( $dir . '/index.asset.php' );
92 $handle_tags = 'wpforo-tags-editor-script';
93
94 wp_enqueue_script(
95 $handle_tags,
96 WPFORO_URL . '/blocks/tags/index.js',
97 $asset_file['dependencies'],
98 $asset_file['version']
99 );
100
101 wp_enqueue_style(
102 'wpforo-tags-editor-style',
103 WPFORO_URL . '/blocks/online-members/editor.css',
104 [],
105 $asset_file['version']
106 );
107
108 $dir = WPFORO_DIR . '/blocks/forums';
109 $asset_file = include( $dir . '/index.asset.php' );
110 $handle_forums = 'wpforo-forums-editor-script';
111
112 wp_enqueue_script(
113 $handle_forums,
114 WPFORO_URL . '/blocks/forums/index.js',
115 $asset_file['dependencies'],
116 $asset_file['version']
117 );
118
119 wp_enqueue_style(
120 'wpforo-forums-editor-style',
121 WPFORO_URL . '/blocks/online-members/editor.css',
122 [],
123 $asset_file['version']
124 );
125
126 $dir = WPFORO_DIR . '/blocks/profile';
127 $asset_file = include( $dir . '/index.asset.php' );
128 $handle_profile = 'wpforo-profile-editor-script';
129
130 wp_enqueue_script(
131 $handle_profile,
132 WPFORO_URL . '/blocks/profile/index.js',
133 $asset_file['dependencies'],
134 $asset_file['version']
135 );
136
137 wp_enqueue_style(
138 'wpforo-profile-editor-style',
139 WPFORO_URL . '/blocks/online-members/editor.css',
140 [],
141 $asset_file['version']
142 );
143
144 $dir = WPFORO_DIR . '/blocks/recent-posts';
145 $asset_file = include( $dir . '/index.asset.php' );
146 $handle_recent_posts = 'wpforo-recent-posts-editor-script';
147
148 wp_enqueue_script(
149 $handle_recent_posts,
150 WPFORO_URL . '/blocks/recent-posts/index.js',
151 $asset_file['dependencies'],
152 $asset_file['version']
153 );
154
155 wp_enqueue_style(
156 'wpforo-recent-posts-editor-style',
157 WPFORO_URL . '/blocks/online-members/editor.css',
158 [],
159 $asset_file['version']
160 );
161
162 $dir = WPFORO_DIR . '/blocks/recent-topics';
163 $asset_file = include( $dir . '/index.asset.php' );
164 $handle_recent_topics = 'wpforo-recent-topics-editor-script';
165
166 wp_enqueue_script(
167 $handle_recent_topics,
168 WPFORO_URL . '/blocks/recent-topics/index.js',
169 $asset_file['dependencies'],
170 $asset_file['version']
171 );
172
173 wp_enqueue_style(
174 'wpforo-recent-topics-editor-style',
175 WPFORO_URL . '/blocks/online-members/editor.css',
176 [],
177 $asset_file['version']
178 );
179 }
180 }
181