PluginProbe
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder / 1.2
Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder v1.2
V-3.3.0 3.2.2 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 V3.0.3 V3.0.2 -3.0.1 V_3.0.0 1.1.1 1.1.8 1.2 1.3 1.4 1.4.18 1.5.2 1.9 2.0 2.10.0 2.10.1 2.10.2 All 137 releases
bit-form / includes / Core / Integration / IntegrationHandler.php

IntegrationHandler.php in Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder 1.2, at includes/Core/Integration/IntegrationHandler.php

190 lines 6.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace BitCode\BitForm\Core\Integration;
4
5 use BitCode\BitForm\Core\Database\IntegrationModel;
6
7 final class IntegrationHandler
8 {
9 private static $_formID;
10 private static $_integrationModel;
11 private $_user_details;
12
13 /**
14 * Constructor of Integration Handler
15 *
16 * @param Integer $formID If Integration is accessible globally then
17 * $formID will be 0 and category app
18 * @param Array $user_details Details of user accessing data
19 * @return void
20 */
21 public function __construct($formID, $user_details = null)
22 {
23 static::$_formID = $formID;
24 static::$_integrationModel = new IntegrationModel();
25 $this->_user_details = $user_details;
26 }
27
28
29 public function getAIntegration($integrationID, $integrationCategory = null, $integrationType = null)
30 {
31 $conditions = array(
32 'form_id' => static::$_formID,
33 'id' => $integrationID,
34 );
35 if (!is_null($integrationType)) {
36 $conditions = array_merge($conditions, ['integration_type' => $integrationType]);
37 }
38 if (!is_null($integrationCategory)) {
39 $conditions = array_merge($conditions, ['category' => $integrationCategory]);
40 }
41 return static::$_integrationModel->get(
42 array(
43 'id',
44 'integration_name',
45 'integration_type',
46 'integration_details'
47 ),
48 $conditions
49 );
50 }
51
52 public function getAllIntegration($integrationCategory = null, $integrationType = null ,$status = null)
53 {
54 $conditions = array(
55 'form_id' => static::$_formID
56 );
57 if (!is_null($integrationType)) {
58 $conditions = array_merge($conditions, ['integration_type' => $integrationType]);
59 }
60
61 if (!is_null($integrationCategory)) {
62 $conditions = array_merge($conditions, ['category' => $integrationCategory]);
63 }
64 if (!is_null($status)) {
65 $conditions = array_merge($conditions, ['status' => 1]);
66 }
67 return static::$_integrationModel->get(
68 array(
69 'id',
70 'integration_name',
71 'integration_type',
72 'integration_details',
73 'status'
74 ),
75 $conditions
76 );
77 }
78
79 public function saveIntegration($integrationName, $integrationType, $integrationDetails, $integrationCategory,$status = null)
80 {
81 if($status == null ){
82 $status = 1;
83 }
84 return static::$_integrationModel->insert(
85 array(
86 "integration_name"=> $integrationName,
87 "integration_type"=> $integrationType,
88 "integration_details"=> $integrationDetails,
89 'category' => $integrationCategory,
90 'form_id' => static::$_formID,
91 "user_id"=> $this->_user_details['id'],
92 "user_ip"=> $this->_user_details['ip'],
93 "status"=> $status,
94 "created_at"=> $this->_user_details['time'],
95 "updated_at"=> $this->_user_details['time']
96 )
97 );
98 }
99
100 public function updateIntegration($integrationID, $integrationName, $integrationType, $integrationDetails, $integrationCategory,$status=null)
101 {
102 if($status == null ){
103 $status = 1;
104 }
105 return static::$_integrationModel->update(
106 array(
107 "integration_name"=> $integrationName,
108 "integration_type"=> $integrationType,
109 "integration_details"=> $integrationDetails,
110 'category' => $integrationCategory,
111 'form_id' => static::$_formID,
112 "user_id"=> $this->_user_details['id'],
113 "user_ip"=> $this->_user_details['ip'],
114 "status"=> $status,
115 "updated_at"=> $this->_user_details['time']
116 ),
117 array(
118 "id" => $integrationID
119 )
120 );
121 }
122
123 public function duplicateAllInAForm($oldFormId)
124 {
125 $integCols = ["integration_name","integration_type","integration_details",'category' ,'form_id' ,"user_id","user_ip","status","created_at","updated_at"];
126 $integDupData = array(
127 "integration_name",
128 "integration_type",
129 "integration_details",
130 'category',
131 static::$_formID,
132 $this->_user_details['id'],
133 $this->_user_details['ip'],
134 "status",
135 $this->_user_details['time'],
136 $this->_user_details['time']
137 );
138 return static::$_integrationModel->duplicate($integCols, $integDupData, ['form_id' => $oldFormId]);
139 }
140
141 public function deleteIntegration($integrationID)
142 {
143 return static::$_integrationModel->delete(
144 array(
145 'id' => $integrationID,
146 'form_id' => static::$_formID,
147 )
148 );
149 }
150
151 public static function replaceFieldWithValue($dataToReplaceField, $fieldValues)
152 {
153 if (empty($dataToReplaceField)) {
154 return false;
155 }
156 if (is_string($dataToReplaceField)) {
157 $dataToReplaceField = static::replaceFieldWithValueHelper($dataToReplaceField, $fieldValues);
158 } else if (is_array($dataToReplaceField)) {
159 foreach ($dataToReplaceField as $field => $value) {
160 if (is_array($value) && count($value) === 1 ) {
161 $dataToReplaceField[$field] = static::replaceFieldWithValueHelper($value[0], $fieldValues);
162 } else if(is_array($value)){
163 $dataToReplaceField[$field] = static::replaceFieldWithValue($value, $fieldValues);
164 } else {
165 $dataToReplaceField[$field] = static::replaceFieldWithValueHelper($value, $fieldValues);
166 }
167 }
168 }
169 return $dataToReplaceField;
170 }
171
172 private static function replaceFieldWithValueHelper($stringToReplaceField, $fieldValues)
173 {
174 if (empty($stringToReplaceField)) {
175 return $stringToReplaceField;
176 }
177 $fieldPattern = '/\${\w[^ ${}]*}/';
178 preg_match_all($fieldPattern, $stringToReplaceField, $matchedField);
179 $uniqueFieldsInStr = array_unique($matchedField[0]);
180 foreach ($uniqueFieldsInStr as $key => $value) {
181 $fieldName = substr($value, 2, strlen($value)-3);
182 if (!empty($fieldValues[$fieldName])) {
183 $stringToReplaceField = is_string($fieldValues[$fieldName])? str_replace($value, $fieldValues[$fieldName], $stringToReplaceField) :
184 wp_json_encode($fieldValues[$fieldName]);
185 }
186 }
187 return $stringToReplaceField;
188 }
189 }
190