PluginProbe
JetFormBuilder — Dynamic Blocks Form Builder / 3.6.5.4
JetFormBuilder — Dynamic Blocks Form Builder v3.6.5.4
3.6.6.1 3.6.6 3.6.5.4 3.6.5.3 3.6.5.2 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 All 134 releases
jetformbuilder / includes / actions / events-list.php

events-list.php in JetFormBuilder — Dynamic Blocks Form Builder 3.6.5.4, at includes/actions/events-list.php

58 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3
4 namespace Jet_Form_Builder\Actions;
5
6 use Jet_Form_Builder\Actions\Events\Base_Event;
7 use Jet_Form_Builder\Actions\Events\Base_Executor;
8 use Jet_Form_Builder\Classes\Arrayable\Collection;
9 use Jet_Form_Builder\Exceptions\Repository_Exception;
10
11 // If this file is called directly, abort.
12 if ( ! defined( 'WPINC' ) ) {
13 die;
14 }
15
16 class Events_List extends Collection {
17
18 public static function create( array $events ): Events_List {
19 $collection = new Events_List();
20 foreach ( $events as $event ) {
21 $collection->push( $event );
22 }
23
24 return $collection;
25 }
26
27 public function push( $event ): Events_List {
28 if ( $event instanceof Base_Event ) {
29 return $this->add( $event );
30 }
31
32 try {
33 $item = jet_fb_events()->rep_clone_item( $event );
34 } catch ( Repository_Exception $exception ) {
35 return $this->add( jet_fb_events()->get_never_event() );
36 }
37
38 return $this->add( $item );
39 }
40
41 public function in_array( $state ): bool {
42 if ( ! ( $state instanceof Base_Executor ) ) {
43 return parent::in_array( $state );
44 }
45 $executor_name = get_class( $state );
46
47 /** @var Base_Event $event */
48 foreach ( $this as $event ) {
49 if ( ! in_array( $executor_name, $event->ignored_executors(), true ) ) {
50 return parent::in_array( $state->get_event() );
51 }
52 }
53
54 return 0 !== count( $this );
55 }
56
57 }
58