public static function GetCategoriesByUserIDAndYear($userID, $year, $requestingUserID = 0) { if ($year == 0) { return self::GetCategoriesByUserID($userID); } $userID = mysql_real_escape_string($userID); $year = mysql_real_escape_string($year); $requestingUserID = mysql_real_escape_string($requestingUserID); $now = mysql_real_escape_string(gmdate("Y-m-d H:i:s")); $sql = "SELECT * FROM `" . DB_CATEGORY_TABLE . "` " . "WHERE ID IN(SELECT DISTINCT(CategoryID) FROM `" . DB_MAP_TABLE . "` WHERE UserID='{$userID}' AND YEAR(Date)='{$year}' AND (ProtectedUntil IS NULL OR ProtectedUntil<='{$now}' OR UserID='{$requestingUserID}')) " . "ORDER BY ID"; $rs = self::Query($sql); $categories = array(); while ($r = mysql_fetch_assoc($rs)) { $category = new Category(); $category->LoadFromArray($r); $categories[$category->ID] = $category; } return $categories; }