calendar-bundle/src/Resources/contao/modules/ModuleCalendar.php
protected function compileWeeks()
	{
		$intDaysInMonth = date('t', $this->Date->monthBegin);
		$intFirstDayOffset = date('w', $this->Date->monthBegin) - $this->cal_startDay;

		if ($intFirstDayOffset < 0)
		{
			$intFirstDayOffset += 7;
		}

		$intColumnCount = -1;
		$intNumberOfRows = ceil(($intDaysInMonth + $intFirstDayOffset) / 7);
		$arrAllEvents = $this->getAllEvents($this->cal_calendar, $this->Date->monthBegin, $this->Date->monthEnd);
		$arrDays = array();

		// Compile days
		for ($i=1; $i<=($intNumberOfRows * 7); $i++)
		{
			$intWeek = floor(++$intColumnCount / 7);
			$intDay = $i - $intFirstDayOffset;
			$intCurrentDay = ($i + $this->cal_startDay) % 7;

			$strWeekClass = 'week_' . $intWeek;
			$strWeekClass .= ($intWeek == 0) ? ' first' : '';
			$strWeekClass .= ($intWeek == ($intNumberOfRows - 1)) ? ' last' : '';

			$strClass = ($intCurrentDay < 2) ? ' weekend' : '';
			$strClass .= ($i == 1 || $i == 8 || $i == 15 || $i == 22 || $i == 29 || $i == 36) ? ' col_first' : '';
			$strClass .= ($i == 7 || $i == 14 || $i == 21 || $i == 28 || $i == 35 || $i == 42) ? ' col_last' : '';

			// Add timestamp to all cells
			$arrDays[$strWeekClass][$i]['timestamp'] = strtotime(($intDay - 1) . ' day', $this->Date->monthBegin);

			// Empty cell
			if ($intDay < 1 || $intDay > $intDaysInMonth)
			{
				$arrDays[$strWeekClass][$i]['label'] = '&nbsp;';
				$arrDays[$strWeekClass][$i]['class'] = 'days empty' . $strClass;
				$arrDays[$strWeekClass][$i]['events'] = array();

				continue;
			}

			$intKey = date('Ym', $this->Date->tstamp) . ((\strlen($intDay) < 2) ? '0' . $intDay : $intDay);
			$strClass .= ($intKey == date('Ymd')) ? ' today' : '';

			// Mark the selected day (see #1784)
			if ($intKey == Input::get('day'))
			{
				$strClass .= ' selected';
			}

			// Inactive days
			if (empty($intKey) || !isset($arrAllEvents[$intKey]))
			{
				$arrDays[$strWeekClass][$i]['label'] = $intDay;
				$arrDays[$strWeekClass][$i]['class'] = 'days' . $strClass;
				$arrDays[$strWeekClass][$i]['events'] = array();

				continue;
			}

			$arrEvents = array();

			// Get all events of a day
			foreach ($arrAllEvents[$intKey] as $v)
			{
				foreach ($v as $vv)
				{
					$arrEvents[] = $vv;
				}
			}

			$arrDays[$strWeekClass][$i]['label'] = $intDay;
			$arrDays[$strWeekClass][$i]['class'] = 'days active' . $strClass;
			$arrDays[$strWeekClass][$i]['href'] = $this->strLink . '?day=' . $intKey;
			$arrDays[$strWeekClass][$i]['title'] = sprintf(StringUtil::specialchars($GLOBALS['TL_LANG']['MSC']['cal_events']), \count($arrEvents));
			$arrDays[$strWeekClass][$i]['events'] = $arrEvents;
		}

		return $arrDays;
	}
protected function compileWeeks()
	{
		$intDaysInMonth = date('t', $this->Date->monthBegin);
		$intFirstDayOffset = date('w', $this->Date->monthBegin) - $this->cal_startDay;

		if ($intFirstDayOffset < 0)
		{
			$intFirstDayOffset += 7;
		}

		$intColumnCount = -1;
		$intNumberOfRows = ceil(($intDaysInMonth + $intFirstDayOffset) / 7);
		$arrAllEvents = $this->getAllEvents($this->cal_calendar, $this->Date->monthBegin, $this->Date->monthEnd);
		$arrDays = array();

		// Compile days
		for ($i=1; $i<=($intNumberOfRows * 7); $i++)
		{
			$intWeek = floor(++$intColumnCount / 7);
			$intDay = $i - $intFirstDayOffset;
			$intCurrentDay = ($i + $this->cal_startDay) % 7;

			$strWeekClass = 'week_' . $intWeek;
			$strWeekClass .= ($intWeek == 0) ? ' first' : '';
			$strWeekClass .= ($intWeek == ($intNumberOfRows - 1)) ? ' last' : '';

			$strClass = ($intCurrentDay < 2) ? ' weekend' : '';
			$strClass .= ($i == 1 || $i == 8 || $i == 15 || $i == 22 || $i == 29 || $i == 36) ? ' col_first' : '';
			$strClass .= ($i == 7 || $i == 14 || $i == 21 || $i == 28 || $i == 35 || $i == 42) ? ' col_last' : '';

			// Add timestamp to all cells
			$arrDays[$strWeekClass][$i]['timestamp'] = strtotime(($intDay - 1) . ' day', $this->Date->monthBegin);

			// Empty cell
			if ($intDay < 1 || $intDay > $intDaysInMonth)
			{
				$arrDays[$strWeekClass][$i]['label'] = '&nbsp;';
				$arrDays[$strWeekClass][$i]['class'] = 'days empty' . $strClass;
				$arrDays[$strWeekClass][$i]['events'] = array();

				continue;
			}

			$intKey = date('Ym', $this->Date->tstamp) . ((\strlen($intDay) < 2) ? '0' . $intDay : $intDay);
			$strClass .= ($intKey == date('Ymd')) ? ' today' : '';

			// Mark the selected day (see #1784)
			if ($intKey == Input::get('day'))
			{
				$strClass .= ' selected';
			}

			// Inactive days
			if (empty($intKey) || !isset($arrAllEvents[$intKey]))
			{
				$arrDays[$strWeekClass][$i]['label'] = $intDay;
				$arrDays[$strWeekClass][$i]['class'] = 'days' . $strClass;
				$arrDays[$strWeekClass][$i]['events'] = array();

				continue;
			}

			$arrEvents = array();

			// Get all events of a day
			foreach ($arrAllEvents[$intKey] as $v)
			{
				foreach ($v as $vv)
				{
					$arrEvents[] = $vv;
				}
			}

			$arrDays[$strWeekClass][$i]['label'] = $intDay;
			$arrDays[$strWeekClass][$i]['class'] = 'days active' . $strClass;
			$arrDays[$strWeekClass][$i]['href'] = $this->strLink . '?day=' . $intKey;
			$arrDays[$strWeekClass][$i]['title'] = sprintf(StringUtil::specialchars($GLOBALS['TL_LANG']['MSC']['cal_events']), \count($arrEvents));
			$arrDays[$strWeekClass][$i]['events'] = $arrEvents;
		}

		return $arrDays;
	}
