WIP PDF updates
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 19 Apr 2017 18:45:45 +0000 (14:45 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Mon, 24 Apr 2017 15:59:24 +0000 (11:59 -0400)
Redoing the dates and titles.

models/front/events/list.php

index c59555f..3f34d36 100644 (file)
@@ -26,12 +26,14 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
     const PDF_BOTTOM_Y   = 80;
     const LINE_HEIGHT    = 10;
     const PDF_WIDTH      = 570;
+    const DATE_WIDTH     = 290;
+    const TITLE_WIDTH    = 250;
     const PDF_FONT_SIZE  = 8;
     const PDF_LOGO_SCALE = 1.45;
     const PDF_LOGO_X     = 20;
     const PDF_LOGO_Y     = 760;
     const PDF_LFT_COL_X  = 20;
-    const PDF_RGT_COL_X  = 250;
+    const PDF_RGT_COL_X  = 300;
 
     private $pages = array();
     /**
@@ -406,33 +408,61 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
                 foreach ( $events as $eventId => $event ) {
                     $lineCount = 1;
                     $eventTopY = $pdfY;
-                    // dates
+                    // Dates.
+                    // The event could have multiple schedules.
+                    $eventDates = '';
                     $dates = new SetaPDF_Core_Text_Block( $boldFont, self::PDF_FONT_SIZE );
-                    $eventDates = $event['dates'];
-                    if ( isset( $event['recurDays'] ) && ( $event['recurDays'] ) ) {
-                        $eventDates .=  ' ' . $event['recurDays'];
-                    }
-                    if ( !$event['all_day'] ) {
-                        $startTime = strftime( "%l:%M %P", strtotime( $event['starting_date'] ) );
-                        $endTime   = strftime( "%l:%M %P", strtotime( $event['ending_date'] ) );
-                        if ( $startTime != $endTime ) {
-                            $eventDates .= " {$startTime} - {$endTime}";
-                        } else {
-                            $eventDates .= " {$startTime}";
+                    foreach ( $event['recurrences'] as $rec ) {
+                        if ( !in_array( $rec['name'], array( 'Imported', 'Imported Event Schedule') ) ) {
+                            $eventDates .= $rec['name'] . ' ';
+                        }
+                        $eventDates .= $this->getEventDate( $rec['from_date']['timestamp'], $rec['to_date']['timestamp'], 'timestamp', false  );
+                        if ( !$event['all_day'] ) {
+                            $startTime = strftime( "%l:%M %p", $rec['start_time']['time'] );
+                            if ( $startTime == $endTime || $rec['start_time_only'] ) {
+                                $eventDates .= " {$startTime}";
+                            } else {
+                                $eventDates .= " {$startTime} - {$endTime}";
+                            }
                         }
                     }
+                    //$eventDates .= $event['dates'];
+                    //if ( isset( $event['recurDays'] ) && ( $event['recurDays'] ) ) {
+                        //$eventDates .=  ' ' . $event['recurDays'];
+                    //}
+                    //if ( !$event['all_day'] ) {
+                        //$startTime = strftime( "%l:%M %P", strtotime( $event['starting_date'] ) );
+                        //$endTime   = strftime( "%l:%M %P", strtotime( $event['ending_date'] ) );
+                        //if ( $startTime != $endTime ) {
+                            //$eventDates .= " {$startTime} - {$endTime}";
+                        //} else {
+                            //$eventDates .= " {$startTime}";
+                        //}
+                    //}
                     $dates->setText($eventDates);
-                    $dates->setWidth(220);
+                    $dates->setWidth(self::DATE_WIDTH);
                     $lineCount = $dates->getLineCount();
+                    if ( $dates->getLineCount() > 1 ) {
+                        $pdfY -= $dates->getLineHeight();
+                    }
                     $dates->draw($page->getCanvas(), self::PDF_LFT_COL_X, $pdfY);
+                    if ( $dates->getLineCount() > 1 ) {
+                        $pdfY += $dates->getLineHeight();
+                    }
 
                     // title
                     $title = new SetaPDF_Core_Text_Block( $boldFont, self::PDF_FONT_SIZE );
                     $title->setText(html_entity_decode( $event['name'], ENT_HTML5 ) );
                     //$title->setAlign('center');
-                    $title->setWidth(self::PDF_WIDTH);
+                    $title->setWidth(self::TITLE_WIDTH);
                     $lineCount = $title->getLineCount();
+                    if ( $title->getLineCount() > 1 ) {
+                        $pdfY -= $title->getLineHeight();
+                    }
                     $title->draw($page->getCanvas(), self::PDF_RGT_COL_X, $pdfY);
+                    if ( $title->getLineCount() > 1 ) {
+                        $pdfY += $title->getLineHeight();
+                    }
 
                     $pdfY -= self::LINE_HEIGHT;
 
@@ -569,7 +599,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
                 // add footers to each page
                 if ( $this->config['settings']['footer_text'] ) {
                     $footer = new SetaPDF_Core_Text_Block( $font, self::PDF_FONT_SIZE );
-                    $footer->setText( htmlspecialchars_decode($this->config['settings']['footer_text']));
+                    $footer->setText( html_entity_decode($this->config['settings']['footer_text'], ENT_HTML5));
                     $footer->setAlign('center');
                     $footer->setWidth(self::PDF_WIDTH);