basic permissions work
[gwvp-mini.git] / gwvpmini / gwvpmini_search.php
1 <?php
2
3 \r
4 $CALL_ME_FUNCTIONS["search"] = "gwvpmini_SearchCallMe";\r
5 \r
6 // the home_page_provders bit is an array\r
7 \r
8 \r
9 \r
10 function gwvpmini_SearchCallMe()\r
11 {\r
12 \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
19                 if(isset($qspl[0])) {\r
20                         if($qspl[0] == "search") {\r
21                                 return "gwvpmini_SearchMainPage";\r
22                         } else return false;\r
23                 }\r
24                 else return false;\r
25         }\r
26 \r
27         return false;\r
28 }\r
29
30
31 function gwvpmini_SearchBuilder()
32 {
33         global $BASE_URL;
34         
35         echo "<form method=\"post\" action=\"$BASE_URL/search\">";
36         echo "<input type=\"text\" name=\"searchstring\"><input type=\"submit\" name=\"Search\" value=\"Seach\">";
37         echo "</form>";
38                 
39 }
40
41 function gwvpmini_SearchMainPage()
42 {
43         gwvpmini_goMainPage("gwvpmini_SearchMainPageBody");
44 }
45
46 function gwvpmini_SearchMainPageBody()
47 {
48         global $BASE_URL;
49         
50         $search = $_REQUEST["searchstring"];
51         
52         $reps = gwvpmini_findReposLike($search);
53         $ppls = gwvpmini_findPeopleLike($search);
54         
55         
56         
57         /*echo "<pre>repos\n\n";
58         print_r($reps);
59         echo "\n\nppl\n\n";
60         print_r($ppls);
61         echo "</pre>";*/
62         
63         // we need to process the search string into tokens here
64         if($search == "") {
65                 echo "You need to enter a search string<br>";
66                 return;
67         }
68         
69         $vl = gwvpmini_SearchTokenizeString($search);
70         $search_str = $vl["str"];
71         
72         echo "<h2>Results</h2>";
73         echo "Searching for \"$search_str\"<br>Note: Search does not look INSIDE repos<br>";
74         echo "<table><tr><td bgcolor=\"#eeeeff\"><h3>Repo's</h3></td><td bgcolor=\"#eeffee\"><h3>People</h3></td></tr>";
75         // repos
76         echo "<tr valign=\"top\"><td>";
77         
78         
79         // get_gravatar( $email, $s = 80, $d = 'mm', $r = 'g', $img = false, $atts = array() ) {
80         if($reps != false) {
81                 echo "<table border=\"1\">";
82                 foreach($reps as $rep) {
83                         $ownerinfo = gwvpmini_getUser(null, null, $rep["owner"]);
84                         $userdets = get_gravatar($ownerinfo["email"], 40, 'mm', 'g', true);
85                         $userdets .= "<br><a href=\"$BASE_URL/user/".$ownerinfo["username"]."\">".$ownerinfo["username"]."</a>";
86                         
87                         $repodets = "<b>".$rep["name"]."</b><br>".$rep["desc"];
88                         echo "<tr><td>$userdets</td><td>$repodets</td></tr>";
89                 }
90                 echo "</table>";
91         } else echo "No Repo's Match";
92         
93         
94         echo "</td><td>";
95         // people
96         if($ppls != false) {\r
97                 echo "<table border=\"1\">";
98                 $ownedrepos = "BLAHBLAH";\r
99                 foreach($ppls as $ppl) {\r
100                         $userdets = get_gravatar($ppl["email"], 40, 'mm', 'g', true);
101                         $userdets .= "<br><a href=\"$BASE_URL/user/".$ppl["username"]."\">".$ppl["username"]."</a>";
102                         $repos = gwvpmini_GetOwnedRepos($ppl["username"]);
103                         if($repos == false) $ownedrepos = "No Repos";
104                         else {
105                                 $ownedrepos = "";
106                                 foreach($repos as $repo) {
107                                         $ownedrepos .= "<b><a href=\"$BASE_URL/view/".$repo["name"]."\">".$repo["name"]."</a></b> - ".$repo["desc"]."<br>";
108                                 }
109                         }
110                         echo "<tr><td>$userdets</td><td>$ownedrepos</td></tr>";\r
111                 }\r
112                 \r
113                 echo "</table>";\r
114         } else echo "No People Match";\r
115         \r
116         
117         echo "</table>";
118 }
119
120 function gwvpmini_SearchTokenizeString($search)
121 {
122         $inp = preg_replace("/[^a-zA-Z0-9 ]+/", "", $search);\r
123         \r
124         $res = preg_split("/ +/", trim($inp));\r
125
126         $ret["str"] = "";
127         $i = 0;
128         foreach($res as $r) {
129                 if($i == 0) $ret["str"] = "<b>$r</b>";
130                 else $ret["str"] .= " <i>and</i> <b>$r</b>";
131                 $ret["words"][$i] = $r;
132                 $i++;
133         }
134         
135         /*echo "<pre>";
136         print_r($ret);
137         echo "</pre>";*/
138         
139         return $ret;
140         
141 }
142
143 ?>