pdo = $pdo; } public function index(Request $request, Response $response, $args) { $queryParams = $request->getQueryParams(); // Get pagination parameters $page = max(1, (int)($queryParams['page'] ?? 1)); $perPage = max(12, min(100, (int)($queryParams['per_page'] ?? 24))); // Get search parameters $search = trim($queryParams['search'] ?? ''); // Get view mode $viewMode = $queryParams['view'] ?? 'grid'; // grid, list, covers // For now, return empty arrays since Music isn't implemented yet $music = []; $totalCount = 0; // Calculate pagination info $totalPages = 0; $hasNextPage = false; $hasPrevPage = false; return $this->view->render($response, 'music/index.twig', [ 'title' => 'Music', 'music' => $music, 'pagination' => [ 'current_page' => $page, 'per_page' => $perPage, 'total_pages' => $totalPages, 'total_items' => $totalCount, 'has_next' => $hasNextPage, 'has_prev' => $hasPrevPage, 'next_page' => $page + 1, 'prev_page' => $page - 1 ], 'search' => $search, 'view_mode' => $viewMode, 'view_modes' => ['grid', 'list', 'covers'] ]); } public function show(Request $request, Response $response, $args) { $musicId = (int) $args['id']; // For now, return a placeholder since Music isn't implemented yet return $this->view->render($response, 'music/show.twig', [ 'title' => 'Music Details', 'music' => ['id' => $musicId, 'title' => 'Coming Soon'], 'message' => 'Music details page is not yet implemented.' ]); } }