123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393 |
- <?php
- define(NAV_NONE, 0);
- define(NAV_CLASSENTRY, 1);
- define(NAV_CONSTRUCTOR, 2);
- define(NAV_METHOD, 3);
- define(NAV_SIGNAL, 4);
- define(NAV_ENUM, 5);
- mysql_connect("localhost","nobody","");
- mysql_select_db("gtk");
- $NEXT = $PREV = $UP = $HOME = array(false, false);
- $TOC = array();
- $SIDEBAR_DATA = '';
- function recursive_trim(&$s, $k) {
- if (is_array($s)) {
- array_walk($s, 'recursive_trim');
- } else {
- $s = trim($s);
- }
- }
- function setupNavigation($data) {
- global $NEXT, $PREV, $UP, $HOME, $TOC, $tstamp;
- @array_walk($data, 'recursive_trim');
- $HOME = @$data["home"];
- $HOME[0] = "./";
- $NEXT = @$data["next"];
- $PREV = @$data["prev"];
- $TOC = @$data["toc"];
- $UP = @$data["up"];
- $tstamp = gmdate("D, d M Y",getlastmod());
- }
- function makeBorderTOC($this) {
- global $NEXT, $PREV, $UP, $HOME, $TOC;
- global $SIDEBAR_DATA;
- $SIDEBAR_DATA = '<form method="get" action="/manual1-lookup.php">';
- /* ALTER FOR LOCAL "../../php-gtk-web/manual1-lookup.php" */
- $SIDEBAR_DATA.= '<table border="0" CELLPADDING="4" CELLSPACING="0" WIDTH="160">';
- if(sizeof($TOC) > 1) {
- $SIDEBAR_DATA.= '<tr valign="top"><td><small>' .
- 'lookup: <input type="text" class="small" name="function" size="10"> ' .
- make_submit('small_submit.gif', 'lookup', 'bottom') .
- '<br></small></td></tr>';
- $SIDEBAR_DATA.= '<tr bgcolor="#cccccc"><td></td></tr>';
- $SIDEBAR_DATA.= '<tr valign="top"><td>' .
- make_link('./', make_image('caret-t.gif', $HOME[1]) . $HOME[1] ) .
- '<br></td></tr>';
- $SIDEBAR_DATA.= '<tr bgcolor="#cccccc"><td></td></tr>';
- if (($HOME[1] != $UP[1]) && $UP[1]) {
- $SIDEBAR_DATA.= '<tr valign="top"><td>' .
- make_link($UP[0], make_image('caret-u.gif', $UP[1]) . $UP[1] ) .
- '<br></td></tr>';
- }
- $SIDEBAR_DATA.= '<tr valign="top"><td><small>';
- for ($i = 0; $i < count($TOC); $i++) {
- list($url, $title, $type) = $TOC[$i];
- if (!$url || !$title) {
- continue;
- }
- $end = '0.gif';
- if ($title == $this) {
- $end = '1.gif';
- }
- switch($type) {
- case NAV_CLASSENTRY:
- $img = "icon-o".$end;
- break;
- case NAV_CONSTRUCTOR:
- $img = "icon-c".$end;
- break;
- case NAV_METHOD:
- $img = "icon-m".$end;
- break;
- case NAV_SIGNAL:
- $img = "icon-s".$end;
- break;
- case NAV_ENUM:
- $img = "icon-e".$end;
- break;
- default:
- $img = "box-".$end;
- }
- if ($UP[0] == 'funcref.php') {
- $title = eregi_replace(" functions\$", "", $title);
- }
- $SIDEBAR_DATA .= ' ' .
- make_link($url, make_image($img, $title) . $title ) .
- '<br>';
- }
- $SIDEBAR_DATA.= '</small></td></tr>';
- }
- $SIDEBAR_DATA.= '</table></form>';
- }
- function navigationBar($title, $id, $loc) {
- global $NEXT, $PREV, $tstamp;
- echo '<table border="0" width="100%" bgcolor="#e0e0e0" cellpadding="0" cellspacing="4">';
- echo '<tr><td>';
- if ($PREV[1]) {
- echo make_link( $PREV[0] , make_image('caret-l.gif', 'previous') . $PREV[1] ) ;
- }
- echo '<br></td>';
- echo '<td align="right">';
- if ($NEXT[1]) {
- echo make_link( $NEXT[0] , $NEXT[1] . make_image('caret-r.gif', 'next') ) ;
- }
- echo '<br></td>';
- echo '</tr>';
- echo '<tr bgcolor="#cccccc"><td colspan="2">';
- spacer(1,1);
- echo '<br></td></tr>';
- echo '<tr>';
- echo '<td align="right" colspan="2"><small>Last updated: '.$tstamp.'<br>';
- # if ($loc == 'bottom') {
- # $back_url = 'http://' . $_SERVER['SERVER_NAME'] .
- # (($_SERVER['SERVER_PORT']==80) ? '' : ':'.$_SERVER['SERVER_PORT'] ) .
- # $_SERVER['PHP_SELF'];
- # } else {
- global $LANGUAGES;
- $links = array();
- if($LANGUAGES){
- foreach($LANGUAGES as $code=>$name) {
- if (file_exists("../$code/$id")) {
- $links[] = make_link("../$code/$id", $name);
- }
- }
- }
- $file = substr($id,0,-4);
- if (file_exists("html/$file.html")) {
- $links[] = make_link("html/$file.html", 'Plain HTML');
- }
- if (count($links)) {
- echo 'view this page in ' . join (delim(), $links);
- echo '<br></small></td></tr>';
- }
- echo "</table>\n";
- }
- function makeTitle($title) {
- echo '<tr bgcolor="#d0d0d0" valign="top">';
- echo '<td colspan="2"><b>' . $title . '</b><br></td>';
- echo "</tr>\n";
- }
- function makeEntry($row, $show_admin = true, $show_rating = true ) {
- global $MAGIC_COOKIE;
- echo '<tr valign="top">';
- echo '<td bgcolor="#e0e0e0" colspan="2">';
- echo '<table border="0" cellpadding="2" cellspacing="0" width="100%">';
- echo '<tr valign="top"><td>';
- $name = htmlspecialchars($row['user']);
- if ($name && $name != "php-gtk@lists.php.net" && $name != "user@example.com") {
- if (ereg("(.+)@(.+)\.(.+)",$name)) {
- echo '<a href="mailto:'.$name.'">'.$name.'</a><br>';
- } else {
- echo '<b>'.$name.'</b><br>';
- }
- }
- echo '<small>' . date("d-M-Y h:i", $row['xwhen']) . '</small>';
- echo '<br></td>';
- echo '<td align="right" nowrap><small>';
- if (isset($MAGIC_COOKIE) && $show_admin) {
- print_link('/manual1/admin-notes.php?action=edit+' . $row['id'] . '&brief=1',
- make_image('notes-edit.gif', 'edit note')
- );
- echo ' ';
- print_link('/manual1/admin-notes.php?action=reject+' . $row['id'] . '&brief=1&popup=1',
- make_image('notes-reject.gif', 'reject note'),
- 'admin'
- );
- echo ' ';
- print_link('/manual1/admin-notes.php?action=delete+' . $row['id'] . '&brief=1&popup=1',
- make_image('notes-delete.gif', 'delete note'),
- 'admin'
- );
- }
- echo '<br>';
- if ($show_rating) {
- echo 'rating: ';
- if ( $row['votes'] > 2 ) {
- printf('<b>%.01f</b>', $row['rate'] );
- } else {
- echo '<b><font color="#cc0000">new</font></b>';
- }
- echo ' | rate: ';
- for ($i=1; $i<=5; $i++) {
- if ($i>1) {
- echo ' <font color="#999999">|</font> ';
- }
- print_link(htmlspecialchars($_SERVER['PHP_SELF']).'?rate_id='.$row['id'].'&rate_note='.$i, $i);
- }
- echo '<br>';
- }
- echo '</small></td></tr>';
- echo '<tr bgcolor="#f0f0f0"><td colspan="2">';
- echo clean_note($row['note']). '<br>';
- echo '</td></tr>';
- echo '</table>';
- echo '</td></tr>';
- }
- function updateNotesVoting() {
- # probably a better way/place to do this, but ...
- if ($_GET['rate_id'] && $_GET['rate_note']) {
- $p = parse_url($_SERVER['HTTP_REFERER']);
- echo "\n\n<!-- " . $p['path'] . " :: " . $_SERVER['SCRIPT_NAME'] . " -->\n\n";
- /* prevent outside scripts from voting */
- if ($_SERVER['SCRIPT_NAME']==$p['path']) {
- $query = 'UPDATE note SET votes=votes+1, rating=rating+' .
- min(5, $_GET['rate_note']) .
- ' WHERE id=' . $_GET['rate_id'];
- $result_id = @mysql_query($query);
- }
- }
- }
- function manualGetUserNotes($title, $id) {
- // if we're gtk.php.net, get it from the local DB
- // otherwise look in "/manual1/usernotes/$title.txt" (if present)
- $notes = array();
- # if(is_primary_site() || strstr($MYSITE,"localhost")) {
- if ( true ) {
- updateNotesVoting();
- $query = "SELECT *, UNIX_TIMESTAMP(ts) AS xwhen, IF(votes=0, 10, rating/votes) AS rate FROM note " .
- "WHERE sect='$title' OR sect='$id' ORDER BY xwhen DESC, id";
- echo "\n\n<!-- DEBUG: $query -->\n\n";
- $result_id = @mysql_query($query);
- if ($result_id && mysql_num_rows($result_id) > 0) {
- echo "\n\n<!-- DEBUG: numrows=" . mysql_num_rows($result_id) . " -->\n\n";
- while ($row = mysql_fetch_array($result_id)) {
- $notes[] = $row;
- }
- } else {
- echo "\n\n<!-- DEBUG: err=" . @mysql_error($result_id) . " -->\n\n";
- }
- } else {
- $notes_file = "../usernotes/" . urlencode( $title ) . ".txt";
- if ( @file_exists( $notes_file ) )
- {
- $fp = @fopen($notes_file,"r");
- if ($fp) {
- $body = fread($fp,filesize($notes_file));
- if (strlen($body)) {
- $notes = @unserialize($body);
- }
- fclose($fp);
- }
- }
- }
- return $notes;
- }
- function manualUserNotes($title, $id) {
- global $LANG, $MYSITE;
- $cur = substr(dirname($_SERVER['PHP_SELF']), -2);
- if($cur=='al') {
- $cur='en';
- }
- echo "<BR>\n\n";
- echo '<table border="0" cellpadding="4" cellspacing="0" width="100%">';
- $notes = manualGetUserNotes($title, $id);
- $back_url = 'http://' . $_SERVER['SERVER_NAME'] .
- (($SERVER_PORT==80) ? '' : ':'.$_SERVER['SERVER_PORT'] ) .
- htmlspecialchars($_SERVER['PHP_SELF']);
- echo '<tr bgcolor="#d0d0d0" valign="top">';
- echo '<td><small>User Contributed Notes<br></small><b>' . $title . '</b><br></td>';
- echo '<td align="right">';
- print_link('/manual1/add-note.php?sect='.$id.'&redirect='.$back_url,
- make_image('notes-add.gif','add a note')
- );
- echo " ";
- print_link('/manual1/about-notes.php',
- make_image('notes-about.gif', 'about notes')
- );
- echo "<br></td>\n";
- echo "</tr>\n";
- if ( sizeof($notes) == 0 ) {
- if ( false ) {
- echo '<tr valign="top">';
- echo '<td bgcolor="#e0e0e0" colspan="2">';
- echo 'User contributed notes are not available on this mirror site; try ';
- print_link('http://gtk.php.net/manual1/'.$LANG.'/'.$id, 'here');
- echo '.<br></td></tr>';
- } else {
- echo '<tr valign="top">';
- echo '<td bgcolor="#e0e0e0" colspan="2">';
- echo 'There are no user contributed notes for this page.';
- echo '<br></td></tr>';
- }
- } else {
- foreach($notes as $note) {
- makeEntry($note);
- }
- echo "<tr bgcolor=\"#d0d0d0\" valign=\"top\">\n";
- echo "<td colspan=\"2\" align=\"right\">\n";
- print_link('/manual1/add-note.php?sect='.$id.'&redirect='.$back_url,
- make_image('notes-add.gif','add a note')
- );
- echo " ";
- print_link('/manual1/about-notes.php',
- make_image('notes-about.gif', 'about notes')
- );
- echo "<br></td>\n";
- echo "</tr>\n";
- }
- echo "</table><br><br>\n";
- }
- function sendManualHeaders($charset, $LANG) {
- global $LANG;
- Header("Content-type: text/html;charset=UTF-8");
- Header("Content-language: $LANG");
- }
- function manualHeader($title, $id="") {
- global $HTDIG;
- makeBorderTOC($title);
- commonHeader('PHP-GTK 1 Manual : '.$title);
- # create links to plain html and other languages
- if (!$HTDIG) {
- navigationBar($title, $id, "top");
- }
- }
- function manualFooter($title, $id="") {
- global $HTDIG;
- if (!$HTDIG) {
- manualUserNotes($title,$id);
- navigationBar($title, $id, "bottom");
- }
- commonFooter();
- }
- function dehtmlspecialchars($str) {
- $str = str_replace(">",">",$str);
- $str = str_replace("<","<",$str);
- $str = str_replace(""","\"",$str);
- $str = str_replace("&","&",$str);
- return $str;
- }
- ?>
|