/** * @Route("/checker") * @Template() */ public function checkerAction(Request $request) { $checks = false; $selectForm = false; if ($this->get('mediaconch_user.quotas')->hasUploadsRights()) { $formUpload = $this->createForm('checkerUpload'); $formUpload->handleRequest($request); if ($formUpload->isValid()) { $selectForm = 'upload'; $data = $formUpload->getData(); if ($data['file']->isValid()) { if ($data['policyDisplay'] instanceof \AppBundle\Entity\XslPolicyDisplayFile) { $helper = $this->container->get('vich_uploader.storage'); $policyDisplayFile = $helper->resolvePath($data['policyDisplay'], 'policyDisplayFile'); } else { $policyDisplayFile = null; } $checker = new Checker($data['file']); if ($data['schematron'] instanceof \Symfony\Component\HttpFoundation\File\UploadedFile && $data['schematron']->isValid()) { $checker->setPolicyItem($data['schematron']); } else { if ($data['policy'] instanceof \AppBundle\Entity\XslPolicyFile) { $helper = $this->container->get('vich_uploader.storage'); $policyFile = $helper->resolvePath($data['policy'], 'policyFile'); $checker->setPolicyItem($policyFile); } else { $checker->disablePolicy(); } } $checker->setInfoFormat(array('xml', 'jstree'))->setPolicyDisplayFile($policyDisplayFile)->enableTrace()->setTraceFormat(array('xml', 'jstree'))->run(); $checks = array(0 => $checker); $this->get('mediaconch_user.quotas')->hitUrls(); } } } if ($this->get('mediaconch_user.quotas')->hasUrlsRights()) { $formOnline = $this->createForm('checkerOnline'); $formOnline->handleRequest($request); if ($formOnline->isValid()) { $selectForm = 'online'; $data = $formOnline->getData(); if ($data['policyDisplay'] instanceof \AppBundle\Entity\XslPolicyDisplayFile) { $helper = $this->container->get('vich_uploader.storage'); $policyDisplayFile = $helper->resolvePath($data['policyDisplay'], 'policyDisplayFile'); } else { $policyDisplayFile = null; } $checker = new Checker(str_replace(' ', '%20', $data['file'])); if ($data['schematron'] instanceof \Symfony\Component\HttpFoundation\File\UploadedFile && $data['schematron']->isValid()) { $checker->setPolicyItem($data['schematron']); } else { if ($data['policy'] instanceof \AppBundle\Entity\XslPolicyFile) { $helper = $this->container->get('vich_uploader.storage'); $policyFile = $helper->resolvePath($data['policy'], 'policyFile'); $checker->setPolicyItem($policyFile); } else { $checker->disablePolicy(); } } $checker->setInfoFormat(array('xml', 'jstree'))->setPolicyDisplayFile($policyDisplayFile)->enableTrace()->setTraceFormat(array('xml', 'jstree'))->run(); $checks = array(0 => $checker); $this->get('mediaconch_user.quotas')->hitUrls(); } } if (null != $this->container->getParameter('mco_check_folder') && file_exists($this->container->getParameter('mco_check_folder'))) { $repositoryEnable = true; if ($this->get('mediaconch_user.quotas')->hasPolicyChecksRights()) { $formRepository = $this->createForm('checkerRepository'); $formRepository->handleRequest($request); if ($formRepository->isValid()) { $selectForm = 'repository'; $data = $formRepository->getData(); $checks = array(); if ($data['policyDisplay'] instanceof \AppBundle\Entity\XslPolicyDisplayFile) { $helper = $this->container->get('vich_uploader.storage'); $policyDisplayFile = $helper->resolvePath($data['policyDisplay'], 'policyDisplayFile'); } else { $policyDisplayFile = null; } $finder = new Finder(); $finder->files()->in($this->container->getParameter('mco_check_folder')); foreach ($finder as $file) { $checker = new Checker($file->getPathname()); if ($data['schematron'] instanceof \Symfony\Component\HttpFoundation\File\UploadedFile && $data['schematron']->isValid()) { $checker->setPolicyItem($data['schematron']); } else { if ($data['policy'] instanceof \AppBundle\Entity\XslPolicyFile) { $helper = $this->container->get('vich_uploader.storage'); $policyFile = $helper->resolvePath($data['policy'], 'policyFile'); $checker->setPolicyItem($policyFile); } else { $checker->disablePolicy(); } } $checker->setPolicyDisplayFile($policyDisplayFile)->disableInfo()->run(); $checks[] = $checker; } $this->get('mediaconch_user.quotas')->hitPolicyChecks(count($finder)); } } } else { $repositoryEnable = false; } return array('formUpload' => isset($formUpload) ? $formUpload->createView() : false, 'formOnline' => isset($formOnline) ? $formOnline->createView() : false, 'formRepository' => isset($formRepository) ? $formRepository->createView() : false, 'repositoryEnable' => $repositoryEnable, 'checks' => $checks, 'selectForm' => $selectForm); }