vendor/bitbag/wishlist-plugin/src/Form/Extension/AddToCartTypeExtension.php line 43

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file was created by developers working at BitBag
  4.  * Do you need more information about us and what we do? Visit our https://bitbag.io website!
  5.  * We are hiring developers from all over the world. Join us and start your new, exciting adventure and become part of us: https://bitbag.io/career
  6. */
  7. declare(strict_types=1);
  8. namespace BitBag\SyliusWishlistPlugin\Form\Extension;
  9. use BitBag\SyliusWishlistPlugin\Entity\Wishlist;
  10. use BitBag\SyliusWishlistPlugin\Resolver\WishlistsResolverInterface;
  11. use Sylius\Bundle\CoreBundle\Form\Type\Order\AddToCartType;
  12. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  13. use Symfony\Component\Form\AbstractTypeExtension;
  14. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  15. use Symfony\Component\Form\FormBuilderInterface;
  16. use Symfony\Component\OptionsResolver\OptionsResolver;
  17. final class AddToCartTypeExtension extends AbstractTypeExtension
  18. {
  19.     private WishlistsResolverInterface $wishlistsResolver;
  20.     public function __construct(WishlistsResolverInterface $wishlistsResolver)
  21.     {
  22.         $this->wishlistsResolver $wishlistsResolver;
  23.     }
  24.     public function buildForm(FormBuilderInterface $builder, array $options): void
  25.     {
  26.         if (!$options['is_wishlist']) {
  27.             $builder
  28.                 ->add('addToWishlist'SubmitType::class, [
  29.                     'label' => 'bitbag_sylius_wishlist_plugin.ui.add_to_wishlist',
  30.                     'attr' => [
  31.                         'class' => 'bitbag-add-variant-to-wishlist ui icon labeled button',
  32.                     ],
  33.                 ])
  34.                 ->add('wishlists'EntityType::class, [
  35.                     'class' => Wishlist::class,
  36.                     'choices' => $this->wishlistsResolver->resolveAndCreate(),
  37.                     'choice_label' => 'name',
  38.                     'mapped' => false,
  39.                 ])
  40.             ;
  41.         }
  42.     }
  43.     public function configureOptions(OptionsResolver $resolver): void
  44.     {
  45.         $resolver
  46.             ->setDefault('is_wishlist'false)
  47.             ->setAllowedTypes('is_wishlist''bool')
  48.         ;
  49.     }
  50.     public function getExtendedType(): string
  51.     {
  52.         return AddToCartType::class;
  53.     }
  54.     public static function getExtendedTypes(): array
  55.     {
  56.         return [AddToCartType::class];
  57.     }
  58. }