/** * konservas la sercxon en la serxo-tabelo. */ function konservuSercxon($nomo, $priskribo, $koditaSercxo, $id = '') { if ($id) { sxangxu_datumbazon("sercxoj", array("nomo" => $nomo, "priskribo" => $priskribo, "sercxo" => $koditaSercxo, "entajpanto" => $_SESSION['kkren']['entajpanto']), array('ID' => $id)); } else { aldonu_al_datumbazo("sercxoj", array("nomo" => $nomo, "priskribo" => $priskribo, "sercxo" => mysql_real_escape_string($koditaSercxo), "entajpanto" => $_SESSION['kkren']['entajpanto'])); } }
/** * konservas la serĉon en la serxo-tabelo. * La funkcias eldonas iun HTML-tekstan informon pri la rezulto. * * @param eostring $nomo la nomo, sub kiu ni savu la serĉon. * @param eostring $priskribo priskriba teksto pri la serĉo. * @param string $koditaSercxo serĉo-detaloj en kodita formo * @param int $id identigilo - se donita, ni ŝanĝos ekzistantan * serĉon, alikaze kreas novan. */ function konservuSercxon($nomo, $priskribo, $koditaSercxo, $id = '') { if ($id) { sxangxu_datumbazon("sercxoj", array("nomo" => $nomo, "priskribo" => $priskribo, "sercxo" => $koditaSercxo, "entajpanto" => $_SESSION['kkren']['entajpanto']), array('ID' => $id)); eoecho("<p>Serc^o #" . $id . " s^ang^ita.</p>"); } else { aldonu_al_datumbazo("sercxoj", array("nomo" => $nomo, "priskribo" => $priskribo, "sercxo" => mysql_real_escape_string($koditaSercxo), "entajpanto" => $_SESSION['kkren']['entajpanto'])); $id = mysql_insert_id(); eoecho("<p>Serc^o #" . $id . " aldonita.</p>"); } }
/** * @param Partopreno partopreno pp-objekto. * @param array $mangxmendo $_POST['mangxmendo'] * @todo: atentu, kiam iu malplilongigas sian partoprentempon. */ function traktu_mangxomendojn($partopreno, $mangxmendo) { $mangxolisto = listu_eblajn_mangxojn($partopreno); foreach ($mangxolisto as $mangxoID) { $antauxe_mendis = cxuMangxas($partopreno->datoj['ID'], $mangxoID); $nun_mendas = jesne_al_boolean($mangxmendo[$mangxoID]); if ($antauxe_mendis and !$nun_mendas) { forigu_el_datumbazo('mangxmendoj', array('partoprenoID' => $partopreno->datoj['ID'], 'mangxtempoID' => $mangxoID)); } else { if ($nun_mendas and !$antauxe_mendis) { aldonu_al_datumbazo('mangxmendoj', array('partoprenoID' => $partopreno->datoj['ID'], 'mangxtempoID' => $mangxoID)); } } } }
/** * @param array $noto_por listo de la formo id => JES/NE. */ function sxangxu_entajpantojn_por_noto($noto_por) { $jam_estas = $this->listu_entajpantojn_por_noto(); foreach ($noto_por as $id => $estu) { $estas = in_array($id, $jam_estas); echo "<!-- id: " . $id . ", estu: " . $estu . ", estas: " . $jam_estas . "\n -->"; if ($estu == 'JES' and !$estas) { // aldonu, la noto nun estas (ankaŭ) por li aldonu_al_datumbazo('notoj_por_entajpantoj', array('notoID' => $this->datoj['ID'], 'entajpantoID' => $id)); } else { if ($estu == 'NE' and $estas) { // forigu, la noto ne plu estas por li forigu_el_datumbazo('notoj_por_entajpantoj', array('notoID' => $this->datoj['ID'], 'entajpantoID' => $id)); } else { // jam estas en ordo, nenio farenda. } } } }
eoecho("<p>Kreis novan Malalig^kotizosistemon #" . $id . ".</p>\n"); } $_REQUEST['id'] = $id; // case kreu/kopiu break; case 'sxangxuKond': foreach ($_REQUEST['kondicxtipo'] as $kat => $tipo) { $sql = datumbazdemando("kondicxtipo", "malaligxkondicxoj", array("sistemo = '" . $_REQUEST['ID'] . "'", "aligxkategorio = '" . $kat . "'")); $linio = mysql_fetch_assoc(sql_faru($sql)); if ($linio) { if ($linio['kondicxtipo'] != $tipo) { sxangxu_datumbazon("malaligxkondicxoj", array("kondicxtipo" => $tipo), array("sistemo" => $_REQUEST['ID'], "aligxkategorio" => $kat)); eoecho("<p>S^ang^is kondic^on por kategorio #" . $kat . " de #" . $linio['kondicxtipo'] . " al #" . $tipo . ".\n</p>"); } } else { aldonu_al_datumbazo("malaligxkondicxoj", array("kondicxtipo" => $tipo, "sistemo" => $_REQUEST['ID'], "aligxkategorio" => $kat)); eoecho("<p>Aldonis kondic^on #" . $tipo . " por kategorio #" . $kat . ".\n</p>"); } } $_REQUEST['id'] = $_REQUEST['ID']; break; default: echo "<pre>"; var_export($_POST); echo "</pre>"; } if ($_REQUEST['id']) { $kondicxsistemo = new Malaligxkondicxsistemo($_REQUEST['id']); eoecho("<h1>Redaktado de malalig^kondic^sistemo " . $kondicxsistemo->datoj['nomo'] . "</h1>\n"); } else { eoecho("<h1>Nova malalig^kondic^sistemo</h1>");
if (!$nokto[$banto]) { $lito = "manko"; } else { $lito = $nokto[$banto]; $de = $banto; } do { $banto++; } while ($nokto[$banto] == $lito and $banto <= $renkontigxodauxro); if ($lito != "manko") { // $sql2 .= " '$lito','$de','".($banto-1)."')"; // sql_faru($sql2); $valoroj2["litonumero"] = $lito; $valoroj2["nokto_de"] = $de; $valoroj2["nokto_gxis"] = $banto - 1; aldonu_al_datumbazo("litonoktoj", $valoroj2); } } } } HtmlKapo(); if ($_SESSION["partoprenanto"]) { eoecho("Ni serc^as c^ambron por: <b>" . $_SESSION["partoprenanto"]->datoj[personanomo] . " " . $_SESSION["partoprenanto"]->datoj[nomo] . " [" . $_SESSION["partoprenanto"]->datoj[sekso] . "/" . $_SESSION["partopreno"]->datoj[cxambrotipo] . "/" . $_SESSION["partopreno"]->datoj['agxo'] . "] </b> de: " . $_SESSION["partopreno"]->datoj[de] . " g^is: " . $_SESSION["partopreno"]->datoj[gxis] . "<BR>\n"); if ($_SESSION["partopreno"]->datoj[renkontigxoID] != $_SESSION["renkontigxo"]->datoj[ID]) { erareldono("malg^usta renkontig^o!"); exit; } } // provizore nur tiel if ($cxambronumero) { $cxambronombro = $cxambronumero;
} $tipo = $_REQUEST['tipo']; HtmlKapo(); switch ($_REQUEST['sendu']) { case '': // (neniu buton-premado, simpla // voko de la pagxo) break; case 'sxangxu': sxangxu_datumbazon($tipo . "kategorisistemoj", array('nomo' => $_REQUEST['nomo'], 'priskribo' => $_REQUEST['priskribo']), array('ID' => $_REQUEST['ID'])); $_REQUEST['id'] = $_REQUEST['ID']; eoecho("<p>S^ang^is la bazajn datojn de la " . donu_eokatsisnomon($tipo) . " #" . $_REQUEST['id'] . ".</p>\n"); break; case 'kreu': case 'kopiu': aldonu_al_datumbazo($tipo . "kategorisistemoj", array('nomo' => $_REQUEST['nomo'], 'entajpanto' => $_REQUEST['entajpanto'], 'priskribo' => $_REQUEST['priskribo'])); $id = mysql_insert_id(); $sistemo = donu_katsistemon($id, $tipo); $_REQUEST['id'] = $id; if ($_REQUEST['sendu'] == 'kopiu') { $sistemo->kopiu_kategoriojn_el($_REQUEST['ID']); eoecho("<p>Kreis novan " . donu_eokatsisnomon($tipo) . " #" . $id . " kiel kopio de #" . $_REQUEST['ID'] . ".</p>\n"); } else { eoecho("<p>Kreis novan " . donu_eokatsisnomon($tipo) . " #" . $id . ".</p>\n"); } break; case 'katSxangxu': // -------------- Sxangxo de unuopaj kategorioj -------- if (DEBUG) { echo "<!-- GET: "; var_export($_GET);
$malnova_sistemo = new Kostosistemo($_REQUEST['id']); $nova_sistemo = new Kostosistemo(); $nova_sistemo->kopiu(); if ($nova_sistemo->datoj['nomo'] == $malnova_sistemo->datoj['nomo']) { erareldono("Ne povas esti du sistemoj kun sama nomo!"); } else { $nova_sistemo->skribu_kreante(); // TODO: kopiu kostotabelon, krompagojn kaj antauxpagojn, se eblas. // poste montru la novan sistemon $_REQUEST['id'] = $nova_sistemo->datoj['ID']; } break; // kopiu // kopiu case 'nova_fikskosto': aldonu_al_datumbazo("fikskostoj", array("nomo" => $_REQUEST['nomo'], "kosto" => $_REQUEST['kosto'], "kostosistemo" => $_REQUEST['id'])); break; // nova_fikskosto // nova_fikskosto default: echo "<pre>"; var_export($_REQUEST); echo "</pre>"; // TODO } // TODO eoecho("<h1>Redaktado de kostosistemo</h1>\n"); eoecho("<h2>Bazaj datumoj</h2>\n"); $sistemo = new Kostosistemo($_REQUEST['id']); echo "<form action='kostosistemo.php' method='POST'>\n"; // TODO: priskribo + nomo
/** * Protokolas la uzanton en la protokolo-tabelo, kun * nomo, pasvorto, komputilo, retumilo, tempo. */ function protokolu() { // global $HTTP_USER_AGENT; $de = gethostbyaddr($_SERVER["REMOTE_ADDR"]); $tempo = date("Y-m-d H:i:s"); // $sql = "insert into protokolo (deveno, ilo, entajpanto,kodvorto,tempo) VALUES ('$de','$HTTP_USER_AGENT','" . $_SESSION["kodnomo"] . "','" . $_SESSION["kodvorto"] . "','$tempo')"; // sql_faru($sql); aldonu_al_datumbazo("protokolo", array("deveno" => $de, "ilo" => $_SERVER["HTTP_USER_AGENT"], "entajpanto" => $_SESSION["kodnomo"], "tempo" => $tempo)); }
default: break; } $deziro = new Kunlogxdeziro($_REQUEST['kunlogxID']); montru_kunlogxdezirdetalojn($deziro); HtmlFino(); return; } if ($_REQUEST['partoprenoID']) { $_SESSION['partopreno'] = new Partopreno($_REQUEST['partoprenoID']); $_SESSION['partoprenanto'] = new Partoprenanto($_SESSION['partopreno']->datoj['partoprenantoID']); } if ($_SESSION['partopreno']) { switch ($_REQUEST['ago']) { case 'kunigu': aldonu_al_datumbazo("kunlogxdeziroj", array("partoprenoID" => $_REQUEST['partoprenoID'], "kunKiuID" => $_REQUEST['kunkiuID'], "stato" => '?')); eoecho("<p>Aldonis la kunlog^deziron de #" . $_REQUEST['partoprenoID'] . " kun #" . $_REQUEST['kunkiuID'] . " al la datumbazo."); break; case 'sercxu': $ri = $_SESSION['partoprenanto']->personapronomo; $Ri = ucfirst($ri); eoecho("<h2>Kunlog^deziroj de " . $_SESSION['partoprenanto']->tuta_nomo() . " (#" . $_SESSION['partopreno']->datoj['ID'] . ")</h2>"); eoecho("<p>{$Ri} volas log^i kun:</p>"); $nemontru = montru_kunlogxdezirojn($_SESSION['partopreno']); eoecho("<p>La jenaj aliaj personoj volas log^i kun {$ri}:</p>"); montru_kunlogxdezirojn_inversajn($_SESSION['partopreno']); if ($_SESSION['partopreno']->datoj['kunkiu']) { eoecho("<p>{$Ri} indikis en la alig^ilo, ke {$ri} volas log^i kun <em>" . $_SESSION['partopreno']->datoj['kunkiu'] . "</em>. Tio povus" . " esti unu el la sekvaj personoj:</p>"); sercxu_eblajn_kunlogxantojn($_SESSION['partopreno'], $_SESSION['partoprenanto']->tuta_nomo(), $nemontru); } else { eoecho("<p>{$Ri} ne indikis en {$ri}a alig^ilo iujn kunlog^dezirojn.</p>");
/** * aldonas aux sxangxas minimumajn antauxpagojn laux la entajpitajxo. */ function novaj_antauxpagoj() { if (DEBUG) { echo "<!-- REQUEST: "; var_export($_REQUEST); echo "-->"; } foreach ($_REQUEST['antauxpago'] as $lando => $pagoj) { $sql = datumbazdemando(array('oficiala_antauxpago', 'interna_antauxpago'), 'minimumaj_antauxpagoj', array("kotizosistemo = '" . $_REQUEST['id'] . "'", "landokategorio = '" . $lando . "'")); if ($linio = mysql_fetch_assoc(sql_faru($sql))) { if (count(array_diff_assoc($pagoj, $linio)) > 0) { // iu sxangxo sxangxu_datumbazon("minimumaj_antauxpagoj", $pagoj, array("kotizosistemo" => $_REQUEST['id'], 'landokategorio' => $lando)); } else { // neniu sxangxo (aux mankanta valoro?) } } else { // ankoraux ne ekzistas -> aldonu aldonu_al_datumbazo("minimumaj_antauxpagoj", array_merge($pagoj, array("kotizosistemo" => $_REQUEST['id'], 'landokategorio' => $lando))); } } }
/** * aldonas la tutan objekton al la datumbazo, * inkluzive de identifikilo kaj cxiuj datoj. * * Tiu funkciu estu uzata por cxiu objekto po maksimume unufoje, * kaj nur, kiam oni ne antauxe uzis kreu() aux la konstruilon kun ID. */ function skribu_kreante() { aldonu_al_datumbazo($this->tabelnomo, $this->datoj); $this->prenu_el_datumbazo(); }
/** * kopiado de landokategorio (la listo de la landoj por tiu kategorio) */ function finu_kopiadon_el($antauxa_katID, $antauxa_sistemoID) { // ankaux estus pli bona per insert ... select. $sql = datumbazdemando('landoID', 'kategorioj_de_landoj', array("sistemoID = '" . $antauxa_sistemoID . "'", "kategorioID = '" . $antauxa_katID . "'")); $rez = sql_faru($sql); while ($linio = mysql_fetch_assoc($rez)) { aldonu_al_datumbazo('kategorioj_de_landoj', array('kategorioID' => $this->datoj['ID'], 'sistemoID' => $this->datoj['sistemoID'], 'landoID' => $linio['landoID'])); } }
/** * Protokolas la uzanton en la protokolo-tabelo, kun * nomo, komputilo, retumilo, tempo. * * @param string $ago se donita, ni ankaŭ protokolas, kion la uzanto * nun faris. Ekzemploj estas "aliĝo", "elsaluto", * "ensaluto malsukcesa", "ensaluto sukcesa". */ function protokolu($ago = "") { $de = gethostbyaddr($_SERVER["REMOTE_ADDR"]); $tempo = date("Y-m-d H:i:s"); $entajpanto = $_SESSION['kodnomo'] or $entajpanto = "(aligxilo)"; aldonu_al_datumbazo("protokolo", array("deveno" => $de, "ilo" => $_SERVER["HTTP_USER_AGENT"], "entajpanto" => $entajpanto, "tempo" => $tempo, 'ago' => $ago)); }
HtmlFino(); return; } } if ($sendu) { // echo "<pre>"; // var_export($_POST); // echo "</pre>"; $sxangxlisto = array(); foreach (array("nomo", "kodo") as $tipo) { if ($_POST[$tipo]) { $sxangxlisto[$tipo] = $_POST[$tipo]; } } if ($_POST['ID'] == 'nova') { aldonu_al_datumbazo("landoj", $sxangxlisto); $num = mysql_insert_id(); eoecho("<p>Mi aldonis landon #" . $num . " al la tabelo.</p>"); $redaktu = $num; } else { sxangxu_datumbazon("landoj", $sxangxlisto, array("ID" => $_POST['ID'])); eoecho("<p>Mi s^ang^is landon #" . $_POST['ID'] . " en la tabelo.</p>"); } } if ($_REQUEST['redaktu']) { eoecho("<h1>Redakto de lando</h1>"); echo "<form method='POST' action='landoj.php'>\n"; if ($_REQUEST['redaktu'] == 'nova') { $linio = array("ID" => 'nova'); eoecho("<p> Ni aldonas novan landon</p>\n"); } else {
$sql = datumbazdemando(array('id', 'teksto'), "tekstoj", "mesagxoID = '" . $mesagxoID . "'", "renkontigxoID"); $rez = sql_faru($sql); if (mysql_num_rows($rez) > 0) { // se jes, ni eldonas erarmesagxon kaj ebligas novan provon. $linio = mysql_fetch_assoc($rez); erareldono("Jam ekzistas mesag^o kun tia identifikilo en la aktuala renkontig^o:"); echo "<pre>" . $linio['teksto'] . "</pre>"; eoecho("<p>Bonvolu elekti alian identifikilon (au^ "); ligu("nova_teksto.php?id=" . $linio['id'], "redaktu la originalan tekston"); eoecho(".)"); // require('nova_teksto.php'); HtmlFino(); exit; } else { // Alikaze ni aldonas la novan tekston al la datumbazo. aldonu_al_datumbazo('tekstoj', array('renkontigxoID' => $_SESSION['renkontigxo']->datoj['ID'], 'mesagxoID' => $mesagxoID, 'teksto' => $teksto)); $sql = datumbazdemando('id', 'tekstoj', "mesagxoID = '{$mesagxoID}'", "renkontigxoID"); $rez = mysql_fetch_assoc(sql_faru($sql)); $_REQUEST['id'] = $rez['id']; eoecho("<p>Aldonis la sekvan tekston #" . $rez['id'] . " kun identifikilo '{$mesagxoID}' al la renkontig^o '" . $_SESSION['renkontigxo']->datoj['mallongigo'] . "' (#" . $_SESSION['renkontigxo']->datoj['ID'] . "):</p>"); echo "<pre>" . $teksto . "</pre>"; } } else { if ($_POST['sendu'] == 'sxangxu') { eoecho("<h2>S^ang^o de Teksto</h2>"); // unue ni rigardas, cxu teksto kun sama identifikilo // jam estas en la datumbazo (li estu!) $sql = datumbazdemando(array('mesagxoID', 'teksto', 'renkontigxoID'), "tekstoj", array("id = '" . $id . "'")); $rez = sql_faru($sql); if (mysql_num_rows($rez) != 1) { // tro multe aux tro malmulte
} } foreach ($rajtolisto as $rajto => $alias) { if ($_POST[$rajto]) { $sxangxlisto[$rajto] = $_POST[$rajto][0]; } } if ($_POST['pasvortsxangxo'] == 'jes') { if ($_POST['kodvorto']) { $sxangxlisto['kodvorto'] = $_POST['kodvorto']; } else { erareldono("Vi petis pri s^ang^o de pasvorto, sed ne donis novan!"); } } if ($_POST['ID'] == 'nova') { aldonu_al_datumbazo("entajpantoj", $sxangxlisto); $num = mysql_insert_id(); eoecho("<p>Mi aldonis linion #" . $num . " al la tabelo.</p>"); if ($redaktu == 'nova') { $redaktu = $num; } } else { sxangxu_datumbazon("entajpantoj", $sxangxlisto, array("ID" => $_POST['ID'])); eoecho("<p>Mi s^ang^is linion #" . $_POST['ID'] . " en la tabelo.</p>"); } } if ($redaktu) { eoecho("<h1>Redakto de entajpanto</h1>"); echo "<form method='POST' action='entajpantoj.php'>\n"; if ($redaktu == 'nova') { $linio = array("ID" => 'nova');