コード例 #1
0
 /**
  * @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);
 }