source: trunk/tools/database/www/Odin32DB.phtml@ 10366

Last change on this file since 10366 was 6678, checked in by bird, 24 years ago

reverse prev rev.

File size: 16.7 KB
Line 
1<?php
2
3$sMainDir = "../";
4
5require $sMainDir."stilovi.php3";
6require "Odin32DBHelpers.php3";
7
8/* Profiling */
9$sPageTimer = Odin32DBTimerStart("page timer");
10/* Profiling */
11
12$Title ="The Odin32 API Database";
13
14
15/*
16 * Connect to database
17 */
18require "Odin32DBConnect.php3";
19
20
21/*
22 * Global Variables
23 */
24$iRefcode = -1; /* Reference number. (< 0 is all members in the category) */
25$sCategory = "root"; /* Category name for internal use (equal to table name). */
26$sCategoryName = "Root Menu"; /* Category name for presentation. */
27$fNoData = 0; /* Flag which is set if refcode don't give matches in the DB. */
28
29
30/*
31 * What are we up to? We'll parse the input parameter (if any) to find out.
32 */
33if (isset($dllrefcode))
34{ /* DLLs by refcode */
35 $sCategory = "dll";
36 $sCategoryName = "Dll";
37 if ($dllrefcode != "")
38 $iRefcode = (int)$dllrefcode;
39 $fFunctions = (isset($fFunctions) && $fFunctions != '0');
40 $fFiles = (isset($fFiles) && $fFiles != '0');
41 $fAPIGroups = (isset($fAPIGroups) && $fAPIGroups != '0');
42 $fAuthors = (isset($fAuthors) && $fAuthors != '0');
43 $fSortByState=(isset($fSortByState) && $fSortByState!= '0');
44}
45else if (isset($filerefcode))
46{ /* Files by refcode */
47 $sCategory = "file";
48 $sCategoryName = "File";
49 if ($filerefcode != "")
50 $iRefcode = (int)$filerefcode;
51 $fFunctions = (isset($fFunctions) && $fFunctions != '0');
52 $fAPIGroups = (isset($fAPIGroups) && $fAPIGroups != '0');
53 $fAuthors = (isset($fAuthors) && $fAuthors != '0');
54 $fSortByState=(isset($fSortByState) && $fSortByState!= '0');
55}
56else if (isset($functionrefcode))
57{ /* Functions by refcode */
58 $sCategory = "function";
59 $sCategoryName = "Function";
60 if ($functionrefcode != "")
61 $iRefcode = (int)$functionrefcode;
62}
63else if (isset($apigrouprefcode))
64{ /* Api Group by refcode */
65 $sCategory = "apigroup";
66 $sCategoryName = "API Group";
67 if ($apigrouprefcode != "")
68 $iRefcode = (int)$apigrouprefcode;
69 $fFunctions = (isset($fFunctions) && $fFunctions != '0');
70 $fFiles = (isset($fFiles) && $fFiles != '0');
71 $fAuthors = (isset($fAuthors) && $fAuthors != '0');
72 $fSortByState=(isset($fSortByState) && $fSortByState!= '0');
73}
74else if (isset($authorrefcode))
75{ /* Author by refcode */
76 $sCategory = "author";
77 $sCategoryName = "Author";
78 if ($authorrefcode != "")
79 $iRefcode = (int)$authorrefcode;
80 $fDlls = (isset($fDlls) && $fDlls != '0');
81 $fFunctions = (isset($fFunctions) && $fFunctions != '0');
82 $fFiles = (isset($fFiles) && $fFiles != '0');
83 $fAPIGroups = (isset($fAPIGroups) && $fAPIGroups != '0');
84 $fSortByState=(isset($fSortByState) && $fSortByState!= '0');
85 if (!(isset($authordll) && $authordll != "" && @(int)$authordll >= 0))
86 $authordll = -1;
87}
88else if (isset($designnoterefcode))
89{ /* Author by refcode */
90 $sCategory = "designnote";
91 $sCategoryName = "Design Note";
92 if ($designnoterefcode != "")
93 $iRefcode = (int)$designnoterefcode;
94}
95else if (isset($dlls))
96{ /* All dlls */
97 $sCategory = "dlls";
98 $sCategoryName = "All Dlls";
99 $sDllType = 'A';
100}
101else if (isset($internal))
102{ /* All Internal Dlls */
103 $sCategory = "dlls";
104 $sCategoryName = "Internal Dlls";
105 $sDllType = 'I';
106}
107else if (isset($support))
108{ /* All dlls */
109 $sCategory = "dlls";
110 $sCategoryName = "Support Stuff";
111 $sDllType = 'S';
112}
113else if (isset($tools))
114{ /* Tools */
115 $sCategory = "dlls";
116 $sCategoryName = "Tools";
117 $sDllType = 'T';
118}
119else if (isset($apigroups))
120{ /* All API Groups */
121 $sCategory = "apigroups";
122 $sCategoryName = "API Groups";
123}
124else if (isset($authors))
125{ /* All authors */
126 $sCategory = "authors";
127 $sCategoryName = "Authors";
128}
129else if (isset($design))
130{ /* All authors */
131 $sCategory = "designnotes";
132 $sCategoryName = "Design Notes";
133} /* else: root page */
134
135
136/*
137 * Get name of the item we're to display data on.
138 */
139if ($iRefcode < 0)
140 $sName = ""; //FIXME
141else
142{
143 $sql = sprintf("SELECT name FROM %s WHERE refcode = %d",
144 $sCategory, $iRefcode);
145 $result = mysql_query($sql, $db);
146 if (@mysql_num_rows($result) > 0 &&
147 ($aName = @mysql_fetch_row($result))
148 )
149 {
150 $sName = $aName[0];
151 }
152 else
153 {
154 $fNoData = 1;
155 $sName = "!Invalid Refcode!";
156 Odin32DBSqlError($sql);
157 }
158 @mysql_free_result($result);
159}
160
161require $sMainDir."01-PreTitle.php3";
162if ($sName == "") echo $Title." - ".$sCategoryName;
163else echo $Title." - ".$sCategoryName.": ".$sName;
164require $sMainDir."02-PostTitle.php3";
165
166require $sMainDir."03-MainTableBeg.php3";
167require $sMainDir."04-ColumnOne.php3";
168
169require $sMainDir."05-ColumnTwoHeader.php3";
170if ($sName == "") echo $Title."<br>".$sCategoryName;
171else echo $Title."<br>".$sCategoryName.": ".$sName;
172require $sMainDir."06-ColumnTwoHeader2.php3";
173
174
175TekstBeg();
176
177if (!$fNoData)
178{
179 switch ($sCategory)
180 {
181 case "dll":
182 {
183 Odin32DBDllInfo($db, $iRefcode, $fFunctions, $fFiles, $fAPIGroups, $fAuthors, $fSortByState);
184 break;
185 }
186
187 case "file":
188 {
189 Odin32DBFileInfo($db, $iRefcode, $fFunctions, $fAPIGroups, $fAuthors, $fSortByState);
190 break;
191 }
192
193 case "function":
194 {
195 Odin32DBFunctionInfo($db, $iRefcode);
196 break;
197 }
198
199 case "apigroup":
200 {
201 Odin32DBAPIGroupInfo($db, $iRefcode, $fFunctions, $fFiles, $fAuthors, $fSortByState);
202 break;
203 }
204
205 case "author":
206 {
207 Odin32DBAuthorInfo($db, $iRefcode, $fDlls, $fFunctions, $fFiles, $fAPIGroups, $fSortByState, $authordll);
208 break;
209 }
210
211 case "designnote":
212 {
213 Odin32DBDesignNote($db, $iRefcode);
214 break;
215 }
216
217 case "root":
218 {
219 /*
220 * The root page.
221 */
222 Odin32DBNavigationTop("","");
223 Odin32DBNaslov("Welcome to the Odin32 API Database", "welcome", "");
224 echo "This is the first Beta edition of the Odin32 API Database.<br>\n".
225 "There might be dead or non-functioning links. Currently feedback is <i>NOT</i> needed.\n".
226 "<p>\n".
227 "Please note that the quality of the data avilable is quite poor\n".
228 "for the time being. This will improve within some months.<br>\n".
229 "-Enjoy!<br>\n";
230
231 Odin32DBNaslov("Root Menu", "menu", "");
232 echo "<font size=3>".
233 "<ul>\n".
234 " <li><b>Modules\n".
235 " <ul>\n".
236 " <li><b><a href=\"Odin32DB.phtml?dlls=1\">Odin32 API DLLs</a></b>\n".
237 " <li><b><a href=\"Odin32DB.phtml?internal=1\">Internal Odin32 DLLs</a></b>\n".
238 " <li><b><a href=\"Odin32DB.phtml?support=1\">Support Stuff(like win32k)</a></b>\n".
239 " <li><b><a href=\"Odin32DB.phtml?tools=1\">Tools</a></b>\n".
240 " </ul>\n".
241 " <li><b><a href=\"Odin32DB.phtml?apigroups=1\">API Groups</a></b>\n".
242 " <li><b><a href=\"Odin32DB.phtml?authors=1\">Authors</a></b>\n".
243 " <li><b><a href=\"Odin32DB.phtml?design=1\">Design Notes</a></b>\n".
244 " <!-- <li><i><a href=\"Odin32DB.phtml?searchapi=1\">Search API (not implemeted)</a></i> -->\n".
245 "</ul>\n";
246 "</font>\n";
247 Odin32DBNavigationBottom("","");
248 break;
249 }
250
251 case "dlls":
252 {
253 /*
254 * List all dlls.
255 */
256 Odin32DBNavigationTop("","");
257 Odin32DBNaslov("Welcome to the Odin32 API Database", "welcome", "");
258 echo "This is the first Beta edition of the Odin32 API Database.<br>\n".
259 "There might be dead or non-functioning links. Currently feedback is <i>NOT</i> needed.\n".
260 "<p>\n".
261 "Please note that the quality of the data avilable is quite poor\n".
262 "for the time being. This will improve within some months.<br>\n".
263 "-Enjoy!<br>\n";
264
265 Odin32DBNaslov($sCategoryName, $sCategory, "");
266 $sql = "SELECT\n".
267 " d.name AS name,\n".
268 " d.refcode AS refcode,\n".
269 " COUNT(f.refcode) AS functions\n".
270 "FROM\n".
271 " dll d\n".
272 " LEFT OUTER JOIN function f\n".
273 " ON f.dll = d.refcode\n".
274 "WHERE\n".
275 " d.type = '".$sDllType."'\n".
276 "GROUP BY d.refcode\n".
277 "ORDER BY d.name\n";
278 if ($result = mysql_query($sql, $db))
279 {
280 if (mysql_num_rows($result) <= 0)
281 echo "<i>No data in this module category!<br>$sql</i>\n";
282 else
283 {
284 echo "\n<font size=-1><ul><b>";
285 while ($aDll = mysql_fetch_array($result))
286 {
287 echo "<li><a href=\"Odin32DB.phtml?dllrefcode=".$aDll["refcode"].
288 "\">".$aDll["name"]."</a> (".$aDll["functions"].")\n";
289 }
290 echo "</b></ul></font>\n";
291 }
292 }
293 else
294 Odin32DBSqlError($sql);
295 Odin32DBNavigationBottom("","");
296 break;
297 }
298
299 case "authors":
300 {
301 /*
302 * List all authors.
303 */
304 Odin32DBNavigationTop("","");
305 Odin32DBNaslov("Welcome to the Odin32 API Database", "welcome", "");
306 echo "This is the first Beta edition of the Odin32 API Database.<br>\n".
307 "There might be dead or non-functioning links. Currently feedback is <i>NOT</i> needed.\n".
308 "<p>\n".
309 "Please note that the quality of the data avilable is quite poor\n".
310 "for the time being. This will improve within some months.<br>\n".
311 "-Enjoy!<br>\n";
312
313 Odin32DBNaslov("All Authors", "authors", "");
314 $sql = "SELECT\n".
315 " name,\n".
316 " refcode, \n".
317 " COUNT(fa.function) AS functions\n".
318 "FROM\n".
319 " author a\n".
320 " LEFT OUTER JOIN fnauthor fa ON a.refcode = fa.author\n".
321 "GROUP BY name\n".
322 "ORDER BY name\n";
323 if ($result = mysql_query($sql, $db))
324 {
325 if (mysql_num_rows($result) <= 0)
326 echo "<i>No dlls!</i>\n";
327 else
328 {
329 echo "\n<font size=-1><ul><b>";
330 while ($aAuthor = mysql_fetch_array($result))
331 {
332 echo "<li><a href=\"Odin32DB.phtml?authorrefcode=".$aAuthor["refcode"].
333 "\">".$aAuthor["name"]."</a> (".$aAuthor["functions"].")\n";
334 }
335 echo "</ul></b></font>\n";
336 }
337 }
338 else
339 Odin32DBSqlError($sql);
340 Odin32DBNavigationBottom("","");
341 break;
342 }
343
344 case "apigroups":
345 {
346 /*
347 * List all API Groups.
348 */
349 Odin32DBNavigationTop("","");
350 Odin32DBNaslov("Welcome to the Odin32 API Database", "welcome", "");
351 echo "This is the first Beta edition of the Odin32 API Database.<br>\n".
352 "There might be dead or non-functioning links. Currently feedback is <i>NOT</i> needed.\n".
353 "<p>\n".
354 "Please note that the quality of the data avilable is quite poor\n".
355 "for the time being. This will improve within some months.<br>\n".
356 "-Enjoy!<br>\n";
357
358 Odin32DBNaslov("All API Groups", "apigroups", "");
359 $sql = "SELECT\n".
360 " a.name AS name,\n".
361 " a.refcode AS refcode,\n".
362 " COUNT(f.refcode) AS functions\n".
363 "FROM\n".
364 " apigroup a\n".
365 " JOIN function f\n".
366 "WHERE\n".
367 " f.apigroup = a.refcode\n".
368 "GROUP BY a.name\n".
369 "ORDER BY a.name\n";
370 if ($result = mysql_query($sql, $db))
371 {
372 if (mysql_num_rows($result) <= 0)
373 echo "<i>No dlls!</i>\n";
374 else
375 {
376 echo "\n<font size=-1><ul><b>";
377 while ($aAPIGroup = mysql_fetch_array($result))
378 {
379 echo "<li><a href=\"Odin32DB.phtml?apigrouprefcode=".$aAPIGroup["refcode"].
380 "\">".$aAPIGroup["name"]."</a> (".$aAPIGroup["functions"].")\n";
381 }
382 echo "</ul></b></font>\n";
383 }
384 }
385 else
386 Odin32DBSqlError($sql);
387 Odin32DBNavigationBottom("","");
388 break;
389 }
390
391 case "designnotes":
392 {
393 /*
394 * List all design notes.
395 */
396 Odin32DBNavigationTop("","");
397 Odin32DBNaslov("Welcome to the Odin32 API Database", "welcome", "");
398 echo "This is the first Beta edition of the Odin32 API Database.<br>\n".
399 "There might be dead or non-functioning links. Currently feedback is <i>NOT</i> needed.\n".
400 "<p>\n".
401 "Please note that the quality of the data avilable is quite poor\n".
402 "for the time being. This will improve within some months.<br>\n".
403 "-Enjoy!<br>\n";
404
405 Odin32DBNaslov($sCategoryName, $sCategory, "");
406 $sql = "SELECT\n".
407 " dn.refcode AS refcode,\n".
408 " dn.name AS name,\n".
409 " dn.seqnbr AS seqnbr,\n".
410 " dn.level AS level,\n".
411 " d.name AS dllname,\n".
412 " f.name AS filename\n".
413 "FROM\n".
414 " designnote dn,\n".
415 " dll d,\n".
416 " file f\n".
417 "WHERE dn.dll = d.refcode\n".
418 " AND dn.file = f.refcode\n".
419 " AND dn.level <= 1\n".
420 "ORDER BY d.name, dn.seqnbr, dn.seqnbrnote\n";
421 if ($result = mysql_query($sql, $db))
422 {
423 if (mysql_num_rows($result) <= 0)
424 echo "<i>No Design Notes!</i>\n";
425 else
426 {
427 echo "\n<font size=-1><ul><b>";
428 $iLevel = 0;
429 while ($aDesignNote = mysql_fetch_array($result))
430 {
431 if ($aDesignNote["level"] > $iLevel)
432 print " <ul>\n";
433 else if ($aDesignNote["level"] < $iLevel)
434 print " </ul>\n";
435 $iLevel = $aDesignNote["level"];
436
437 if ($iLevel > 0)
438 print " <li><a href=\"Odin32DB.phtml?designnoterefcode=".$aDesignNote["refcode"].
439 "\">".$aDesignNote["name"]."</a>\n";
440 else
441 print " <li><a href=\"Odin32DB.phtml?designnoterefcode=".$aDesignNote["refcode"].
442 "\">".$aDesignNote["seqnbr"].".0 ".$aDesignNote["name"]."</a> (".$aDesignNote["filename"].")\n";
443
444 }
445 echo "</ul></b></font>\n";
446 }
447 }
448 else
449 Odin32DBSqlError($sql);
450 Odin32DBNavigationBottom("","");
451 break;
452 }
453
454 default:
455 echo "!IPE!"; //FIXME
456 }
457}
458else
459{
460}
461
462
463TekstEnd();
464
465require $sMainDir."07-ColumnTwoFooter.php3";
466require $sMainDir."08-News.php3";
467require $sMainDir."09-ContentsTitle.php3";
468
469Odin32DBWriteContents();
470
471require $sMainDir."10-EndOfContent.php3";
472require $sMainDir."11-NetlabsContact.php3";
473
474$Kada=date ("j M Y", filemtime(__file__));
475require $sMainDir."12-OdinBanner.php3";
476
477require $sMainDir."13-Closing.php3";
478
479
480/* Profiling */
481Odin32DBTimerStop($sPageTimer);
482/* Profiling */
483?>
484
Note: See TracBrowser for help on using the repository browser.