You are here

function site_status_message_scheduler_page_alter in Site Status Message 7

Implements hook_page_alter().

File

modules/site_status_message_scheduler/site_status_message_scheduler.module, line 114
Site Status Message Scheduler.

Code

function site_status_message_scheduler_page_alter(&$page) {

  // Check if the message is due to be scheduled.
  if (variable_get('site_status_message_schedule')) {
    $hide_message = FALSE;
    $start_date = variable_get('site_status_message_start_date', date('Y-m-d H:i:s'));
    $end_date = variable_get('site_status_message_use_end_date') ? variable_get('site_status_message_end_date', date('Y-m-d H:i:s')) : NULL;
    $now = new DateTime();
    $start = new DateTime($start_date);
    if ($start
      ->getTimestamp() > $now
      ->getTimestamp()) {

      // Hide the message if the start date/time is in the future.
      $hide_message = TRUE;
    }

    // Check if the scheduler uses an end date.
    if ($end_date) {
      $end = new DateTime($end_date);
      if ($end
        ->getTimestamp() <= $now
        ->getTimestamp()) {

        // Hide the message if the end date/time is in the past.
        $hide_message = TRUE;
      }
    }
    if ($hide_message) {

      // Remove the message from the page_top array so it won't be rendered.
      unset($page['page_top']['site_status_message']);
    }
  }
}