PluginProbe
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder / 2.9.1
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder v2.9.1
2.13.0 2.13.1 2.12.0 2.11.1 2.11.0 2.10.0 2.9.0 2.7.4 2.7.5 2.7.6 2.7.7 2.8.0 2.8.1 2.9.1 trunk 1.0 1.0-beta1 1.0-beta2 1.0-beta3 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 All 80 releases
ablocks / includes / blocks.php

blocks.php in aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder 2.9.1, at includes/blocks.php

190 lines 6.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace ABlocks;
3
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit(); // Exit if accessed directly.
6 }
7
8 use ABlocks\Classes\AssetsGenerator;
9 use ABlocks\Helper;
10 use ABlocks\Classes\FileUpload;
11 use ABlocks\Blocks\FormBuilder\BlockAttrSanitizer\Sanitizer as BlockSanitizer;
12 use ABlocks\Blocks\FormBuilder\Helper as FormBuilderHelper;
13
14 class Blocks {
15 public static function init() {
16 $self = new self();
17 // block initialization
18 add_action( 'init', [ $self, 'blocks_init' ] );
19 add_action( 'enqueue_block_assets', [ $self, 'load_academy_core_scripts' ] );
20 add_filter( 'block_categories_all', [ $self, 'register_block_category' ], 10, 2 );
21 // Assets Generator
22 add_action( 'save_post', [ $self, 'generate_block_assets' ], 10, 3 );
23
24 $self->register_block_sanitizer();
25 $self->form_builder_default_data();
26 }
27
28 public function blocks_init() {
29 if ( Helper::is_plugin_active( 'academy/academy.php' ) ) {
30 add_filter( 'academy/is_load_common_scripts', '__return_true' );
31 if ( Helper::is_gutenberg_editor() ) {
32 add_filter( 'academy/is_load_common_js_scripts', '__return_false' );
33 }
34 new \ABlocks\Blocks\AcademyCourses\Block();
35 new \ABlocks\Blocks\AcademyEnrollForm\Block();
36 new \ABlocks\Blocks\AcademyStudentRegistrationForm\Block();
37 new \ABlocks\Blocks\AcademyCourseSearch\Block();
38 new \ABlocks\Blocks\AcademyInstructorRegistrationForm\Block();
39 new \ABlocks\Blocks\AcademyPdf\Block();
40 new \ABlocks\Blocks\AcademyPasswordResetForm\Block();
41 new \ABlocks\Blocks\AcademyLoginForm\Block();
42
43 if ( ( helper::is_gutenberg_editor() && Helper::check_post_type_from_admin( 'academy_certificate' ) ) || ( ! helper::is_gutenberg_editor() && ! is_admin() ) ) {
44 new \ABlocks\Blocks\AcademyCertificate\Block();
45 new \ABlocks\Blocks\AcademyCertificateText\Block();
46 if ( Helper::is_plugin_active( 'academy-pro/academy-pro.php' ) ) {
47 new \ABlocks\Blocks\AcademyCertificateId\Block();
48 }
49 }
50 }//end if
51 new \ABlocks\Blocks\Container\Block();
52 new \ABlocks\Blocks\Heading\Block();
53 new \ABlocks\Blocks\Paragraph\Block();
54 new \ABlocks\Blocks\Image\Block();
55 new \ABlocks\Blocks\Button\Block();
56 new \ABlocks\Blocks\DualButton\Block();
57 new \ABlocks\Blocks\Icon\Block();
58 new \ABlocks\Blocks\InfoBox\Block();
59 new \ABlocks\Blocks\Lists\Block();
60 new \ABlocks\Blocks\Counter\Block();
61 new \ABlocks\Blocks\StarRatings\Block();
62 new \ABlocks\Blocks\Divider\Block();
63 new \ABlocks\Blocks\Spacer\Block();
64 new \ABlocks\Blocks\Video\Block();
65 new \ABlocks\Blocks\Search\Block();
66 new \ABlocks\Blocks\Carousel\Block();
67 new \ABlocks\Blocks\CarouselChild\Block();
68 new \ABlocks\Blocks\Chart\Block();
69 new \ABlocks\Blocks\Toggle\Block();
70 new \ABlocks\Blocks\ToggleChild\Block();
71 new \ABlocks\Blocks\Accordion\Block();
72 new \ABlocks\Blocks\SingleAccordion\Block();
73 new \ABlocks\Blocks\Tabs\Block();
74 new \ABlocks\Blocks\TabsChild\Block();
75 new \ABlocks\Blocks\Countdown\Block();
76 new \ABlocks\Blocks\NewsTicker\Block();
77 new \ABlocks\Blocks\ImageHotspot\Block();
78 new \ABlocks\Blocks\ImageHotspotChild\Block();
79 new \ABlocks\Blocks\ProgressTracker\Block();
80 new \ABlocks\Blocks\ImageScroll\Block();
81 new \ABlocks\Blocks\Menu\Block();
82 new \ABlocks\Blocks\MenuItem\Block();
83 new \ABlocks\Blocks\MenuChildSub\Block();
84 new \ABlocks\Blocks\MenuChildMega\Block();
85 new \ABlocks\Blocks\StripeButton\Block();
86 new \ABlocks\Blocks\PaypalButton\Block();
87
88 new \ABlocks\Blocks\Table\Block();
89 new \ABlocks\Blocks\TableCell\Block();
90 new \ABlocks\Blocks\TableRow\Block();
91 new \ABlocks\Blocks\TableHeader\Block();
92 new \ABlocks\Blocks\TableFooter\Block();
93 new \ABlocks\Blocks\TableBody\Block();
94
95 new \ABlocks\Blocks\Coupon\Block();
96 new \ABlocks\Blocks\ContentTimeline\Block();
97 new \ABlocks\Blocks\ContentTimelineChild\Block();
98 new \ABlocks\Blocks\Map\Block();
99 new \ABlocks\Blocks\TableOfContent\Block();
100 new \ABlocks\Blocks\Modal\Block();
101 new \ABlocks\Blocks\ModalTrigger\Block();
102 new \ABlocks\Blocks\ModalPanel\Block();
103 new \ABlocks\Blocks\ImageComparison\Block();
104 new \ABlocks\Blocks\FlipBox\Block();
105 new \ABlocks\Blocks\FlipBoxChild\Block();
106 new \ABlocks\Blocks\PriceMenu\Block();
107 new \ABlocks\Blocks\PriceMenuItem\Block();
108 new \ABlocks\Blocks\SocialShares\Block();
109 new \ABlocks\Blocks\Notice\Block();
110 new \ABlocks\Blocks\SvgDraw\Block();
111 new \ABlocks\Blocks\Marquee\Block();
112 new \ABlocks\Blocks\MarqueeChild\Block();
113 new \ABlocks\Blocks\Logout\Block();
114 new \ABlocks\Blocks\FilterableCards\Block();
115 new \ABlocks\Blocks\FilterableCardsItem\Block();
116 new \ABlocks\Blocks\AdvanceLists\Block();
117 new \ABlocks\Blocks\AdvanceListItem\Block();
118 // Form Builder
119 new \ABlocks\Blocks\FormBuilder\Block();
120 new \ABlocks\Blocks\FormInput\Block();
121 new \ABlocks\Blocks\FormPassword\Block();
122 new \ABlocks\Blocks\FormTextarea\Block();
123 new \ABlocks\Blocks\FormCheckbox\Block();
124 new \ABlocks\Blocks\FormSelect\Block();
125 new \ABlocks\Blocks\FormMultiStep\Block();
126 new \ABlocks\Blocks\FormMultiStepChild\Block();
127 new \ABlocks\Blocks\FormRadio\Block();
128 new \ABlocks\Blocks\TextPath\Block();
129 }
130
131 public function register_block_category( $categories, $post ) {
132 return array_merge(
133 [
134 [
135 'slug' => 'ablocks',
136 'title' => __( 'ABlocks', 'ablocks' ),
137 ],
138 [
139 'slug' => 'academy',
140 'title' => __( 'Academy LMS', 'ablocks' ),
141 ],
142 ],
143 $categories
144 );
145 }
146
147 public function load_academy_core_scripts() {
148 if ( ! Helper::is_plugin_active( 'academy/academy.php' ) || ! is_admin() ) {
149 return;
150 }
151 $ScriptsBase = new \Academy\Assets();
152 $ScriptsBase->frontend_common_assets();
153 }
154
155 public function generate_block_assets( $post_id, $post, $update ) {
156 if ( ! Helper::is_enabled_assets_generation() ) {
157 return;
158 }
159
160 if ( isset( $post->post_status ) && 'auto-draft' === $post->post_status ) {
161 return;
162 }
163
164 if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
165 return;
166 }
167
168 if ( false !== wp_is_post_revision( $post_id ) ) {
169 return;
170 }
171
172 // Don't save FSE theme assets
173 if ( ( function_exists( 'wp_is_block_theme' ) && wp_is_block_theme() ) ) {
174 return;
175 }
176
177 AssetsGenerator::write_frontend_css_in_uploads_folder( $post_id );
178 }
179
180 public function form_builder_default_data(): void {
181 add_filter(
182 'ablocks/assets/editor_scripts_data',
183 [ FormBuilderHelper::class, 'form_builder_default_data' ]
184 );
185 }
186 public function register_block_sanitizer(): void {
187 BlockSanitizer::init();
188 }
189 }
190