PluginProbe
JetFormBuilder — Dynamic Blocks Form Builder / 1.1.0
JetFormBuilder — Dynamic Blocks Form Builder v1.1.0
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 / form-messages / manager.php

manager.php in JetFormBuilder — Dynamic Blocks Form Builder 1.1.0, at includes/form-messages/manager.php

120 lines 2.5 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\Form_Messages;
5
6
7 use Jet_Form_Builder\Plugin;
8
9 class Manager {
10
11 public $form_id;
12 public $actions;
13 protected $_types = array();
14 private $success_statuses = array( 'success' );
15
16 const DYNAMIC_SUCCESS_PREF = 'dsuccess|';
17 const DYNAMIC_FAILED_PREF = 'derror|';
18
19
20 public function __construct( $form_id, $actions = array() ) {
21 $this->form_id = $form_id;
22 $this->actions = $actions;
23
24 $this->set_messages();
25 }
26
27 public static function dynamic_success( $message ) {
28 return self::DYNAMIC_SUCCESS_PREF . $message;
29 }
30
31 public static function dynamic_error( $message ) {
32 return self::DYNAMIC_FAILED_PREF . $message;
33 }
34
35 private function is_success( $status ) {
36 $message = $this->parse_message( $status );
37
38 if ( $this->is_dynamic_message( $message ) ) {
39 return 'success' === $this->dynamic_types()[ $message[0] ]['type'];
40 }
41
42 return in_array( $message[0], $this->success_statuses );
43 }
44
45
46 public function get_status_class( $status ) {
47 return $this->is_success( $status ) ? 'success' : 'error';
48 }
49
50 public function dynamic_types() {
51 return array(
52 'dsuccess' => array(
53 'type' => 'success'
54 ),
55 'derror' => array(
56 'type' => 'failed'
57 ),
58 );
59 }
60
61 public function set_messages() {
62 if ( ! $this->form_id ) {
63 return;
64 }
65 $this->_types = array_merge(
66 Plugin::instance()->post_type->get_messages( $this->form_id ),
67 $this->get_action_types_messages()
68 );
69
70 }
71
72 public function get_action_types_messages() {
73 $messages = array();
74
75 foreach ( $this->actions as $action ) {
76 if ( isset( $action->messages ) ) {
77 $messages = array_merge( $messages, $action->messages );
78 }
79 }
80
81 return $messages;
82 }
83
84 public function isset_message_type( $type ) {
85 return isset( $this->_types[ $type ] );
86 }
87
88
89 public function get_message( $type ) {
90 $message = $this->parse_message( $type );
91
92 /**
93 * Return dynamic message
94 */
95 if ( $this->is_dynamic_message( $message ) ) {
96 return $message[1];
97 }
98
99 if ( $this->isset_message_type( $message[0] ) ) {
100 return is_array( $this->_types[ $message[0] ] )
101 ? $this->_types[ $message[0] ]['value']
102 : $this->_types[ $message[0] ];
103 }
104
105 return '';
106 }
107
108 public function get_messages() {
109 return $this->_types;
110 }
111
112 private function parse_message( $status ) {
113 return explode( '|', $status );
114 }
115
116 private function is_dynamic_message( $message ) {
117 return isset( $this->dynamic_types()[ $message[0] ] ) && ! empty( $message[1] );
118 }
119
120 }