You are here

public static function CalendarHelper::week in Calendar 8.2

Returns an array for week.

Parameters

\Drupal\views\ViewExecutable $view: The view.

Return value

array Empty array for week.

Throws

\Exception

File

src/CalendarHelper.php, line 64

Class

CalendarHelper
Class CalendarHelper.

Namespace

Drupal\calendar

Code

public static function week(ViewExecutable $view) {
  $week_header = self::buildWeekHeader($view->styleInfo
    ->getDayNameSize());
  $calendar_arguments = self::getCalendarArguments($view);
  foreach ($calendar_arguments as $date_argument) {
    $week_info = self::weekInfo($date_argument['argument']);

    // Week_header is already ordered so use that.
    $week_header_keys = array_keys($week_header);
    $week_header_day = array_shift($week_header_keys);
    $date = clone $week_info['startweekdate'];
    $end_date = clone $week_info['endweekdate'];
    do {
      $caldays[$week_info['weekno']]['weekdays'][$date
        ->format('Ymd')] = [
        'header' => $week_header[$week_header_day],
        'date' => $date
          ->format('d'),
        'multiday' => [],
        'allday' => [],
        'other' => [],
      ];
      $date
        ->add(new DateInterval('P1D'));
      if ($week_header_day < 6) {
        $week_header_day++;
      }
      else {
        $week_header_day = 0;
      }
    } while ($date <= $end_date);

    // Add start- and enddate since we need this for offset calculations and linkdata.
    $caldays[$week_info['weekno']]['startweekdate'] = $week_info['startweekdate'];
    $caldays[$week_info['weekno']]['endweekdate'] = $week_info['endweekdate'];
  }
  return $caldays;
}