function gwvpmini_SearchCallMe()\r
{\r
\r
- error_log("in repoadmin callme - err?");\r
- error_log(print_r($_REQUEST, true));\r
+ // error_log("in repoadmin callme - err?");\r
+ // error_log(print_r($_REQUEST, true));\r
if(isset($_REQUEST["q"])) {\r
- error_log("in repoadmin callme, for Q");\r
+ // error_log("in repoadmin callme, for Q");\r
$query = $_REQUEST["q"];\r
$qspl = explode("/", $query);\r
- if(isset($qspl[0])) {\r
+ if(isset($qspl[0])) {
+ if($qspl[0] == "search_redirs") {
+ return "gwvpmini_SearchMainPageRedir";
+ }\r
if($qspl[0] == "search") {\r
return "gwvpmini_SearchMainPage";\r
} else return false;\r
{
global $BASE_URL;
- echo "<form method=\"post\" action=\"$BASE_URL/search\">";
+ echo "<form method=\"post\" action=\"$BASE_URL/search_redirs\">";
echo "<input type=\"text\" name=\"searchstring\"><input type=\"submit\" name=\"Search\" value=\"Seach\">";
echo "</form>";
gwvpmini_goMainPage("gwvpmini_SearchMainPageBody");
}
+function gwvpmini_SearchMainPageRedir()
+{
+ global $BASE_URL;
+
+ $_SESSION["search"] = $_REQUEST["searchstring"];
+ header("Location: $BASE_URL/search");
+
+ return;
+}
+
function gwvpmini_SearchMainPageBody()
{
- echo "You searched for ".$_REQUEST["searchstring"];
+ global $BASE_URL;
+
+ $search = "";
+ if(isset($_SESSION["search"])) {
+ $search = $_SESSION["search"];
+ unset($_SESSION["search"]);
+ } else {
+ $query = $_REQUEST["q"];\r
+ $qspl = explode("/", $query);\r
+ if(isset($qspl[1])) {
+ $search = $qspl[1];
+ }
+ }
+
+ $reps = gwvpmini_findReposLike($search);
+ $ppls = gwvpmini_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>";
+
+
+
+ if($reps != false) {
+ echo "<table border=\"1\">";
+ foreach($reps as $rep) {
+ $ownerinfo = gwvpmini_getUser(null, null, $rep["owner"]);
+ $userdets = gwvpmini_HtmlGravatar($ownerinfo["email"], 40, "<br>")."<a href=\"$BASE_URL/user/".$ownerinfo["username"]."\">".$ownerinfo["username"]."</a>";
+
+ $repodets = "<b><a href=\"$BASE_URL/view/".$rep["name"]."\">".$rep["name"]."</a></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 = gwvpmini_HtmlGravatar($ppl["email"], 40, "<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