PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.6.5
JetFormBuilder — Dynamic Blocks Form Builder v3.6.5
3.6.5.1 3.6.5 3.6.4.2 3.6.4.1 3.6.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 / includes / actions / events / on-dynamic-state / on-dynamic-state-event.php
jetformbuilder / includes / actions / events / on-dynamic-state Last commit date
on-dynamic-state-event.php 2 years ago on-dynamic-state-executor.php 2 years ago
on-dynamic-state-event.php
77 lines
1 <?php
2
3
4 namespace Jet_Form_Builder\Actions\Events\On_Dynamic_State;
5
6 use Jet_Form_Builder\Actions\Events\Base_Event;
7 use Jet_Form_Builder\Blocks\Conditional_Block\Render_State;
8 use Jet_Form_Builder\Blocks\Conditional_Block\Render_States\Render_State_Replace_Exception;
9 use JFB_Components\Repository\Repository_Item_Dynamic_Id;
10 use Jet_Form_Builder\Exceptions\Repository_Exception;
11
12 class On_Dynamic_State_Event extends Base_Event implements Repository_Item_Dynamic_Id {
13
14 const ID_PREFIX = 'ON.';
15
16 protected $dynamic_id;
17
18 public function get_id(): string {
19 return $this->dynamic_id ?? self::ID_PREFIX . '{STATE}';
20 }
21
22 public function executors(): array {
23 return array(
24 new On_Dynamic_State_Executor(),
25 );
26 }
27
28 /**
29 * @param string $name
30 *
31 * @return false|string
32 */
33 public function create_dynamic_id( string $name ) {
34 if ( 0 === stripos( $name, self::ID_PREFIX ) ) {
35 $name = str_replace( self::ID_PREFIX, '', $name );
36 }
37
38 try {
39 $state = Render_State::instance()->get_item( $name );
40 } catch ( Repository_Exception $exception ) {
41 return $this->get_custom_state_id( $name );
42 }
43
44 try {
45 if ( ! $state->is_supported() ) {
46 return false;
47 }
48 } catch ( Render_State_Replace_Exception $exception ) {
49 return $exception->get_state()->get_id();
50 }
51
52 return $state->get_id();
53 }
54
55 protected function get_custom_state_id( string $name ) {
56 $custom = Render_State::get_states();
57
58 foreach ( $custom as $item ) {
59 if ( ( $item['value'] ?? '' ) !== $name ) {
60 continue;
61 }
62
63 return $item['value'];
64 }
65
66 return false;
67 }
68
69 public function set_dynamic_id( string $id ) {
70 $this->dynamic_id = self::ID_PREFIX . $id;
71 }
72
73 public function get_dynamic_id(): string {
74 return $this->get_id();
75 }
76 }
77