Utils/WikiTagUtils.php
changeset 32 38dcd2db04e4
parent 22 99c15cfe420b
child 42 0e57c730bb18
--- a/Utils/WikiTagUtils.php	Wed Nov 09 17:33:26 2011 +0100
+++ b/Utils/WikiTagUtils.php	Thu Nov 10 12:40:22 2011 +0100
@@ -38,6 +38,7 @@
                 }
             }
         }
+        $wp_request_done = false;
         if($tag==null){
             $tag = new Tag();
             $tag->setLabel($tag_label_normalized);
@@ -47,11 +48,35 @@
         }
         else{
             $created = false;
+            $match_exists = false;
+            // Even if a tag with the normalised label exists, IF this tag is not wikipedia semantised,
+            // we search if a wikipedia semantised version exists in the base
+            foreach ($tags as $t){
+                if($t->getUrlStatus()==Tag::$TAG_URL_STATUS_DICT['match']){
+                    $tag = $t;
+                    $match_exists = true;
+                    break;
+                }
+            }
+            if($match_exists==false){
+                $wp_response = WikiTagUtils::getWikipediaInfo($tag_label_normalized);
+                $status = $wp_response['status'];
+                if($status==Tag::$TAG_URL_STATUS_DICT['match']){
+                    $tag = new Tag();
+                    $tag->setLabel($tag_label_normalized);
+                    $tag->setOriginalLabel($tag_label);
+                    $tag->setNormalizedLabel($tag_label_normalized);
+                    $created = true;
+                    $wp_request_done = true;
+                }
+            }
         }
         
         // We request Wikipedia if the tag is created
         if($created==true){
-            $wp_response = WikiTagUtils::getWikipediaInfo($tag_label_normalized);
+            if($wp_request_done==false){
+                $wp_response = WikiTagUtils::getWikipediaInfo($tag_label_normalized);
+            }
             $new_label = $wp_response['new_label'];
             $status = $wp_response['status'];
             $url = $wp_response['wikipedia_url'];
@@ -83,7 +108,6 @@
         else{
             $wikipedia_revision_id = null;
         }
-        //return "coucou4";
         
         return array($tag, $wikipedia_revision_id, $created);//, $wpReponse);
     }