protected function compileWeeks ( ) { $ intDaysInMonth = date ( 't' , $ this -> Date -> monthBegin ) ; $ intFirstDayOffset = date ( 'w' , $ this -> Date -> monthBegin ) - $ this -> cal_startDay ; if ( $ intFirstDayOffset < 0 ) { $ intFirstDayOffset += 7 ; } $ intColumnCount = - 1 ; $ intNumberOfRows = ceil ( ( $ intDaysInMonth + $ intFirstDayOffset ) / 7 ) ; $ arrAllEvents = $ this -> getAllEvents ( $ this -> cal_calendar , $ this -> Date -> monthBegin , $ this -> Date -> monthEnd ) ; $ arrDays = array ( ) ; // Compile days for ( $ i = 1 ; $ i <= ( $ intNumberOfRows * 7 ) ; $ i ++ ) { $ intWeek = floor ( ++ $ intColumnCount / 7 ) ; $ intDay = $ i - $ intFirstDayOffset ; $ intCurrentDay = ( $ i + $ this -> cal_startDay ) % 7 ; $ strWeekClass = 'week_' . $ intWeek ; $ strWeekClass .= ( $ intWeek == 0 ) ? ' first' : '' ; $ strWeekClass .= ( $ intWeek == ( $ intNumberOfRows - 1 ) ) ? ' last' : '' ; $ strClass = ( $ intCurrentDay < 2 ) ? ' weekend' : '' ; $ strClass .= ( $ i == 1 || $ i == 8 || $ i == 15 || $ i == 22 || $ i == 29 || $ i == 36 ) ? ' col_first' : '' ; $ strClass .= ( $ i == 7 || $ i == 14 || $ i == 21 || $ i == 28 || $ i == 35 || $ i == 42 ) ? ' col_last' : '' ; // Add timestamp to all cells $ arrDays [ $ strWeekClass ] [ $ i ] [ 'timestamp' ] = strtotime ( ( $ intDay - 1 ) . ' day' , $ this -> Date -> monthBegin ) ; // Empty cell if ( $ intDay < 1 || $ intDay > $ intDaysInMonth ) { $ arrDays [ $ strWeekClass ] [ $ i ] [ 'label' ] = '&nbsp;' ; $ arrDays [ $ strWeekClass ] [ $ i ] [ 'class' ] = 'days empty' . $ strClass ; $ arrDays [ $ strWeekClass ] [ $ i ] [ 'events' ] = array ( ) ; continue ; } $ intKey = date ( 'Ym' , $ this -> Date -> tstamp ) . ( ( \ strlen ( $ intDay ) < 2 ) ? '0' . $ intDay : $ intDay ) ; $ strClass .= ( $ intKey == date ( 'Ymd' ) ) ? ' today' : '' ; // Mark the selected day (see #1784) if ( $ intKey == Input :: get ( 'day' ) ) { $ strClass .= ' selected' ; } // Inactive days if ( empty ( $ intKey ) || ! isset ( $ arrAllEvents [ $ intKey ] ) ) { $ arrDays [ $ strWeekClass ] [ $ i ] [ 'label' ] = $ intDay ; $ arrDays [ $ strWeekClass ] [ $ i ] [ 'class' ] = 'days' . $ strClass ; $ arrDays [ $ strWeekClass ] [ $ i ] [ 'events' ] = array ( ) ; continue ; } $ arrEvents = array ( ) ; // Get all events of a day foreach ( $ arrAllEvents [ $ intKey ] as $ v ) { foreach ( $ v as $ vv ) { $ arrEvents [ ] = $ vv ; } } $ arrDays [ $ strWeekClass ] [ $ i ] [ 'label' ] = $ intDay ; $ arrDays [ $ strWeekClass ] [ $ i ] [ 'class' ] = 'days active' . $ strClass ; $ arrDays [ $ strWeekClass ] [ $ i ] [ 'href' ] = $ this -> strLink . '?day=' . $ intKey ; $ arrDays [ $ strWeekClass ] [ $ i ] [ 'title' ] = sprintf ( StringUtil :: specialchars ( $ GLOBALS [ 'TL_LANG' ] [ 'MSC' ] [ 'cal_events' ] ) , \ count ( $ arrEvents ) ) ; $ arrDays [ $ strWeekClass ] [ $ i ] [ 'events' ] = $ arrEvents ; } return $ arrDays ; }
Return all weeks of the current month as array

@return array
Return all weeks of the current month as array