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