function metu_mangxtabelkapon($renkontigxodauxro, $komenctago) { echo "<table>\n"; echo "<tr><td/><td/>"; $listo = array(); for ($tagoj = 0; $tagoj <= $renkontigxodauxro; $tagoj++) { $dato = sekvandaton($komenctago, $tagoj); $listo[] = $dato; $ar = JMTdisigo($dato); $tago = $ar['tago']; echo "<th>" . $tago . "</th>"; } echo "</tr>\n"; return $listo; }
/** * kontrolas, ĉu enmetita dato estas valida. * * @param string $io dato en formato jaro-monato-tago * @return boolean true, se ĝi estas valida. * @uses checkdate() */ function kontrolu_daton($io) { $ar = JMTdisigo($io); //checkdate uzas iom strangan sinsekvon de la dato-komponentoj. return checkdate($ar['monato'], $ar['tago'], $ar['jaro']); }
function kontrolu_daton($io) { /* list($jaro,$monato,$tago) = */ $ar = JMTdisigo($io); if ($ar[tago] == "" or $ar[monato] == "" or $ar[jaro] == "") { return ""; } return checkdate($ar[monato], $ar[tago], $ar[jaro]); //checkdate bezonas (M-T-Y), sed mi uzas Y-M-T }
/** * Montras la aktualan staton de cxambro. * $grandeco: - se ne donita aux "malgranda", montras nur * - se "granda", ... * verda se estas tauxga * rugxa se ne tauxgas (pro sekso) */ function montru_cxambron($cxambro, $renkontigxo, $partoprenanto, $partopreno, $grandeco = "malgranda") { $cxam_sql = datumbazdemando(array("litonombro", "nomo", "tipo", "etagxo", "dulita", "rimarkoj"), "cxambroj", "ID = '{$cxambro}'"); $cxam_rezulto = sql_faru($cxam_sql); $row = mysql_fetch_array($cxam_rezulto, MYSQL_BOTH); if (tauxgas($partopreno->datoj[cxambrotipo], $partoprenanto->datoj[sekso], $row[tipo])) { $koloro = "green"; } else { if ($row[tipo] == '') { $koloro = "black"; } else { $koloro = "red"; } } if ($grandeco == "granda") { ligu("cxambroj.php?etagxo=" . $row[etagxo], "Etag^o " . $row[etagxo]); echo " |"; } ligu("cxambroj.php?cxambronombro={$cxambro}", "C^ambro: {$row['nomo']}"); echo "<font color={$koloro}><strong>"; if ($row[tipo] == "v") { echo " (vira)"; } else { if ($row[tipo] == "i") { echo " (ina)"; } else { if ($row[tipo] == "g") { echo " (gea)"; } else { echo " (nedifinita)"; } } } echo "</strong></font>\n"; rajtligu("kreu_cxambron.php?id={$cxambro}", $grandeco == 'granda' ? "redaktu bazajn informojn" : "red.", "", "teknikumi", "ne"); if ($grandeco == "granda") { //sxangxi la cxambrotipon echo "<form action='cxambroj.php?cxambronombro={$cxambro}' method='post'>"; entajpbutono("(", "tipo", $row[tipo], "g", "g", 'gea'); entajpbutono("", "tipo", $row[tipo], "v", "v", 'vira'); entajpbutono("", "tipo", $row[tipo], "i", "i", 'ina)'); entajpbokso("[", dulita, $row[dulita], J, J, "dulita c^ambro]"); entajpejo("<BR>Rimarkoj:", "rimarkoj", $row[rimarkoj], 20); send_butono("Ek!"); echo "</form>"; } $renkontigxdauxro = kalkulu_tagojn($renkontigxo->datoj[de], $renkontigxo->datoj[gxis]); $partoprentagoj = kalkulu_tagojn($partopreno->datoj[de], $partopreno->datoj[gxis]); if ($partoprenanto->datoj[ID] and $grandeco == "granda") { echo "<form ACTION='cxambroj.php?cxambronombro={$cxambro}' METHOD='POST'>\n"; } echo "<Table border><TR><TD>Nokto: "; if ($grandeco == "granda") { $manko = eltrovu_litojn($partopreno->datoj[ID]); $ar = JMTdisigo($renkontigxo->datoj[de]); $tago = $ar[tago]; for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) { $ar = JMTdisigo(sekvandaton($renkontigxo->datoj[de], $noktoj)); $sektago = $ar[tago]; echo "<TD align=\"center\"> {$tago} / {$sektago}"; $tago = $sektago; } echo "<TD><TD align=\"center\">tuta tempo"; } else { for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) { echo "<TD>{$noktoj}</noktoj>"; } } for ($litoj = 1; $litoj <= $row[litonombro]; $litoj++) { echo "<TR valign = center>\n<TD nowrap>Lito: " . $litoj; $uzata = false; for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) { $r = cxambro_uzata($cxambro, $noktoj, $litoj); $diferenco = $r[nokto_gxis] - $noktoj; echo "<TD align = center "; if ($diferenco > 0) { $noktoj += $diferenco++; //TODO:? hehe [respondo de Martin:] Das ist einfach nur eine geniale Funktion. echo "colspan = {$diferenco} "; } if ($r[rezervtipo] == "d") { echo " bgcolor=green> "; $uzata = true; } else { if ($r[rezervtipo] == "r") { echo " bgcolor=yellow> "; $uzata = true; } else { if ($partoprenanto and $grandeco == "granda" and sekvandaton($renkontigxo->datoj[de], $noktoj - 1) >= $partopreno->datoj[de] and sekvandaton($renkontigxo->datoj[de], $noktoj) <= $partopreno->datoj[gxis] and $manko[$noktoj] != "1") { echo ""; entajpbokso(">", "nokto[{$noktoj}]", "falseoderso", "", "{$litoj}", "", "", "ne"); } else { echo " bgcolor=white>--"; } } } echo "<A href = \"partrezultoj.php?partoprenidento={$r['3']}&partoprenantoidento={$r['0']}\" onClick=\"doSelect({$r['0']});\">"; if (($grandeco == "granda" or $diferenco > 3) and $r[partoprenantoID]) { $loka_partoprenanto = new Partoprenanto($r[partoprenantoID]); $teksto = $loka_partoprenanto->datoj[personanomo] . " " . $loka_partoprenanto->datoj[nomo] . " (" . eltrovu_landon($loka_partoprenanto->datoj[lando]) . " / " . $loka_partoprenanto->datoj[sekso] . "/" . $loka_partopreno->datoj[agxo] . ")"; if ($grandeco == "granda") { eoecho($teksto . "<BR> "); } else { eoecho($teksto); } //eoecho (/*substr*/($teksto,0,$diferenco*3)); } if ($diferenco > 3 and !$r[partoprenantoID] or $grandeco == "granda") { switch ($r[rezervtipo]) { case "d": echo "disdonita"; break; case "r": echo "rezervita"; break; } } else { if ($diferenco < 4) { echo $r[rezervtipo]; } } echo "</A>"; } if ($partoprenanto and $grandeco == "granda") { echo "<TD> <TD align=center>"; if ($uzata == false and $partoprentagoj == $renkontigxdauxro and $manko[sumo] == 0) { entajpbokso("", "tute", "falseoderso", "", "{$litoj}", "", "", "ne"); } } } echo "</Table>"; if ($partoprenanto->datoj[ID] and $grandeco == "granda") { echo "<select name=\"tipo\" size=1>\n"; echo "<option selected>rezervi\n"; echo "<option>disdoni\n"; echo "</select><BR>\n"; send_butono("Faru!"); echo "</FORM>"; } if ($grandeco != "granda") { eoecho($row[rimarkoj]); } }
// TODO: eble iam renomu al cxambrostatistiko require_once "iloj/iloj.php"; require_once 'iloj/fpdf/fpdf.php'; session_start(); malfermu_datumaro(); if (!rajtas("administri")) { ne_rajtas(); } HtmlKapo(); echo "<Table border=1>"; echo "<TR><TD>"; $renkontigxdauxro = kalkulu_tagojn($_SESSION["renkontigxo"]->datoj[de], $_SESSION["renkontigxo"]->datoj[gxis]); $ar = JMTdisigo($_SESSION["renkontigxo"]->datoj[de]); $tago = $ar[tago]; for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) { $ar = JMTdisigo(sekvandaton($_SESSION["renkontigxo"]->datoj[de], $noktoj)); $sektago = $ar[tago]; echo "<TD align=center> {$tago}/{$sektago}"; $tago = $sektago; } /** * */ function montru_laux_tage($nomo, $noktonombro, $sql, $klaso) { eoecho("<tr class='" . $klaso . "'><th>" . $nomo . "</th>"); // echo "<!-- noktonombro: $noktonombro -->"; for ($noktoj = 1; $noktoj <= $noktonombro; $noktoj++) { // echo "<!-- noktoj: $noktoj -->"; $vera_sql = str_replace('{{nokto}}', $noktoj, $sql); echo "<!-- vera_sql: [{$vera_sql}] -->\n";
/** * Montras la aktualan staton de ĉambro. * $grandeco: - se ne donita aŭ "malgranda", montras nur * - se "granda", ... * verda se estas taŭga * ruĝa se ne taŭgas (pro sekso) * * @todo transformu en pli bone uzeblan funkcio(j)n */ function montru_cxambron($cxambroID, $renkontigxo, $partoprenanto, $partopreno, $grandeco = "malgranda", $reenligo = "") { $cxambro = new Cxambro($cxambroID); $row = $cxambro->datoj; if ($grandeco == "granda") { ligu("cxambroj.php?etagxo=" . $row['etagxo'], "Etag^o " . $row['etagxo']); echo " |"; } ligu("cxambro-detaloj.php?cxambronumero=" . $cxambroID, "C^ambro: " . $row['nomo']); montru_cxambrosekson($row['tipo'], $partopreno, $partoprenanto); rajtligu("kreu_cxambron.php?id={$cxambroID}", $grandeco == 'granda' ? "redaktu bazajn informojn" : "red.", "", "teknikumi", "ne"); if ($grandeco == "granda") { //formularo por sxangxi la cxambrotipon formularo_por_bazaj_cxambroinformoj($cxambro); } $renkontigxdauxro = $renkontigxo->renkontigxonoktoj(); $partoprentagoj = is_object($partopreno) ? $partopreno->partoprennoktoj() : 0; echo "<form action='cxambroago.php' method='POST'>\n"; tenukasxe("cxambronumero", $cxambroID); if (!$reenligo) { if ($_SERVER['REQUEST_METHOD'] == "GET") { $reenligo = $_SERVER['PHP_SELF']; if ($_SERVER['QUERY_STRING']) { $reenligo .= "?" . $_SERVER['QUERY_STRING']; } } } if ($reenligo) { tenukasxe("reiru", $reenligo); } echo "<table class='cxambrolisto-{$grandeco}'><tr><th>Nokto:</th>"; if ($grandeco == "granda") { $manko = eltrovu_litojn($partopreno->datoj['ID']); $ar = JMTdisigo($renkontigxo->datoj['de']); $tago = $ar['tago']; $estis_elektebleco = false; // cxu estis ebla elekti liton por nokto? for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) { $ar = JMTdisigo(sekvandaton($renkontigxo->datoj['de'], $noktoj)); $sektago = $ar['tago']; echo "<th align='center'> {$tago} / {$sektago} </th>"; $tago = $sektago; } if ($partoprenanto) { // ebleco mendi tutan tempon echo "<td/><th>tuta tempo</th>"; } echo "</th>"; } else { // simpla noktolisto for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) { echo "<th>{$noktoj}</th>"; } } echo "</tr>"; for ($litoj = 1; $litoj <= $row['litonombro']; $litoj++) { echo "<tr >\n<th class='litonomo'>Lito: " . $litoj . "</th>"; $uzata = false; for ($noktoj = 1; $noktoj <= $renkontigxdauxro; $noktoj++) { // detaloj pri la rezervado $r = cxambro_uzata($cxambroID, $noktoj, $litoj); if ($r) { $uzata = true; $noktoj += metu_partoprenant_litan_keston($r, $noktoj, $partopreno->datoj['ID'], $grandeco); } else { if ($partoprenanto and $grandeco == "granda" and sekvandaton($renkontigxo->datoj['de'], $noktoj - 1) >= $partopreno->datoj['de'] and sekvandaton($renkontigxo->datoj['de'], $noktoj) <= $partopreno->datoj['gxis'] and $manko[$noktoj] != "1") { // ebligu mendi tiun liton por tiu nokto echo "<td class='elektebla'>"; entajpbokso("", "nokto[{$noktoj}]", "falseoderso", "", "{$litoj}", "", "", "ne"); echo "</td>"; $estis_elektebleco = true; } else { echo "<td class='malplena'>--</td>"; } } // else } // for (noktoj) if ($partoprenanto and $grandeco == "granda") { // mendi cxiujn noktojn? echo "<td> </td><td class='elektebla'>"; if ($uzata == false and $partoprentagoj == $renkontigxdauxro and $manko['sumo'] == 0) { entajpbokso("", "tute", "falseoderso", "", "{$litoj}", "", "", "ne"); } echo "</td>"; } echo "</tr>"; } // for (litoj) echo "</table>"; if ($partoprenanto->datoj['ID'] and $grandeco == "granda") { if ($estis_elektebleco) { // butono por rezervi butono('rezervu', "Rezervu elektitajn litojn"); // butono por disdoni - TODO: aux cxu nur surloke? butono('disdonu', "Disdonu elektitajn litojn"); } // echo "<select name='tipo' size='1'>\n"; // echo "<option selected>rezervi\n"; // echo "<option>disdoni\n"; // echo "</select><BR>\n"; // send_butono("Faru!"); } echo "</form>"; if ($grandeco != "granda") { eoecho($row[rimarkoj]); } }