コード例 #1
0
 /**
  * Generate a document id
  *
  * @param \ServerGrove\KbBundle\Document\ArticleFile $document
  * @param object                                     $parent
  *
  * @return string
  */
 public function generateId($document, $parent = null)
 {
     /** @var $session \PHPCR\SessionInterface */
     $session = $this->getDocumentManager()->getPhpcrSession();
     $root = $session->getNode('/');
     if (!$root->hasNode('articles-files')) {
         $root->addNode('articles-files');
     }
     return '/articles-files/' . Sluggable::urlize($document->getPath());
 }
コード例 #2
0
 /**
  * @Route("/upload", name="sgkb_admin_articles_files_upload")
  * @method("post")
  * @return array
  */
 public function uploadAction()
 {
     $form = $this->createForm(new ArticleFileType(), $document = new ArticleFile());
     $status = 400;
     $refresh = false;
     $form->bind($this->getRequest());
     if ($form->isValid()) {
         /** @var $data \Symfony\Component\HttpFoundation\File\UploadedFile */
         $data = $form->get('path')->getData();
         $file = $data->move($this->get('kernel')->getRootDir() . '/../web/uploads', date('YmdHi-') . $data->getClientOriginalName());
         $document->setPath('/uploads/' . $file->getBasename());
         $dm = $this->getDocumentManager();
         $dm->persist($document);
         $dm->flush();
         $status = 200;
         $form = $this->createForm(new ArticleFileType(), new ArticleFile());
         $refresh = true;
     }
     return $this->render('ServerGroveKbBundle:Admin/ArticlesFiles:uploader.html.twig', array('form' => $form->createView(), 'refresh' => $refresh), new Response('', $status));
 }