2023-05-19 */ require_once(__DIR__.'/ui.php'); use Propel\Runtime\ActiveQuery\Criteria; $category = str_replace('-and-', ' & ', Util::ValidateArrayKey($_GET, 'category', ['Family', 'Sports', 'Music', 'Miscellaneous', 'Arts-and-Theatre'], '')); $city = str_replace('-', ' ', trim($_GET['city'] ?? '')); $state = str_replace('-', ' ', trim($_GET['state'] ?? '')); // family & sports categories can be specified without city/state. // all others need at least category & city. if (!$category) { Util::Redirect('/'); } if (!in_array($category, ['Family', 'Sports']) && !$city && !$state) { Util::Redirect('/'); } $eventQ = EventQuery::create() ->useCategoryEventRelationshipQuery() ->useCategoryQuery() ->filterByCategoryName($category) ->endUse() ->endUse() ->filterByEventStartTime(Util::UTCDatetimeToUTCTimestamp('today midnight'), Criteria::GREATER_EQUAL) ->orderByEventStartTimeLocal() ->limit(100); if ($city) { $eventQ->useVenueQuery() ->filterByVenueCity($city) ->endUse(); } if ($state) { $eventQ->useVenueQuery() ->filterByVenueState($state) ->endUse(); } $events = $eventQ->find(); $template->assign([ 'events' => $events, 'category' => $category, 'city' => $city, 'state' => $state ]); $template->display('category-city-state.tpl');