@@ -321,3 +321,84 @@ public function getXml()
321321 }
322322}
323323
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