PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.5.2
JetFormBuilder — Dynamic Blocks Form Builder v3.5.2
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 1 year ago external-api 2 years ago rest-api 1 year ago module.php 1 year ago
module.php
145 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_script(
92 $this->get_handle(),
93 $this->get_url( 'assets/build/admin/forms.js' ),
94 $script_asset['dependencies'],
95 $script_asset['version'],
96 true
97 );
98
99 wp_localize_script(
100 $this->get_handle(),
101 'JetFormBuilderAdmin',
102 array(
103 'edit_url' => esc_url(
104 add_query_arg(
105 array( 'action' => 'edit' ),
106 admin_url( 'post.php' )
107 )
108 ),
109 )
110 );
111
112 /**
113 * Required to show styled AI form modal on the forms list page
114 */
115 wp_enqueue_style( 'wp-components' );
116 }
117
118 public function editor_enqueue_assets() {
119 $script_asset = require_once $this->get_dir( 'assets/build/editor.asset.php' );
120
121 if ( true === $script_asset ) {
122 return;
123 }
124
125 /** @var \JFB_Modules\Html_Parser\Module $parser_module */
126 /** @noinspection PhpUnhandledExceptionInspection */
127 $parser_module = jet_form_builder()->module( 'html-parser' );
128 $parser_module->register_scripts();
129
130 array_push(
131 $script_asset['dependencies'],
132 $parser_module->get_handle(),
133 'jet-fb-components'
134 );
135
136 wp_enqueue_script(
137 $this->get_handle(),
138 $this->get_url( 'assets/build/editor.js' ),
139 $script_asset['dependencies'],
140 $script_asset['version'],
141 true
142 );
143 }
144 }
145