0) { if ($image[ 0 ][ 0 ] != '') { return $image[ 0 ][ 0 ]; } else { return false; } } } public static function getURLs($googleEvent) { preg_match_all('/'.self::$urlMatch.'/i', $googleEvent[ 'description' ], $url, PREG_PATTERN_ORDER); if (sizeof($url[ 0 ]) > 0) { if ($url[ 0 ][ 0 ] != '') { return $url[ 0 ][ 0 ]; } else { return false; } } } public static function removeImages($googleEvent) { preg_match_all('/'.self::$imageMatch.'/i', $googleEvent[ 'description' ], $image, PREG_PATTERN_ORDER); return preg_replace( '/\n'.self::$imageMatch.'/i', '', $googleEvent[ 'description' ] ); } public static function removeURLs($googleEvent) { preg_match_all('/'.self::$urlMatch.'/i', $googleEvent[ 'description' ], $url, PREG_PATTERN_ORDER); return preg_replace( '/\n'.self::$urlMatch.'/i', '', $googleEvent[ 'description' ] ); } public static function getEvents($app) { $googleCalendar = Helpers::JSON2Array($app[ 'cache' ][ 'calendar' ][ 'json' ]); foreach ($googleCalendar[ 'items' ] as $googleEvent) { unset($event); $event = self::getEventDateTime($googleEvent); $event[ 'name' ] = $googleEvent[ 'summary' ]; if (array_key_exists('location', $googleEvent)) { $event[ 'location' ] = $googleEvent[ 'location' ]; } $event[ 'image' ] = false; $event[ 'url' ] = false; if (array_key_exists('description', $googleEvent)) { $event[ 'description' ] = $googleEvent[ 'description' ]; $event[ 'image' ] = self::getImages($event); $event[ 'description' ] = self::removeImages($event); $event[ 'url' ] = self::getURLs($event); $event[ 'description' ] = self::removeURLs($event); $event[ 'description' ] = nl2br($event[ 'description' ]); } $events[] = $event; } return $events; } public static function getEventsByMonth($events, $year, $month) { $year = (int) $year; $month = (int) $month; $eventsInMonth = array(); foreach ($events as $event) { if ((date('Y', $event[ 'start' ]) == $year) && (date('m', $event[ 'start' ]) == $month)) { $eventsInMonth[] = $event; } } return $eventsInMonth; } public static function getEventsByDay($events, $year, $month, $day) { $year = (int) $year; $month = (int) $month; $day = (int) $day; $eventsInDay = array(); foreach ($events as $event) { if ((date('Y', $event[ 'start' ]) == $year) && (date('m', $event[ 'start' ]) == $month) && (date('d', $event[ 'start' ]) == $day)) { $eventsInDay[] = $event; } } return $eventsInDay; } public static function getEvent($events, $startUnix) { $startUnix = (int) $startUnix; foreach ($events as $event) { if ($event[ 'start' ] == $startUnix) { return $event; } } } public static function getChartData($app) { $dowMap = array('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'); $chartDataQuery = 'SELECT ROUND( AVG( people ) ) FROM state WHERE datetime >= curdate() - INTERVAL 312 Hour AND WEEKDAY( datetime ) = ? AND HOUR ( datetime ) = ?'; for ($dow = 0; $dow < 7; ++$dow) { $chartDataByDay[ 'name' ] = $dowMap[ $dow ]; for ($hod = 0; $hod < 24; ++$hod) { $chartDataByDay[ 'data' ][ $hod % 24 ] = $app[ 'db' ]->fetchColumn( $chartDataQuery, array( $dow, $hod, ) ); } $chart[ $dow ] = $chartDataByDay; } return $chart; } }