Entity/TagRepository.php
changeset 65 ba6b8e38d90e
parent 63 774ba82dca59
child 67 989d9e117586
equal deleted inserted replaced
64:caeb4c8b5487 65:ba6b8e38d90e
    29     }
    29     }
    30     
    30     
    31     public function getCompletion($seed)
    31     public function getCompletion($seed)
    32     {
    32     {
    33         $qb = $this->getEntityManager()->createQueryBuilder();
    33         $qb = $this->getEntityManager()->createQueryBuilder();
    34         $qb->select('t.label');
    34         $qb->select('DISTINCT t.label');
    35         $qb->from('WikiTagBundle:Tag','t');
    35         $qb->from('WikiTagBundle:Tag','t');
    36         $qb->where($qb->expr()->orx(
    36         $qb->where($qb->expr()->orx(
    37             $qb->expr()->like('t.label',$qb->expr()->literal(addcslashes(mysql_real_escape_string($seed),"%_")."%")),
    37             $qb->expr()->like('t.label',$qb->expr()->literal(addcslashes(mysql_real_escape_string($seed),"%_")."%")),
    38             $qb->expr()->like('t.label',$qb->expr()->literal("%".addcslashes(mysql_real_escape_string($seed),"%_"))),
    38             $qb->expr()->like('t.label',$qb->expr()->literal("%".addcslashes(mysql_real_escape_string($seed),"%_"))),
    39             $qb->expr()->like('t.label',$qb->expr()->literal("% ".addcslashes(mysql_real_escape_string($seed),"%_")."%"))
    39             $qb->expr()->like('t.label',$qb->expr()->literal("% ".addcslashes(mysql_real_escape_string($seed),"%_")."%"))
    54     public function getOrCreateTag($tag_label)
    54     public function getOrCreateTag($tag_label)
    55     {
    55     {
    56         $tag_label_normalized = WikiTagUtils::normalizeTag($tag_label);
    56         $tag_label_normalized = WikiTagUtils::normalizeTag($tag_label);
    57         // We get the wikipedia references for the tag_label
    57         // We get the wikipedia references for the tag_label
    58         // We get or create the tag object
    58         // We get or create the tag object
       
    59         // TODO: search also in work unit ?
    59         $tags = $this->findBy(array('normalizedLabel' => $tag_label_normalized));
    60         $tags = $this->findBy(array('normalizedLabel' => $tag_label_normalized));
    60         $tag = null;
    61         $tag = null;
    61         foreach ($tags as $t) {
    62         foreach ($tags as $t) {
    62             if($tag==null
    63             if($tag==null
    63             || $tag->getUrlStatus() === Tag::$TAG_URL_STATUS_DICT['unsemantized']
    64             || $tag->getUrlStatus() === Tag::$TAG_URL_STATUS_DICT['unsemantized']
    90             $tag->setWikipediaInfo($wp_response);
    91             $tag->setWikipediaInfo($wp_response);
    91     
    92     
    92             // Save datas.
    93             // Save datas.
    93             $em = $this->getEntityManager();
    94             $em = $this->getEntityManager();
    94             $em->persist($tag);
    95             $em->persist($tag);
    95             $em->flush();
       
    96                 
    96                 
    97             $wikipedia_revision_id = $wp_response['revision_id'];
    97             $wikipedia_revision_id = $wp_response['revision_id'];
    98     
    98     
    99         }
    99         }
   100         elseif($tag!=null && $tag->getWikipediaPageId()!=null) {
   100         elseif($tag!=null && $tag->getWikipediaPageId()!=null) {