reenabled all info items, and show calculated skills
[brisk.git] / web / Obj / dbase_pgsql.phh
index 8463884..c01bac9 100644 (file)
@@ -856,28 +856,119 @@ INSERT INTO %smails (code, ucode, type, tstamp, subj, body_txt, body_htm, hash)
         return (TRUE);
     }
 
-    function usersnet_bycode($owner, $target)
+    function friendship_default()
+    {
+        return (array(usersnet_friend_getlabel(1) => "0",
+                      usersnet_friend_getlabel(2) => "0",
+                      usersnet_friend_getlabel(3) => "0",
+                      usersnet_friend_getlabel(4) => "0",
+                      usersnet_friend_getlabel(5) => "0"));
+    }
+
+    function usersnet_widefriend($owner, $target)
+    {
+        GLOBAL $G_dbpfx;
+
+        $widefriend = $this->friendship_default();
+
+        $wfri_sql = sprintf("SELECT * FROM %susersnet_widefriend WHERE owner = %d AND target = %d;",
+                            $G_dbpfx, $owner, $target);
+        if (($wfri_pg  = $this->query($wfri_sql)) == FALSE) {
+            return ($widefriend);
+        }
+
+        for ($i = 0 ; $i < pg_numrows($wfri_pg) ; $i++) {
+            $wfri_obj = pg_fetch_object($wfri_pg, $i);
+            $widefriend[usersnet_friend_getlabel(intval($wfri_obj->friend))] = $wfri_obj->count;
+        }
+
+        return ($widefriend);
+    }
+
+    function usersnet_wideskill($owner, $target)
+    {
+        GLOBAL $G_dbpfx;
+
+        $wideskill = "//";
+
+        $wskl_sql = sprintf("SELECT * FROM %susersnet_wideskill WHERE owner = %d AND target = %d;",
+                            $G_dbpfx, $owner, $target);
+        if (($wskl_pg  = $this->query($wskl_sql)) == FALSE) {
+            return ($wideskill);
+        }
+
+        if (pg_numrows($wskl_pg) > 0) {
+            $wskl_obj = pg_fetch_object($wskl_pg, 0);
+            // TODO: UNCOMMENT IF THE NETWORK WORKS VERY WELL
+            // if ($wskl_obj->count >= 3)
+            $wideskill = sprintf("%3.2f", $wskl_obj->skill);
+        }
+        return ($wideskill);
+    }
+
+    function usersnet_narrowfriend($owner, $target)
+    {
+        GLOBAL $G_dbpfx;
+
+        $narrowfriend = $this->friendship_default();
+
+        $nfri_sql = sprintf("SELECT * FROM %susersnet_narrowfriend WHERE owner = %d AND target = %d;",
+                            $G_dbpfx, $owner, $target);
+        if (($nfri_pg  = $this->query($nfri_sql)) == FALSE) {
+            return $narrowfriend;
+        }
+
+        for ($i = 0 ; $i < pg_numrows($nfri_pg) ; $i++) {
+            $nfri_obj = pg_fetch_object($nfri_pg, $i);
+            $narrowfriend[usersnet_friend_getlabel(intval($nfri_obj->friend))] = $nfri_obj->count;
+        }
+        return ($narrowfriend);
+    }
+
+    function usersnet_narrowskill($owner, $target)
+    {
+        GLOBAL $G_dbpfx;
+
+        $narrowskill = "//";
+
+        $nskl_sql = sprintf("SELECT * FROM %susersnet_narrowskill WHERE owner = %d AND target = %d;",
+                            $G_dbpfx, $owner, $target);
+        if (($nskl_pg = $this->query($nskl_sql)) == FALSE) {
+            return ($narrowskill);
+        }
+
+        if (pg_numrows($nskl_pg) > 0) {
+            $nskl_obj = pg_fetch_object($nskl_pg, 0);
+            // TODO: UNCOMMENT IF THE NETWORK WORKS VERY WELL
+            // if ($nskl_obj->count >= 3)
+            $narrowskill = sprintf("%3.2f", $nskl_obj->skill);
+        }
+        return ($narrowskill);
+    }
+
+    function usersnet_bycode($owner, $target, $widefriend, $narrowfriend)
     {
         GLOBAL $G_dbpfx;
         $ret = FALSE;
 
         $net_sql = sprintf("SELECT * FROM %susersnet WHERE owner = %d AND target = %d;",
-                            $G_dbpfx, $owner, $target);
-        if (($net_pg  = $this->query($net_sql)) == FALSE) {
+                           $G_dbpfx, $owner, $target);
+        if (($net_pg  = $this->query($net_sql)) == FALSE)
             return FALSE;
-        }
+
         if (pg_numrows($net_pg) != 1)
             return FALSE;
 
         $net_obj = pg_fetch_object($net_pg, 0);
 
-        return (UsersNetItem::UsersNetItemFromRecord($net_obj));
+        return (UsersNetItem::UsersNetItemFromRecord($net_obj, $widefriend, $narrowfriend));
     }
 
-    function usersnet_default($owner, $target)
+    function usersnet_default($owner, $target, $widefriend, $narrowfriend)
     {
-        return (UsersNetItem::UsersNetItemDefaults($owner, $target));
+        return (UsersNetItem::UsersNetItemDefaults($owner, $target, $widefriend, $narrowfriend));
     }
+
     function usersnet_save($owner_id, $json)
     {
         GLOBAL $G_dbpfx;
@@ -887,13 +978,15 @@ INSERT INTO %smails (code, ucode, type, tstamp, subj, body_txt, body_htm, hash)
         do {
             $friend = usersnet_friend_getid($json->friend);
 
+            $json->skill = intval($json->skill);
+            $json->trust = intval($json->trust);
+
             if ($json->skill < 1 || $json->skill > 5 ||
                 $json->trust < 1 || $json->trust > 5 ||
                 $friend == FALSE) {
                 $ret = 1;
                 break;
             }
-
             $this->transaction('BEGIN');
             $trans = TRUE;