<?php
namespace App\Form\Type\Frontend;
use App\Entity\Vehicle;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class PageLimitType extends AbstractType
{
public function __construct(private readonly SessionInterface $session)
{
}
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$data = $this->session->get('max_per_page', Vehicle::PAGER_MAX);
$choices = [
'frontend.vehicle.list.items_per_page_1' => 24,
'frontend.vehicle.list.items_per_page_2' => 48,
];
if ($options['show_96_choice']) {
$choices['frontend.vehicle.list.items_per_page_3'] = 96;
}
$builder
->add('nbItems', ChoiceType::class, [
'choices' => $choices,
'expanded' => false,
'multiple' => false,
'placeholder' => false,
'required' => false,
'label' => false,
'data' => $data,
'attr' => [
'onchange' => 'this.form.submit()',
],
]);
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'show_96_choice' => true,
]);
}
public function getBlockPrefix(): string
{
return 'vpauto_page_limit';
}
}