Maileon PHP client  1.5.5
Easily integrate your PHP application with Maileon.
XMLDeserializer.php
1 <?php
2 
4 {
5 
6  public static function deserialize($xmlElement)
7  {
8  if (isset($xmlElement)) {
9  $result = null;
10  switch (strtolower($xmlElement->getName())) {
11  case "count":
12  case "id":
13  case "targetgroupid":
14  case "count_attachments":
15  return (int)$xmlElement;
16  // __toString() caused error (not found) on several servers
17  // return (int)$xmlElement->__toString();
18  case "doi_key":
19  return $xmlElement;
20  case "tags":
21  return explode("#", $xmlElement);
22  case "name":
23  return $xmlElement;
24  case "templateId":
25  case "previewtext":
26  case "subject":
27  case "senderalias":
28  case "ignore_permission":
29  case "url":
30  return (string)$xmlElement;
31  case "locale":
32  return $xmlElement;
33  case "event":
34  return false; // deserialization not yet supported.
35 
36  case "events":
37  return false; // deserialization not yet supported.
38 
39  case "result":
40  $result = array();
41  if (!empty($xmlElement->contact_filter_id)) $result['contact_filter_id'] = $xmlElement->contact_filter_id;
42  if (!empty($xmlElement->target_group_id) && ($xmlElement->target_group_id!=-1)) $result['target_group_id'] = $xmlElement->target_group_id;
43  return $result;
44 
45  case "contacteventtype":
47  break;
48 
49  case "schedule":
50  $result = new com_maileon_api_mailings_Schedule();
51  break;
52 
53  case "contacteventtypes":
54  $result = array();
55  foreach ($xmlElement as $contactEventTypeElement) {
56  $result[] = self::deserialize($contactEventTypeElement);
57  }
58  return $result;
59 
60  case "targetgroup":
62  break;
63 
64  case "targetgroups":
65  $result = array();
66  foreach ($xmlElement as $element) {
67  $result[] = self::deserialize($element);
68  }
69  return $result;
70 
71  case "contactfilter":
73  break;
74 
75  case "contactfilters":
76  $result = array();
77  foreach ($xmlElement as $contactFilterElement) {
78  $result[] = self::deserialize($contactFilterElement);
79  }
80  return $result;
81 
82  case "conversion":
83  $result = new com_maileon_api_reports_Conversion();
84  break;
85 
86  case "conversions":
87  $result = array();
88  foreach ($xmlElement as $conversionElement) {
89  $result[] = self::deserialize($conversionElement);
90  }
91  return $result;
92 
93  case "unique_conversion":
95  break;
96 
97  case "unique_conversions":
98  $result = array();
99  foreach ($xmlElement as $conversionElement) {
100  $result[] = self::deserialize($conversionElement);
101  }
102  return $result;
103 
104  case "contact":
105  $result = new com_maileon_api_contacts_Contact();
106  break;
107 
108  case "contacts":
109  $result = new com_maileon_api_contacts_Contacts();
110  break;
111 
112  case "attachment":
113  $result = new com_maileon_api_mailings_Attachment();
114  break;
115 
116  case "attachments":
117  $result = array();
118  foreach ($xmlElement as $attachmentElement) {
119  $result[] = self::deserialize($attachmentElement);
120  }
121  return $result;
122 
123  case "custom_fields":
125  break;
126 
127  case "custom_fields":
129  break;
130 
131  case "unsubscription":
132  $result = new com_maileon_api_reports_Unsubscriber();
133  break;
134 
135  case "unsubscriptions":
136  $result = array();
137  foreach ($xmlElement as $unsubscriptionElement) {
138  $result[] = self::deserialize($unsubscriptionElement);
139  }
140  return $result;
141 
142  case "subscriber":
143  $result = new com_maileon_api_reports_Subscriber();
144  break;
145 
146  case "subscribers":
147  $result = array();
148  foreach ($xmlElement as $subscriberElement) {
149  $result[] = self::deserialize($subscriberElement);
150  }
151  return $result;
152 
153  case "field_backup":
154  $result = new com_maileon_api_reports_FieldBackup();
155  break;
156 
157  case "field_backups":
158  $result = array();
159  foreach ($xmlElement as $fieldBackupElement) {
160  $result[] = self::deserialize($fieldBackupElement);
161  }
162  return $result;
163 
164  case "transaction_type":
166  break;
167 
168  case "transaction_types":
169  $result = array();
170  foreach ($xmlElement as $transactionTypeElement) {
171  $result[] = self::deserialize($transactionTypeElement);
172  }
173  return $result;
174 
175  case "transaction_type_id":
176  return (int)$xmlElement;
177 
178  case "recipient":
179  $result = new com_maileon_api_reports_Recipient();
180  break;
181 
182  case "recipients":
183  $result = array();
184  foreach ($xmlElement as $recipientElement) {
185  $result[] = self::deserialize($recipientElement);
186  }
187  return $result;
188 
189  case "open":
190  $result = new com_maileon_api_reports_Open();
191  break;
192 
193  case "opens":
194  $result = array();
195  foreach ($xmlElement as $openElement) {
196  $result[] = self::deserialize($openElement);
197  }
198  return $result;
199 
200  case "click":
201  $result = new com_maileon_api_reports_Click();
202  break;
203 
204  case "clicks":
205  $result = array();
206  foreach ($xmlElement as $clickElement) {
207  $result[] = self::deserialize($clickElement);
208  }
209  return $result;
210 
211  case "bounce":
212  $result = new com_maileon_api_reports_Bounce();
213  break;
214 
215  case "bounces":
216  $result = array();
217  foreach ($xmlElement as $bounceElement) {
218  $result[] = self::deserialize($bounceElement);
219  }
220  return $result;
221 
222  case "unique_bounce":
223  $result = new com_maileon_api_reports_UniqueBounce();
224  break;
225 
226  case "unique_bounces":
227  $result = array();
228  foreach ($xmlElement as $bounceElement) {
229  $result[] = self::deserialize($bounceElement);
230  }
231  return $result;
232 
233  case "block":
234  $result = new com_maileon_api_reports_Block();
235  break;
236 
237  case "blocks":
238  $result = array();
239  foreach ($xmlElement as $blockElement) {
240  $result[] = self::deserialize($blockElement);
241  }
242  return $result;
243 
244  case "mailing":
245  $result = new com_maileon_api_mailings_Mailing();
246  break;
247 
248  case "mailings":
249  $result = array();
250  foreach ($xmlElement as $mailingElement) {
251  $result[] = self::deserialize($mailingElement);
252  }
253  return $result;
254 
255  case "blacklist":
256  $result = new com_maileon_api_blacklists_Blacklist();
257  break;
258 
259  case "blacklists":
260  $result = array();
261  foreach ($xmlElement as $blacklistElement) {
262  $result[] = self::deserialize($blacklistElement);
263  }
264  return $result;
265 
266 
267  case "property":
269  break;
270 
271  case "properties":
272  $result = array();
273  foreach ($xmlElement as $element) {
274  $result[] = self::deserialize($element);
275  }
276  return $result;
277 
278 
279  case "account_placeholder":
281  break;
282 
283  case "account_placeholders":
284  $result = array();
285  foreach ($xmlElement as $element) {
286  $result[] = self::deserialize($element);
287  }
288  return $result;
289 
290  default:
291  $result = null;
292  break;
293  }
294  if ($result) {
295  $result->fromXML($xmlElement);
296  return $result;
297  }
298  }
299  return false;
300  }
301 }
302 
303 ?>