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