4 $CALL_ME_FUNCTIONS["search"] = "gwvpmini_SearchCallMe";
\r
6 // the home_page_provders bit is an array
\r
10 function gwvpmini_SearchCallMe()
\r
13 // error_log("in repoadmin callme - err?");
\r
14 // error_log(print_r($_REQUEST, true));
\r
15 if(isset($_REQUEST["q"])) {
\r
16 // error_log("in repoadmin callme, for Q");
\r
17 $query = $_REQUEST["q"];
\r
18 $qspl = explode("/", $query);
\r
20 if($qspl[0] == "search_redirs") {
21 return "gwvpmini_SearchMainPageRedir";
23 if($qspl[0] == "search") {
\r
24 return "gwvpmini_SearchMainPage";
\r
25 } else return false;
\r
34 function gwvpmini_SearchBuilder()
38 echo "<form method=\"post\" action=\"$BASE_URL/search_redirs\">";
39 echo "<input type=\"text\" name=\"searchstring\"><input type=\"submit\" name=\"Search\" value=\"Seach\">";
44 function gwvpmini_SearchMainPage()
46 gwvpmini_goMainPage("gwvpmini_SearchMainPageBody");
49 function gwvpmini_SearchMainPageRedir()
53 $_SESSION["search"] = $_REQUEST["searchstring"];
54 header("Location: $BASE_URL/search");
59 function gwvpmini_SearchMainPageBody()
64 if(isset($_SESSION["search"])) {
65 $search = $_SESSION["search"];
66 unset($_SESSION["search"]);
68 $query = $_REQUEST["q"];
\r
69 $qspl = explode("/", $query);
\r
75 $reps = gwvpmini_findReposLike($search);
76 $ppls = gwvpmini_findPeopleLike($search);
80 /*echo "<pre>repos\n\n";
86 // we need to process the search string into tokens here
88 echo "You need to enter a search string<br>";
92 $vl = gwvpmini_SearchTokenizeString($search);
93 $search_str = $vl["str"];
95 echo "<h2>Results</h2>";
96 echo "Searching for \"$search_str\"<br>Note: Search does not look INSIDE repos<br>";
97 echo "<table><tr><td bgcolor=\"#eeeeff\"><h3>Repo's</h3></td><td bgcolor=\"#eeffee\"><h3>People</h3></td></tr>";
99 echo "<tr valign=\"top\"><td>";
104 echo "<table border=\"1\">";
105 foreach($reps as $rep) {
106 $ownerinfo = gwvpmini_getUser(null, null, $rep["owner"]);
107 $userdets = gwvpmini_HtmlGravatar($ownerinfo["email"], 40, "<br>")."<a href=\"$BASE_URL/user/".$ownerinfo["username"]."\">".$ownerinfo["username"]."</a>";
109 $repodets = "<b><a href=\"$BASE_URL/view/".$rep["name"]."\">".$rep["name"]."</a></b><br>".$rep["desc"];
110 echo "<tr><td>$userdets</td><td>$repodets</td></tr>";
113 } else echo "No Repo's Match";
118 if($ppls != false) {
\r
119 echo "<table border=\"1\">";
120 $ownedrepos = "BLAHBLAH";
\r
121 foreach($ppls as $ppl) {
\r
122 $userdets = gwvpmini_HtmlGravatar($ppl["email"], 40, "<br>")."<a href=\"$BASE_URL/user/".$ppl["username"]."\">".$ppl["username"]."</a>";
123 $repos = gwvpmini_GetOwnedRepos($ppl["username"]);
124 if($repos == false) $ownedrepos = "No Repos";
127 foreach($repos as $repo) {
128 $ownedrepos .= "<b><a href=\"$BASE_URL/view/".$repo["name"]."\">".$repo["name"]."</a></b> - ".$repo["desc"]."<br>";
131 echo "<tr><td>$userdets</td><td>$ownedrepos</td></tr>";
\r
135 } else echo "No People Match";
\r
141 function gwvpmini_SearchTokenizeString($search)
143 $inp = preg_replace("/[^a-zA-Z0-9 ]+/", "", $search);
\r
145 $res = preg_split("/ +/", trim($inp));
\r
149 foreach($res as $r) {
150 if($i == 0) $ret["str"] = "<b>$r</b>";
151 else $ret["str"] .= " <i>and</i> <b>$r</b>";
152 $ret["words"][$i] = $r;