<?php
namespace App\Form;
use App\Entity\Localidad;
use Doctrine\ORM\EntityRepository;
use Karser\Recaptcha3Bundle\Form\Recaptcha3Type;
use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class FrontFormBusquedaCursoType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('idProveedor', HiddenType::class, [
'data' => '',
])
->add('nombre', TextType::class, [
'label' => 'Nombre',
'attr' => [
'class' => 'manual-placeholder',
'placeholder' => 'Nombre curso...'
],
'required' => false
])
// ->add('ordenarPor', ChoiceType::class, [
// 'placeholder' => false,
// 'label' => false,
// 'attr' => [
// 'class' => 'manual-placeholder bsselectpicker',
// ],
// 'required' => false,
// 'choices' => [
// 'Valoración más alta' => 'valoracion',
// 'Alfabético ascendente' => 'asc',
// 'Alfabético descendente' => 'desc',
// 'Más reciente' => 'masReciente',
// 'Menos reciente' => 'menosReciente'
// ],
// 'data' => 'masReciente'
// ])
->add('localidad', EntityType::class, [
'placeholder' => 'Localidad',
'label' => 'Localidad',
'attr' => [
'class' => 'manual-placeholder bsselectpicker'
],
'required' => false,
'choice_label' => 'nombre',
'class' => Localidad::class,
'choice_attr' => fn(Localidad $object): array => [
'data-slug' => $object->getSlug(),
],
'query_builder' => fn(EntityRepository $repository) => $repository
->createQueryBuilder('l')
->andWhere('l.visible = true AND l.borrado = false')
->orderBy('l.nombre', 'ASC')
])
->add('captcha', Recaptcha3Type::class, [
'constraints' => [
new Recaptcha3()
],
'locale' => 'es'
])
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'translation_domain' => 'app',
'data_class' => null,
'globales' => null
]);
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix(): string
{
return 'front_busqueda_curso';
}
}