|
@@ -250,11 +250,15 @@ class WebController extends Controller
|
|
|
$paginator = new Pagerfanta(new SolariumAdapter($solarium, $select));
|
|
|
|
|
|
$perPage = $req->query->getInt('per_page', 15);
|
|
|
- if($perPage <= 0 || $perPage > 100) {
|
|
|
- return new JsonResponse(array(
|
|
|
- 'status' => 'error',
|
|
|
- 'message' => 'The optional packages per_page parameter must be an integer between 1 and 100 (default: 15)',
|
|
|
- ), 400);
|
|
|
+ if ($perPage <= 0 || $perPage > 100) {
|
|
|
+ if ($req->getRequestFormat() === 'json') {
|
|
|
+ return new JsonResponse(array(
|
|
|
+ 'status' => 'error',
|
|
|
+ 'message' => 'The optional packages per_page parameter must be an integer between 1 and 100 (default: 15)',
|
|
|
+ ), 400);
|
|
|
+ }
|
|
|
+
|
|
|
+ $perPage = max(0, min(100, $perPage));
|
|
|
}
|
|
|
$paginator->setMaxPerPage($perPage);
|
|
|
|
|
@@ -299,7 +303,7 @@ class WebController extends Controller
|
|
|
if ($typeFilter) {
|
|
|
$params['type'] = $typeFilter;
|
|
|
}
|
|
|
- if($perPage !== 15) {
|
|
|
+ if ($perPage !== 15) {
|
|
|
$params['per_page'] = $perPage;
|
|
|
}
|
|
|
$result['next'] = $this->generateUrl('search', $params, true);
|