count( $code ) ) return; $num = 0; for( $i = 0; $i <= $level; $i++ ) $num = $num * 100 + $code[$i]; if( $sisu_id > 0 && !$cl ) { $sisu = $db->get_sisu( $sisu_id ); $cl = $db->get_userclass( $sisu["fail"], $sisu["klass"], $sisu["funktsioon"] ); // printf( "S%dsID%dfunc[%s]", $level, $sisu_id, $sisu["funktsioon"] ); } if( $method && $sisu && $sisu["is_menu"] > 0 && $cl) { // printf( "menu_as_class" ); $result = $cl->$sisu["funktsioon"]( $db, $code, $lang, $level, $method ); } else $result = $db->query_menus( $code, $level ); if( !$result ) return; while( $line = mysql_fetch_array( $result, MYSQL_ASSOC ) ) { print_menuitem( $line, $level, $line["ID"] == $num ); // Format menu item // printf( "*L%d\n", $level ); // submenu generation (recursive!) // if some method has been set to handle it, it must handle all level calls // afterwards // Location pointer if( $line["ID"] == $num ) { if( $level==0) $pointer=""; $pointer .= ( ( $level==0 ? "" : " :: " ).$line["tekst"] ); gen_menu( $code, $level + 1, $line["sisu_id"]>0 || $method, $line["sisu_id"] ); } // if } //while } /* * Format one menuitem */ function print_menuitem( $line, $level, $active ) { global $index; if( $level < 0 || $level > 2 ) return; $link=""; $link_text = $line[ "tekst" ]; $link_action= $line[ "ID" ]; $link_image = $line[ "nupp" ]; $width = 30 + $level * 20; $span = 2 - $level; if( $link_text != "" && $link_action >= 0 ) $link=sprintf( "", $index, $link_action ); printf( "" ); printf( "\n
", $width ); if( $link_image != "" ) { printf( "%s\"%s\"", $link, $link_image, $link_image, ($link != "" ? "" : "" ) ); } else printf( " " ); printf( "" ); if( $link_text != "" ) { printf( "%s%s%s", $link, $link_text, ($link != "" ? "" : "" ) ); } else printf( " " ); printf( "
\n" ); } /* * Fill info area if needed */ function gen_info( ) { global $db, $action, $lang, $param, $cl, $sisu, $code; if( !isset( $param ) || !is_numeric( $param ) || $param < 0 ) { $param=0; } // fill the info page using the same class and method as // for menus. level=-1 should indicate that we wish to generate // something else than menus. Method parameter is used here for // forwarding possible param info to method call. if( $sisu && method_exists( $cl, $sisu["funktsioon"] ) ) $result = $cl->$sisu["funktsioon"]( $db, $code, $lang, -1, $param ); // else // printf( "class pointer null" ); } /* * Customized time formatter */ function format_time( $lang ) { $tstamp = time( ); $darray = getdate( $tstamp ); $ftime = ""; switch( $lang ) { case "EE" : $valid = true; $month = array( 1=>"jaanuar", "veebruar", "märts", "aprill", "mai", "juuni", "juuli", "august", "september", "oktoober", "november", "detsember" ); $day = array( 0=>"Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev" ); // $ftime = sprintf( "%s, %d. %s %d [%02d:%02d]", $ftime = sprintf( "%s, %d. %s %d", $day[ $darray[ "wday" ] ], $darray[ "mday" ], $month[ $darray[ "mon" ] ], $darray[ "year" ] // $darray[ "hours" ], $darray[ "minutes" ] ); break; default: $ftime = sprintf( date( "%D %M %j %H:%I %Y" ) ); // You can add some more here } // switch return( $ftime ); } // format_time( $lang ) /* * Decrypt action code */ function decipher_act( $act ) { $i = $act; $level = $act != 0 ? round(log10( $act ) / 2) : 0; for( $j = $level; $j >= 0; $j-- ) { $levels[$j]= $i % 100; $i = (int) ( $i / 100 ); } // Debugging // for( $i = 0; $i < count( $levels ); $i++ ) // printf( " L%d=%d", $i, $levels[$i] ); return $levels; } /* * =================================== * Main part * =================================== */ $lang = "EE"; $cl = NULL; $sisu = NULL; $index= "index.php"; // load DataBase access functions... include( "DB.php" ); // init classes $db = new DB; $action = $_GET["action"]; $param = $_GET["param"]; // Probably the first access to this page, generate // default starting setup. Limit illegal values. if( !isset( $action ) || !is_numeric( $action ) || $action < 0 || $action > 999999 ) { $action=4; } $pointer=" "; // Page generation starts here printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("M-Ruut Kalliskivid\n"); printf("\n"); printf("\n"); printf(" \n"); printf("\n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); // Menu starts here printf(" \n"); // Menu end // Info field starts here printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf("
\n"); printf("

M-Ruut\"Logo\"\n"); printf("Kalliskivid

\n"); printf("
\n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf("
\n"); printf("%s", format_time( $lang ) ); printf("
\n"); printf("

\n"); printf("
\n"); printf("
\n"); printf(" " ); $code = decipher_act( $action ); gen_menu( $code ); printf("
" ); printf("
\n"); // printf("
%s
", $pointer ); $db->gen_info( ); // Info field end printf("
\n"); printf("
© Maili\n"); printf(" Markvardt 2003
\n"); printf("
\n"); printf("
\n"); printf("\n"); printf("\n"); ?>