getting basic search functionality working
[gwvp-mini.git] / gwvpmini / gwvpmini_search.php
index 1583c3f..6bcf4c1 100644 (file)
@@ -45,7 +45,99 @@ function gwvpmini_SearchMainPage()
 
 function gwvpmini_SearchMainPageBody()
 {
-       echo "You searched for ".$_REQUEST["searchstring"];
+       global $BASE_URL;
+       
+       $search = $_REQUEST["searchstring"];
+       
+       $reps = gwvp_findReposLike($search);
+       $ppls = gwvp_findPeopleLike($search);
+       
+       
+       
+       /*echo "<pre>repos\n\n";
+       print_r($reps);
+       echo "\n\nppl\n\n";
+       print_r($ppls);
+       echo "</pre>";*/
+       
+       // we need to process the search string into tokens here
+       if($search == "") {
+               echo "You need to enter a search string<br>";
+               return;
+       }
+       
+       $vl = gwvpmini_SearchTokenizeString($search);
+       $search_str = $vl["str"];
+       
+       echo "<h2>Results</h2>";
+       echo "Searching for \"$search_str\"<br>Note: Search does not look INSIDE repos<br>";
+       echo "<table><tr><td bgcolor=\"#eeeeff\"><h3>Repo's</h3></td><td bgcolor=\"#eeffee\"><h3>People</h3></td></tr>";
+       // repos
+       echo "<tr valign=\"top\"><td>";
+       
+       
+       // get_gravatar( $email, $s = 80, $d = 'mm', $r = 'g', $img = false, $atts = array() ) {
+       if($reps != false) {
+               echo "<table border=\"1\">";
+               foreach($reps as $rep) {
+                       $ownerinfo = gwvpmini_getUser(null, null, $rep["owner"]);
+                       $userdets = get_gravatar($ownerinfo["email"], 40, 'mm', 'g', true);
+                       $userdets .= "<br><a href=\"$BASE_URL/user/".$ownerinfo["username"]."\">".$ownerinfo["username"]."</a>";
+                       
+                       $repodets = "<b>".$rep["name"]."</b><br>".$rep["desc"];
+                       echo "<tr><td>$userdets</td><td>$repodets</td></tr>";
+               }
+               echo "</table>";
+       } else echo "No Repo's Match";
+       
+       
+       echo "</td><td>";
+       // people
+       if($ppls != false) {\r
+               echo "<table border=\"1\">";
+               $ownedrepos = "BLAHBLAH";\r
+               foreach($ppls as $ppl) {\r
+                       $userdets = get_gravatar($ppl["email"], 40, 'mm', 'g', true);
+                       $userdets .= "<br><a href=\"$BASE_URL/user/".$ppl["username"]."\">".$ppl["username"]."</a>";
+                       $repos = gwvpmini_GetOwnedRepos($ppl["username"]);
+                       if($repos == false) $ownedrepos = "No Repos";
+                       else {
+                               $ownedrepos = "";
+                               foreach($repos as $repo) {
+                                       $ownedrepos .= "<b><a href=\"$BASE_URL/view/".$repo["name"]."\">".$repo["name"]."</a></b> - ".$repo["desc"]."<br>";
+                               }
+                       }
+                       echo "<tr><td>$userdets</td><td>$ownedrepos</td></tr>";\r
+               }\r
+               \r
+               echo "</table>";\r
+       } else echo "No People Match";\r
+       \r
+       
+       echo "</table>";
+}
+
+function gwvpmini_SearchTokenizeString($search)
+{
+       $inp = preg_replace("/[^a-zA-Z0-9 ]+/", "", $search);\r
+       \r
+       $res = preg_split("/ +/", trim($inp));\r
+
+       $ret["str"] = "";
+       $i = 0;
+       foreach($res as $r) {
+               if($i == 0) $ret["str"] = "<b>$r</b>";
+               else $ret["str"] .= " <i>and</i> <b>$r</b>";
+               $ret["words"][$i] = $r;
+               $i++;
+       }
+       
+       /*echo "<pre>";
+       print_r($ret);
+       echo "</pre>";*/
+       
+       return $ret;
+       
 }
 
 ?>
\ No newline at end of file