Skip to content

Commit

Permalink
Fix pagination on extension page, fixes #1472, fixes #1469
Browse files Browse the repository at this point in the history
Seldaek committed Oct 28, 2024
1 parent 19e598e commit 228366d
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions src/Controller/ExtensionController.php
Original file line number Diff line number Diff line change
@@ -16,6 +16,7 @@
use App\Model\DownloadManager;
use App\Model\FavoriteManager;
use Pagerfanta\Adapter\FixedAdapter;
use Pagerfanta\Doctrine\ORM\QueryAdapter;
use Pagerfanta\Pagerfanta;
use Predis\Client as RedisClient;
use Symfony\Component\HttpFoundation\JsonResponse;
@@ -30,16 +31,17 @@ class ExtensionController extends Controller
#[Route(path: '/extensions.{_format}', name: 'browse_extensions', defaults: ['_format' => 'html'])]
public function extensionsAction(Request $req, RedisClient $redis, FavoriteManager $favMgr, DownloadManager $dlMgr): Response
{
$packages = $this->getEM()->getRepository(Package::class)
$packageQuery = $this->getEM()
->getRepository(Package::class)
->createQueryBuilder('p')
->where("(p.type = 'php-ext' OR p.type = 'php-ext-zend')")
->andWhere('p.frozen IS NULL')
->orderBy('p.name')
->getQuery()
->enableResultCache(900)
->getResult();
->orderBy('p.name');

$packages = new Pagerfanta(new FixedAdapter(count($packages), $packages));
$packages = new Pagerfanta(new QueryAdapter($packageQuery, false));
$packages->setNormalizeOutOfRangePages(true);
$packages->setMaxPerPage(15);
$packages->setCurrentPage(max(1, $req->query->getInt('page', 1)));

$data = [
'packages' => $packages,

0 comments on commit 228366d

Please sign in to comment.