@@ -321,3 +321,84 @@ public function getXml()
321
321
}
322
322
}
323
323
324
+ /**
325
+ * A class that contains all fields for an AuthorizeNet ARB SubscriptionList.
326
+ *
327
+ * @package AuthorizeNet
328
+ * @subpackage AuthorizeNetARB
329
+ */
330
+ class AuthorizeNet_GetSubscriptionList
331
+ {
332
+ public $ searchType ;
333
+ public $ sorting ;
334
+ public $ paging ;
335
+
336
+ public function getXml ()
337
+ {
338
+ $ emptyString = "" ;
339
+ $ sortingXml = (is_null ($ this ->sorting )) ? $ emptyString : $ this ->sorting ->getXml ();
340
+ $ pagingXml = (is_null ($ this ->paging )) ? $ emptyString : $ this ->paging ->getXml ();
341
+
342
+ $ xml = "
343
+ <searchType> {$ this ->searchType }</searchType> "
344
+ .$ sortingXml
345
+ .$ pagingXml
346
+ ;
347
+
348
+ $ xml_clean = "" ;
349
+ // Remove any blank child elements
350
+ foreach (preg_split ("/( \r? \n)/ " , $ xml ) as $ key => $ line ) {
351
+ if (!preg_match ('/><\// ' , $ line )) {
352
+ $ xml_clean .= $ line . "\n" ;
353
+ }
354
+ }
355
+
356
+ // Remove any blank parent elements
357
+ $ element_removed = 1 ;
358
+ // Recursively repeat if a change is made
359
+ while ($ element_removed ) {
360
+ $ element_removed = 0 ;
361
+ if (preg_match ('/<[a-z]+>[\r?\n]+\s*<\/[a-z]+>/i ' , $ xml_clean )) {
362
+ $ xml_clean = preg_replace ('/<[a-z]+>[\r?\n]+\s*<\/[a-z]+>/i ' , '' , $ xml_clean );
363
+ $ element_removed = 1 ;
364
+ }
365
+ }
366
+
367
+ // Remove any blank lines
368
+ // $xml_clean = preg_replace('/\r\n[\s]+\r\n/','',$xml_clean);
369
+ return $ xml_clean ;
370
+ }
371
+ }
372
+
373
+ class paging
374
+ {
375
+ public $ limit ;
376
+ public $ offset ;
377
+
378
+ public function getXml ()
379
+ {
380
+ $ xml = "<paging>
381
+ <limit> {$ this ->limit }</limit>
382
+ <offset> {$ this ->offset }</offset>
383
+ </paging> " ;
384
+
385
+ return $ xml ;
386
+ }
387
+ }
388
+
389
+ class sorting
390
+ {
391
+ public $ orderBy ;
392
+ public $ orderDescending ;
393
+
394
+ public function getXml ()
395
+ {
396
+ $ xml = "
397
+ <sorting>
398
+ <orderBy> {$ this ->orderBy }</orderBy>
399
+ <orderDescending> {$ this ->orderDescending }</orderDescending>
400
+ </sorting> " ;
401
+
402
+ return $ xml ;
403
+ }
404
+ }
0 commit comments