basic filter D:

This commit is contained in:
Lars Behrends
2025-10-24 17:12:36 +02:00
parent 218d0c28c0
commit e78c073f21
13 changed files with 1811 additions and 1120 deletions

View File

@@ -28,11 +28,24 @@ class AdultController extends Controller
// Get search parameters
$search = trim($queryParams['search'] ?? '');
// Get filter parameters
$genres = $queryParams['genres'] ?? [];
if (!is_array($genres)) {
$genres = [$genres];
}
$genres = array_filter($genres);
$directors = $queryParams['directors'] ?? [];
if (!is_array($directors)) {
$directors = [$directors];
}
$directors = array_filter($directors);
// Get view mode
$viewMode = $queryParams['view'] ?? 'grid'; // grid, list, covers
// Get adult videos with pagination and search
$adultVideos = AdultVideo::getAllWithPagination($this->pdo, $page, $perPage, $search);
// Get adult videos with pagination and filters
$adultVideos = AdultVideo::getAllWithPagination($this->pdo, $page, $perPage, $search, $genres, $directors);
// Process metadata to extract local image paths for template compatibility
foreach ($adultVideos as &$video) {
@@ -54,7 +67,11 @@ class AdultController extends Controller
}
// Get total count for pagination
$totalCount = AdultVideo::getTotalCount($this->pdo, $search);
$totalCount = AdultVideo::getTotalCount($this->pdo, $search, $genres, $directors);
// Get available filter options
$availableGenres = AdultVideo::getAvailableGenres($this->pdo);
$availableDirectors = AdultVideo::getAvailableDirectors($this->pdo);
// Calculate pagination info
$totalPages = ceil($totalCount / $perPage);
@@ -76,7 +93,15 @@ class AdultController extends Controller
],
'search' => $search,
'view_mode' => $viewMode,
'view_modes' => ['grid', 'list', 'covers']
'view_modes' => ['grid', 'list', 'covers'],
'filters' => [
'genres' => $genres,
'directors' => $directors
],
'available_filters' => [
'genres' => $availableGenres,
'directors' => $availableDirectors
]
]);
}

View File

@@ -28,14 +28,31 @@ class GameController extends Controller
// Get search parameters
$search = trim($queryParams['search'] ?? '');
// Get filter parameters
$genres = $queryParams['genres'] ?? [];
if (!is_array($genres)) {
$genres = [$genres];
}
$genres = array_filter($genres);
$platforms = $queryParams['platforms'] ?? [];
if (!is_array($platforms)) {
$platforms = [$platforms];
}
$platforms = array_filter($platforms);
// Get view mode
$viewMode = $queryParams['view'] ?? 'grid'; // grid, list, covers
// Get games with pagination and search
$games = Game::getGroupedGamesWithPagination($this->pdo, $page, $perPage, $search);
// Get games with pagination and filters
$games = Game::getGroupedGamesWithPagination($this->pdo, $page, $perPage, $search, $genres, $platforms);
// Get total count for pagination
$totalCount = Game::getTotalCount($this->pdo, $search);
$totalCount = Game::getTotalCount($this->pdo, $search, $genres, $platforms);
// Get available filter options
$availableGenres = Game::getAvailableGenres($this->pdo);
$availablePlatforms = Game::getAvailablePlatforms($this->pdo);
// Calculate pagination info
$totalPages = ceil($totalCount / $perPage);
@@ -57,7 +74,15 @@ class GameController extends Controller
],
'search' => $search,
'view_mode' => $viewMode,
'view_modes' => ['grid', 'list', 'covers']
'view_modes' => ['grid', 'list', 'covers'],
'filters' => [
'genres' => $genres,
'platforms' => $platforms
],
'available_filters' => [
'genres' => $availableGenres,
'platforms' => $availablePlatforms
]
]);
}

View File

@@ -28,14 +28,31 @@ class MovieController extends Controller
// Get search parameters
$search = trim($queryParams['search'] ?? '');
// Get filter parameters
$genres = $queryParams['genres'] ?? [];
if (!is_array($genres)) {
$genres = [$genres];
}
$genres = array_filter($genres);
$directors = $queryParams['directors'] ?? [];
if (!is_array($directors)) {
$directors = [$directors];
}
$directors = array_filter($directors);
// Get view mode
$viewMode = $queryParams['view'] ?? 'grid'; // grid, list, covers
// Get movies with pagination and search
$movies = Movie::getAllWithPagination($this->pdo, $page, $perPage, $search);
// Get movies with pagination and filters
$movies = Movie::getAllWithPagination($this->pdo, $page, $perPage, $search, $genres, $directors);
// Get total count for pagination
$totalCount = Movie::getTotalCount($this->pdo, $search);
$totalCount = Movie::getTotalCount($this->pdo, $search, $genres, $directors);
// Get available filter options
$availableGenres = Movie::getAvailableGenres($this->pdo);
$availableDirectors = Movie::getAvailableDirectors($this->pdo);
// Calculate pagination info
$totalPages = ceil($totalCount / $perPage);
@@ -57,7 +74,15 @@ class MovieController extends Controller
],
'search' => $search,
'view_mode' => $viewMode,
'view_modes' => ['grid', 'list', 'covers']
'view_modes' => ['grid', 'list', 'covers'],
'filters' => [
'genres' => $genres,
'directors' => $directors
],
'available_filters' => [
'genres' => $availableGenres,
'directors' => $availableDirectors
]
]);
}

View File

@@ -28,24 +28,37 @@ class TvShowController extends Controller
// Get search parameters
$search = trim($queryParams['search'] ?? '');
// Get filter parameters
$genres = $queryParams['genres'] ?? [];
if (!is_array($genres)) {
$genres = [$genres];
}
$genres = array_filter($genres);
$years = $queryParams['years'] ?? [];
if (!is_array($years)) {
$years = [$years];
}
$years = array_filter($years);
// Get view mode
$viewMode = $queryParams['view'] ?? 'grid'; // grid, list, covers
// Get TV shows with pagination and search
$tvshows = TvShow::getAllWithPagination($this->pdo, $page, $perPage, $search);
// Get TV shows with pagination and filters
$tvshows = TvShow::getAllWithPagination($this->pdo, $page, $perPage, $search, $genres, $years);
// Get total count for pagination
$totalCount = TvShow::getTotalCount($this->pdo, $search);
$totalCount = TvShow::getTotalCount($this->pdo, $search, $genres, $years);
// Get available filter options
$availableGenres = TvShow::getAvailableGenres($this->pdo);
$availableYears = TvShow::getAvailableYears($this->pdo);
// Calculate pagination info
$totalPages = ceil($totalCount / $perPage);
$hasNextPage = $page < $totalPages;
$hasPrevPage = $page > 1;
/*
echo '<pre>';
print_r($tvshows);
die();
*/
return $this->view->render($response, 'tvshows/index.twig', [
'title' => 'TV Shows',
'tvshows' => $tvshows,
@@ -61,7 +74,15 @@ class TvShowController extends Controller
],
'search' => $search,
'view_mode' => $viewMode,
'view_modes' => ['grid', 'list', 'covers']
'view_modes' => ['grid', 'list', 'covers'],
'filters' => [
'genres' => $genres,
'years' => $years
],
'available_filters' => [
'genres' => $availableGenres,
'years' => $availableYears
]
]);
}