Entity/TagRepository.php
changeset 34 21fab44f46fe
parent 2 13f43f53d0ba
child 42 0e57c730bb18
equal deleted inserted replaced
30:d2fba1e3b94b 34:21fab44f46fe
    10  * This class was generated by the Doctrine ORM. Add your own custom
    10  * This class was generated by the Doctrine ORM. Add your own custom
    11  * repository methods below.
    11  * repository methods below.
    12  */
    12  */
    13 class TagRepository extends EntityRepository
    13 class TagRepository extends EntityRepository
    14 {
    14 {
       
    15     public function getTagCloud($max_tags)
       
    16     {
       
    17         $qb = $this->getEntityManager()->createQueryBuilder();
       
    18         $qb->select('t.id', 't.label', 'COUNT( dt.id ) AS nb_docs');
       
    19         $qb->from('WikiTagBundle:Tag','t');
       
    20         $qb->leftJoin('t.documents', 'dt', 'WITH', 't = dt.tag');
       
    21         $qb->addGroupBy('t.id');
       
    22         $qb->addOrderBy('nb_docs','DESC');
       
    23         $qb->setMaxResults($max_tags);
       
    24         
       
    25         $query = $qb->getQuery();
       
    26         return $query->getResult();
       
    27     }
       
    28     
       
    29     public function getCompletion($seed)
       
    30     {
       
    31         $qb = $this->getEntityManager()->createQueryBuilder();
       
    32         $qb->select('t.label');
       
    33         $qb->from('WikiTagBundle:Tag','t');
       
    34         $qb->where($qb->expr()->orx(
       
    35             $qb->expr()->like('t.label',$qb->expr()->literal("%".addcslashes(mysql_real_escape_string($seed),"%_"))),
       
    36             $qb->expr()->like('t.label',$qb->expr()->literal("% ".addcslashes(mysql_real_escape_string($seed),"%_")."%"))
       
    37         ));
       
    38         
       
    39         $query = $qb->getQuery();
       
    40         
       
    41         return $query->getResult();
       
    42         
       
    43     }
    15 }
    44 }