PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.3.4
JetFormBuilder — Dynamic Blocks Form Builder v3.3.4
3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / modules / ai / module.php
jetformbuilder / modules / ai Last commit date
assets 2 years ago external-api 2 years ago rest-api 2 years ago module.php 2 years ago
module.php
144 lines
1 <?php
2
3
4 namespace JFB_Modules\Ai;
5
6 // If this file is called directly, abort.
7 if ( ! defined( 'WPINC' ) ) {
8 die;
9 }
10
11 use JFB_Components\Module\Base_Module_After_Install_It;
12 use JFB_Components\Module\Base_Module_Dir_It;
13 use JFB_Components\Module\Base_Module_Dir_Trait;
14 use JFB_Components\Module\Base_Module_Handle_It;
15 use JFB_Components\Module\Base_Module_Handle_Trait;
16 use JFB_Components\Module\Base_Module_It;
17 use JFB_Components\Module\Base_Module_Url_It;
18 use JFB_Components\Module\Base_Module_Url_Trait;
19 use JFB_Modules\Ai\Rest_Api\Endpoints\Generate_Form_Endpoint;
20 use JFB_Modules\Post_Type;
21
22 class Module implements
23 Base_Module_It,
24 Base_Module_Url_It,
25 Base_Module_Handle_It,
26 Base_Module_After_Install_It,
27 Base_Module_Dir_It {
28
29 use Base_Module_Url_Trait;
30 use Base_Module_Handle_Trait;
31 use Base_Module_Dir_Trait;
32
33 public function rep_item_id() {
34 return 'ai';
35 }
36
37 public function condition(): bool {
38 return true;
39 }
40
41 public function init_hooks() {
42 add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_assets' ) );
43 add_action( 'jet-form-builder/editor-assets/before', array( $this, 'editor_enqueue_assets' ) );
44 }
45
46 public function remove_hooks() {
47 remove_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_assets' ) );
48 remove_action( 'jet-form-builder/editor-assets/before', array( $this, 'editor_enqueue_assets' ) );
49 }
50
51 public function on_install() {
52 /** @var \JFB_Modules\Rest_Api\Module $rest_api */
53 /** @noinspection PhpUnhandledExceptionInspection */
54 $rest_api = jet_form_builder()->module( 'rest-api' );
55
56 $rest_api->get_controller()->install( new Generate_Form_Endpoint() );
57 }
58
59 public function on_uninstall() {
60 /** @var \JFB_Modules\Rest_Api\Module $rest_api */
61 /** @noinspection PhpUnhandledExceptionInspection */
62 $rest_api = jet_form_builder()->module( 'rest-api' );
63
64 $rest_api->get_controller()->uninstall( new Generate_Form_Endpoint() );
65 }
66
67 public function admin_enqueue_assets() {
68 global $post_type;
69
70 if ( Post_Type\Module::SLUG !== $post_type ) {
71 return;
72 }
73
74 /** @var \JFB_Modules\Html_Parser\Module $parser_module */
75 /** @noinspection PhpUnhandledExceptionInspection */
76 $parser_module = jet_form_builder()->module( 'html-parser' );
77
78 $parser_module->register_scripts();
79
80 $script_asset = require_once $this->get_dir( 'assets/build/admin/forms.asset.php' );
81
82 if ( true === $script_asset ) {
83 return;
84 }
85
86 array_push(
87 $script_asset['dependencies'],
88 $parser_module->get_handle()
89 );
90
91 wp_enqueue_style(
92 $this->get_handle(),
93 $this->get_url( 'assets/build/modal.css' ),
94 array(
95 'wp-components',
96 ),
97 $script_asset['version']
98 );
99 wp_enqueue_script(
100 $this->get_handle(),
101 $this->get_url( 'assets/build/admin/forms.js' ),
102 $script_asset['dependencies'],
103 $script_asset['version'],
104 true
105 );
106
107 wp_localize_script(
108 $this->get_handle(),
109 'JetFormBuilderAdmin',
110 array(
111 'edit_url' => esc_url(
112 add_query_arg(
113 array( 'action' => 'edit' ),
114 admin_url( 'post.php' )
115 )
116 ),
117 )
118 );
119 }
120
121 public function editor_enqueue_assets() {
122 /** @var \JFB_Modules\Html_Parser\Module $parser_module */
123 /** @noinspection PhpUnhandledExceptionInspection */
124 $parser_module = jet_form_builder()->module( 'html-parser' );
125
126 $parser_module->register_scripts();
127 wp_enqueue_script(
128 $this->get_handle(),
129 $this->get_url( 'assets/build/editor.js' ),
130 array(
131 $parser_module->get_handle(),
132 ),
133 jet_form_builder()->get_version(),
134 true
135 );
136 wp_enqueue_style(
137 $this->get_handle(),
138 $this->get_url( 'assets/build/modal.css' ),
139 array(),
140 jet_form_builder()->get_version()
141 );
142 }
143 }
144