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