Check for array before using foreach
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 20 Feb 2019 13:32:58 +0000 (08:32 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 20 Feb 2019 13:32:58 +0000 (08:32 -0500)
Test before using foreach.

models/admin/ajax/leadPdfExport.php

index 187a136..1463a20 100644 (file)
@@ -264,7 +264,7 @@ class GlmMembersAdmin_ajax_leadPdfExport extends GlmDataTravelLeads
                 $pdf->ezSetY( $endMainY );
 
                 // Contacts
-                if ( $lead['contacts'] ) {
+                if ( isset( $lead['contacts'] ) && is_array( $lead['contacts'] ) && !empty( $lead['contacts'] ) ) {
                     $pdf->selectFont( $mainFontBold );
                     $curY = $pdf->ezText( '<b>Additional Contacts</b>', $size );
                     $column = 1;
@@ -309,7 +309,7 @@ class GlmMembersAdmin_ajax_leadPdfExport extends GlmDataTravelLeads
                 }
 
                 // Referred By
-                if ( $lead['refs'] ) {
+                if ( isset( $lead['refs'] ) && is_array( $lead['refs'] ) && !empty( $lead['refs'] ) ) {
                     $pdf->selectFont( $mainFontBold );
                     $pdf->ezText( 'Referred By', $size );
                     $pdf->selectFont( $mainFont );
@@ -319,7 +319,7 @@ class GlmMembersAdmin_ajax_leadPdfExport extends GlmDataTravelLeads
                     $pdf->ezText( "\n", $size );
                 }
                 // Notes
-                if ( $lead['notes'] ) {
+                if ( isset( $lead['notes'] ) && is_array( $lead['notes'] ) && !empty( $lead['notes'] ) ) {
                     foreach ( $lead['notes'] as $note ) {
                         $pdf->selectFont( $mainFontBold );
                         $pdf->ezText( $note['updated']['datetime'], $size );
@@ -343,14 +343,16 @@ class GlmMembersAdmin_ajax_leadPdfExport extends GlmDataTravelLeads
     {
         $ret = '';
         $format = "%s\r%s\r";
-        foreach($notes as $log) {
-            $logMessage = preg_replace("/\n/", '', $log['notes']);
-            $logMessage = str_replace("\"", "'", $logMessage);
-            $ret .= sprintf(
-                $format,
-                $log['updated']['datetime'],
-                $logMessage
-            );
+        if ( is_array( $notes ) ) {
+            foreach( $notes as $log ) {
+                $logMessage = preg_replace("/\n/", '', $log['notes']);
+                $logMessage = str_replace("\"", "'", $logMessage);
+                $ret .= sprintf(
+                    $format,
+                    $log['updated']['datetime'],
+                    $logMessage
+                );
+            }
         }
         return $ret;
     }
@@ -359,13 +361,15 @@ class GlmMembersAdmin_ajax_leadPdfExport extends GlmDataTravelLeads
     {
         $ret = '';
         $format = "%s %s %s\r";
-        foreach($contacts as $c) {
-            $ret .= sprintf(
-                $format,
-                $c['name'],
-                $c['email'],
-                $c['phone']
-            );
+        if ( is_array( $contacts ) ) {
+            foreach( $contacts as $c ) {
+                $ret .= sprintf(
+                    $format,
+                    $c['name'],
+                    $c['email'],
+                    $c['phone']
+                );
+            }
         }
         return $ret;
     }
@@ -374,11 +378,13 @@ class GlmMembersAdmin_ajax_leadPdfExport extends GlmDataTravelLeads
     {
         $ret = '';
         $format = "%s\r";
-        foreach($refs as $r) {
-            $ret .= sprintf(
-                $format,
-                $r['referredby_name']
-            );
+        if ( is_array( $refs ) ) {
+            foreach( $refs as $r ) {
+                $ret .= sprintf(
+                    $format,
+                    $r['referredby_name']
+                );
+            }
         }
         return $ret;
     }