mirror of
https://github.com/ceratic/MediaCollectorLibary.git
synced 2026-05-13 23:56:46 +02:00
game filter
This commit is contained in:
@@ -189,6 +189,14 @@ class GameController extends Controller
|
||||
}
|
||||
$platforms = array_filter($platforms);
|
||||
|
||||
$features = $queryParams['features'] ?? [];
|
||||
if (!is_array($features)) {
|
||||
$features = [$features];
|
||||
}
|
||||
$features = array_filter($features);
|
||||
|
||||
$playtimeFilter = $queryParams['playtime'] ?? '';
|
||||
|
||||
// Get view mode
|
||||
$viewMode = $queryParams['view'] ?? 'grid'; // grid, list, covers
|
||||
|
||||
@@ -196,14 +204,15 @@ class GameController extends Controller
|
||||
$sort = $queryParams['sort'] ?? 'title_asc';
|
||||
|
||||
// Get games with pagination, filters, and sorting
|
||||
$games = Game::getGroupedGamesWithPagination($this->pdo, $page, $perPage, $search, $genres, $platforms, $sort);
|
||||
$games = Game::getGroupedGamesWithPagination($this->pdo, $page, $perPage, $search, $genres, $platforms, $features, $playtimeFilter, $sort);
|
||||
|
||||
// Get total count for pagination
|
||||
$totalCount = Game::getTotalCount($this->pdo, $search, $genres, $platforms);
|
||||
$totalCount = Game::getTotalCount($this->pdo, $search, $genres, $platforms, $features, $playtimeFilter);
|
||||
|
||||
// Get available filter options
|
||||
$availableGenres = Game::getAvailableGenres($this->pdo);
|
||||
$availablePlatforms = Game::getAvailablePlatforms($this->pdo);
|
||||
$availableFeatures = Game::getAvailableFeatures($this->pdo);
|
||||
|
||||
// Calculate pagination info
|
||||
$totalPages = ceil($totalCount / $perPage);
|
||||
@@ -228,11 +237,14 @@ class GameController extends Controller
|
||||
'view_modes' => ['grid', 'list', 'covers'],
|
||||
'filters' => [
|
||||
'genres' => $genres,
|
||||
'platforms' => $platforms
|
||||
'platforms' => $platforms,
|
||||
'features' => $features,
|
||||
'playtime' => $playtimeFilter
|
||||
],
|
||||
'available_filters' => [
|
||||
'genres' => $availableGenres,
|
||||
'platforms' => $availablePlatforms
|
||||
'platforms' => $availablePlatforms,
|
||||
'features' => $availableFeatures
|
||||
],
|
||||
'sort' => $sort,
|
||||
'sort_options' => [
|
||||
|
||||
Reference in New Issue
Block a user