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