Question

Everyone on this forum has helped me tremendously. Thank you. I now have a page that functions the way I want it but my code seems to be cumbersome. To figure out a string to echo I have a long series of if else if statements that I can't figure out how to streamline.

Here is the code in full:

      <h1 class="ongoing_events">Ongoing</h1>

  <?php // This is the loop for quering an individual page's events and upcoming events
  date_default_timezone_set('America/New_York');
  $todaysDate = date('Y/m/d'); // Get today's date in the right format
  $today = date("Y-m-d 00:00");  // set today's date with eastern timezone
  $todayevening = date("Y-m-d 17:00");// set limit for "today" events extending to 5 pm same day
  $tonight = date("Y-m-d 03:00", strtotime("+1 day"));// set limit for "tonight" events extending to 3:00 am next day
  $tomorrow = date("Y-m-d 03:00", strtotime("+2 days"));// set limit for "tonight" events extending to 3:00 am next next day
  $lastWeek = date("Y-m-d", strtotime("-7 days"));
  $nextWeek = date("Y/m/d", strtotime("+7 days"));

  $eventsloop = new WP_Query('post_type=event&location=' . $whatCity .'&meta_key=end_date&meta_compare=>=&meta_value=' . $todaysDate . '&orderby=meta_value&order=ASC'); // Displays the events that have not ended yet

  while($eventsloop->have_posts()) : $eventsloop->the_post(); // begin the loop after sorting the posts by location date and removing old end dates

  /* Let's get all the meta date in one call rather then so many queries */
  $event_custom_meta=get_post_custom($post->ID); // Get all the data 
  if  ( $event_custom_meta )
  {
  $event_start_date = $event_custom_meta['start_date'][0]; 
  $event_end_date = $event_custom_meta['end_date'][0];
  $event_opening_time = $event_custom_meta['opening_time'][0];
  $event_closing_time = $event_custom_meta['closing_time'][0];
  $event_artist_talk_time = $event_custom_meta['artist_talk_time'][0];
  $event_lecture_time = $event_custom_meta['lecture_time'][0];
  $event_panel_time = $event_custom_meta['panel_time'][0];
  $event_special_event_time = $event_custom_meta['special_event_time'][0];
  $event_workshop_time = $event_custom_meta['workshop_time'][0];
  $event_custom_event_venue = $event_custom_meta['custom_event_venue'][0];
  $event_venue_info = $pieces = explode("***", $event_custom_meta[$prefix.'event_venue'][0]);
  $event_featured_event = $event_custom_meta['featured_event'][0];
  }   /* The test works. Alright, now I can echo these variables anyplace that I want */
  ?>

  <div class="ongoing_event">
  <div class="row">
  <div class="grid_4">

  <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title('<h2>', '</h2>'); ?></a>

  <a href="<?php echo $event_venue_info[1]; ?>" title="<?php echo $event_venue_info[0]; ?>">
  <h3>
  <?php  
      if ($event_venue_info[0] != 'other') { 
          echo $event_venue_info[0];
          }
      if ($event_venue_info[0] == 'other') {
          echo $event_custom_event_venue;
          }
  ?>
  </h3></a> 

  <?php // Format the running dates
  $writestart = preg_split ( '/\//', $event_start_date );
  $writeend = preg_split ( '/\//', $event_end_date ); 
  ?>

  <h4>
  <?php // and print nicely
  if ($event_end_date <= $nextWeek) {
      echo '<span class="last_chance">Last Chance: </span>';    
  }
  echo date('F j', mktime( 0, 0, 0, $writestart[1], $writestart[2], $writestart[0] ) );
  echo ' through ';
  echo date('F j, Y', mktime( 0, 0, 0, $writeend[1], $writeend[2], $writeend[0] ) );
  ?>
  </h4>     

  <?php // Check if Opening or Closing dates exist and echo the information     
  $convertedtime2 = "F j, Y | g:i a"; // convert to 12 hour clock and minutes       
  $opening_time_formated = date($convertedtime2, strtotime($event_opening_time));   
  $closing_time_formated = date($convertedtime2, strtotime($event_closing_time));   
  $artist_talk_time_formated = date($convertedtime2, strtotime($event_artist_talk_time));   
  $lecture_time_formated = date($convertedtime2, strtotime($event_lecture_time));   
  $panel_time_formated = date($convertedtime2, strtotime($event_panel_time));   
  $special_event_time_formated = date($convertedtime2, strtotime($event_special_event_time));   
  $workshop_time_formated = date($convertedtime2, strtotime($event_workshop_time)); 
  $end_date_formated = date('F j, Y', mktime( 0, 0, 0, $writeend[1], $writeend[2], $writeend[0] ) );

  if ($event_opening_time >= $today) {
      echo '<h5>';
      if ($event_opening_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_opening_time > $todayevening && $event_opening_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_opening_time > $tonight && $event_opening_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Opening: </span>'.$opening_time_formated .'</h5>';             
  }

  if ($event_closing_time >= $today) {
      echo '<h5>';
      if ($event_closing_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_closing_time > $todayevening && $event_closing_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_closing_time > $tonight && $event_closing_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Closing: </span>'.$closing_time_formated .'</h5>';     
  }

  if ($event_artist_talk_time >= $today) {
          echo '<h5>';
      if ($event_artist_talk_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_artist_talk_time > $todayevening && $event_artist_talk_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_artist_talk_time > $tonight && $event_artist_talk_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Artist Talk: </span>'.$artist_talk_time_formated .'</h5>';     
  }

  if ($event_lecture_time >= $today) {
      echo '<h5>';
      if ($event_lecture_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_lecture_time > $todayevening && $event_lecture_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_lecture_time > $tonight && $event_lecture_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Lecture: </span>'.$lecture_time_formated .'</h5>'; 
  }

  if ($event_panel_time >= $today) {    
      echo '<h5>';
      if ($event_panel_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_panel_time > $todayevening && $event_panel_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_panel_time > $tonight && $event_panel_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Panel: </span>'.$panel_time_formated .'</h5>';
  }

  if ($event_special_event_time >= $today) {
      echo '<h5>';
      if ($event_special_event_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_special_event_time > $todayevening && $event_special_event_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_special_event_time > $tonight && $event_special_event_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Special Event: </span>'.$special_event_time_formated .'</h5>'; 
  }

  if ($event_workshop_time >= $today) {
      echo '<h5>';
      if ($event_workshop_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_workshop_time > $todayevening && $event_workshop_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_workshop_time > $tonight && $event_workshop_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Workshop: </span>'.$workshop_time_formated .'</h5>';
  }

  the_excerpt();
  ?>

  </div><!-- end .grid_4-->
  <div class="grid_4"> 

  <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php echo get_the_post_thumbnail($post_id, 'half_postcard'); ?></a> 

  </div> <!-- end .grid_4-->
  </div><!-- end .row-->                
  </div><!-- end .ongoing_event-->
  <?php endwhile; ?>

  </div> <!-- end .grid_8--><!--end ongoing events listing -->

Here are the inefficient if statements:

 if ($event_opening_time >= $today) {
      echo '<h5>';
      if ($event_opening_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_opening_time > $todayevening && $event_opening_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_opening_time > $tonight && $event_opening_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Opening: </span>'.$opening_time_formated .'</h5>';             
  }

  if ($event_closing_time >= $today) {
      echo '<h5>';
      if ($event_closing_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_closing_time > $todayevening && $event_closing_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_closing_time > $tonight && $event_closing_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Closing: </span>'.$closing_time_formated .'</h5>';     
  }

  if ($event_artist_talk_time >= $today) {
          echo '<h5>';
      if ($event_artist_talk_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_artist_talk_time > $todayevening && $event_artist_talk_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_artist_talk_time > $tonight && $event_artist_talk_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Artist Talk: </span>'.$artist_talk_time_formated .'</h5>';     
  }

  if ($event_lecture_time >= $today) {
      echo '<h5>';
      if ($event_lecture_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_lecture_time > $todayevening && $event_lecture_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_lecture_time > $tonight && $event_lecture_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Lecture: </span>'.$lecture_time_formated .'</h5>'; 
  }

  if ($event_panel_time >= $today) {    
      echo '<h5>';
      if ($event_panel_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_panel_time > $todayevening && $event_panel_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_panel_time > $tonight && $event_panel_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Panel: </span>'.$panel_time_formated .'</h5>';
  }

  if ($event_special_event_time >= $today) {
      echo '<h5>';
      if ($event_special_event_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_special_event_time > $todayevening && $event_special_event_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_special_event_time > $tonight && $event_special_event_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Special Event: </span>'.$special_event_time_formated .'</h5>'; 
  }

  if ($event_workshop_time >= $today) {
      echo '<h5>';
      if ($event_workshop_time <= $todayevening) {
          echo '<span class="last_chance">Today: </span>';  
      }
      else if ($event_workshop_time > $todayevening && $event_workshop_time <= $tonight) {
          echo '<span class="last_chance">Tonight: </span>';    
      }
      else if ($event_workshop_time > $tonight && $event_workshop_time <= $tomorrow) {
          echo '<span class="last_chance">Tomorrow: </span>';
      }
      echo '<span class="strong">Workshop: </span>'.$workshop_time_formated .'</h5>';
  }

Thank you in advance for your help. Excuse my lack of ability to use php efficiently.

No correct solution

Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange
scroll top