src/Controller/Admin/ProductAdminController.php line 42

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Entity\Magazine\Magazine;
  4. use App\Entity\Magazine\MagazinePage;
  5. use Doctrine\ORM\EntityManager;
  6. use http\Client\Request;
  7. use Sonata\AdminBundle\Controller\CRUDController as Controller;
  8. use Symfony\Component\Finder\Finder;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. class ProductAdminController extends Controller
  13. {
  14.     public function mpickerAction(): JsonResponse
  15.     {
  16.         $request $this->getRequest();
  17.         /** @var EntityManager $em */
  18.         $em $this->get('doctrine.orm.entity_manager');
  19.         $magazine_id $request->get('magazine');
  20.         $magazine $em->getRepository(Magazine::class)->find($magazine_id);
  21.         if(!$magazine) {
  22.             return $this->json(['message' => 'Magazine not found'], Response::HTTP_NOT_FOUND);
  23.         }
  24.         $pages $magazine->getPages();
  25.         $pageArr = [];
  26.         foreach ($pages as $i => $page) {
  27.             $pageArr[] = ['text' => 'Page ' $page->getPosition(), 'value' => strval($page->getPosition())];
  28.         }
  29.         return new JsonResponse($pageArr);
  30.     }
  31.     public function ppickerAction(): Response
  32.     {
  33.         $request $this->getRequest();
  34.         /** @var EntityManager $em */
  35.         $em $this->get('doctrine.orm.entity_manager');
  36.         $magazine_id $request->get('magazine');
  37.         $page_position $request->get('page');
  38.         $magazine $em->getRepository(Magazine::class)->find($magazine_id);
  39.         if(!$magazine) {
  40.             return $this->json(['message' => 'Magazine not found'], Response::HTTP_NOT_FOUND);
  41.         }
  42.         $imgArr = [];
  43.         $slug 'src-' $magazine->getSlug();
  44.         $publicMagDir $this->getParameter('kernel.project_dir') . '/public/magazine/';
  45.         $imageDir '/magazine/' $slug '/assets/images/';
  46.         $imgfinder = new Finder();
  47.         $imgfinder->files()->name('/item.*pg' $page_position '\.png/')->name('/item.*pg' $page_position '\.jpg/')->in($publicMagDir pathinfo($slugPATHINFO_FILENAME) . '/assets/images/');
  48.         if ($imgfinder->hasResults()) {
  49.             foreach ($imgfinder as $img) {
  50.                 $imgArr[] = ['text' => $imageDir $img->getFilename(), 'value' => $imageDir $img->getFilename()];
  51.             }
  52.         }
  53.         return new JsonResponse($imgArr);
  54.     }
  55. }