src/Company/BaseBundle/Controller/IndexController.php
author ymh <ymh.work@gmail.com>
Mon, 17 Oct 2011 18:42:56 +0200
changeset 10 6e8bd1081c8a
child 13 ed54c98a7fc8
permissions -rw-r--r--
back to normal
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
namespace Company\BaseBundle\Controller;
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
use Company\BaseBundle\Entity\Document;
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
use IRI\Bundle\WikiTagBundle\Entity\Document as BaseDocument;
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
use Symfony\Component\HttpFoundation\Request;
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
class IndexController extends Controller
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
{
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    public function indexAction()
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    {
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
        return $this->render('CompanyBaseBundle:Index:index.html.twig');
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    }
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
    public function otherAction()
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    {
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
        return $this->render('CompanyBaseBundle:Index:other_page.html.twig');
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    }
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
    
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    public function addDocumentAction(Request $request)
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    {
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        $doc = new Document();
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
        
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        $form = $this->createFormBuilder($doc)
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
        ->add('title', 'text')
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
        ->add('description', 'textarea', array("required" => false,))
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
        ->getForm();
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        if ($request->getMethod() == 'POST') {
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
            $form->bindRequest($request);
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
            if ($form->isValid()) {
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
                $doc = $form->getData();
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
                $em = $this->getDoctrine()->getEntityManager();
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
                $em->persist($doc);
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
                $em->flush();
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
                return $this->redirect($this->generateUrl('all_documents'));
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
            }
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        }
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        else{
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
            return $this->render('CompanyBaseBundle:Index:add_document.html.twig', array('form' => $form->createView()));
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
        }
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
    }
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
    
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
    
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
    public function allDocumentsAction()
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
    {
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
        $rep_docs = $this->getDoctrine()->getRepository('CompanyBaseBundle:Document');
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
	    $documents = $rep_docs->findAll();
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
	    
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
        return $this->render('CompanyBaseBundle:Index:all_documents.html.twig', array('documents' => $documents));
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
    }
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
    
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
    
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
    public function allDocumentsPartialAction($param="")
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
    {
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
        $rep_docs = $this->getDoctrine()->getRepository('CompanyBaseBundle:Document');
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
	    $documents = $rep_docs->findAll();
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
	    
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
        return $this->render('CompanyBaseBundle:Index:all_documents_partial.html.twig', array('documents' => $documents, 'param' => $param));
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
    }
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
    
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
    /**
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
     * Template with tag management
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
     *
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
     */
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
    public function documentWithTagAction($idDoc)
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
    {
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
        $rep_docs = $this->getDoctrine()->getRepository('CompanyBaseBundle:Document');
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
    	$doc = $rep_docs->findOneById($idDoc);
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
        return $this->render('CompanyBaseBundle:Index:tag_embedder.html.twig', array('doc' => $doc));
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
    }
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
    
6e8bd1081c8a back to normal
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
}