Пример #1
1
/**
 * Kontrolas iun rajton de la aktuala uzanto.
 *
 * Faras demandon al la datumbazo tiucele.
 * @param $ago nomo de kolumno en la rajto-tabelo.
 * @return boolean true, se la uzanto havas tiun rajton,
 *                 false alikaze (ankaŭ se la uzanto ne
 *                  ekzistas aŭ pasvorto malĝustas).
 * @global string _SESSION["kodvorto"]  la pasvorto de la
 *                 uzanto, uzata por kontroli.
 * @global string _SESSION["kodnomo"] la uzantonomo por
 *                 kontroli la rajton.
 */
function rajtas($ago)
{
    $sql = datumbazdemando(array($ago, "kodvorto"), "entajpantoj", "nomo = '" . $_SESSION["kodnomo"] . "'", "", array("order" => "id"));
    $row = mysql_fetch_assoc(sql_faru($sql));
    return $row and $row['kodvorto'] == $_SESSION['kodvorto'] and 'J' == $row[$ago];
}
Пример #2
0
/**
 * kreas liston de la aligxintoj en array-formo.
 *
 * @param int $renkontigxoID
 * @param string $ordigo
 * @param lingvokodo $lingvo
 *
 * @return array du-dimensia array de la formo: <code>
 *   array( array('sxildnomo' => ...,
 *                'personanomo' => ...,
 *                'fam' => ...,
 *                'urbo' => ...,
 *                'landoid' => (ID de la lando),
 *                'sxildlando' => (eble alia lando indikita de la aligxinto),
 *                'partoprenoID' => (identigilo de la partopreno),
 *                'ordigoID' => (numero por uzo eble anstataux
 *                               la partoprenoID),
 *                'lando' => (la lando-objekto),
 *                'landonomo' => (nomo de la lando post traduko),
 *                'ordigo' => (aux ordigoID aux partoprenoID),
 *               ),
 *          array(...),
 *          ...)
 *   </code>
 * Gxi jam estas ordigita laux la petata maniero.
 */
function &kreu_aligxintoliston($renkontigxoID, $ordigo, $lingvo)
{
    $sql = datumbazdemando(array("p.sxildnomo", "p.personanomo", "p.nomo" => "fam", "p.urbo" => 'urbo', "p.lando" => "landoid", "p.sxildlando" => 'sxildlando', "pn.ID" => 'partoprenoID', "pn.ordigoID"), array("partoprenantoj" => "p", "partoprenoj" => "pn"), array("p.ID = pn.partoprenantoID", "alvenstato = 'v'", "pn.listo = 'J'", "pn.renkontigxoID" => $renkontigxoID), "", array("order" => "pn.ID"));
    $rez = sql_faru($sql);
    $landolisto = array();
    $listo = array();
    while ($linio = mysql_fetch_assoc($rez)) {
        if ($linio['ordigoID'] != 0.0) {
            $linio['ordigo'] = (double) $linio['ordigoID'];
        } else {
            $linio['ordigo'] = (double) $linio['partoprenoID'];
        }
        if (!isset($landolisto[$linio['landoid']])) {
            $landolisto[$linio['landoid']] =& new Lando($linio['landoid']);
        }
        $linio['lando'] =& $landolisto[$linio['landoid']];
        $linio['landonomo'] = $linio['lando']->tradukita('nomo', $lingvo);
        $listo[] = $linio;
    }
    $komparilo = donu_komparilon($ordigo);
    metu_ordigolokalajxon($lingvo);
    if (!usort($listo, $komparilo)) {
        darf_nicht_sein("ordigado ne funkciis");
    }
    debug_echo("<!--" . var_export($listo, true) . "-->\n");
    $nombro_entute = eltrovu_gxenerale("COUNT(*)", "partoprenoj", array("renkontigxoID" => $renkontigxoID, "alvenstato" => 'v'));
    $nombro_landoj = eltrovu_gxenerale("COUNT(DISTINCT p.lando)", array("partoprenoj" => "pn", "partoprenantoj" => "p"), array("renkontigxoID" => $renkontigxoID, "alvenstato" => 'v', "pn.partoprenantoID = p.ID"));
    return array($listo, $nombro_entute, $nombro_landoj);
}
function montru_konfiguran_liston()
{
    eoecho("\n<h2>Renkontig^o-konfiguroj</h2>\n<p>Jen maniero konfiguri detalojn de via renkontig^o.</p>\n<ul>\n");
    //       TODO: ligo al helpoteksto
    foreach ($GLOBALS['konfiguraj_tipoj'] as $tipo => $titolo) {
        echo "  <li>";
        ligu("#" . $tipo, $titolo[0]);
        echo "</li>\n";
    }
    echo "</ul>\n";
    foreach ($GLOBALS['konfiguraj_tipoj'] as $tipo => $titolo) {
        eoecho("<h3 id='" . $tipo . "'>" . $titolo[0] . "</h3>");
        eoecho("<table>\n   <tr>\n      <th>ID</th><th>grupo</th><th>interna</th>\n      <th>teksto</th><th>rimarko</th>\n   </tr>\n");
        $sql = datumbazdemando(array('ID', 'grupo', 'interna', 'teksto', 'aldona_komento'), 'renkontigxaj_konfiguroj', array('tipo' => $tipo), 'renkontigxoID', array('order' => 'grupo ASC, interna ASC'));
        $rez = sql_faru($sql);
        while ($linio = mysql_fetch_assoc($rez)) {
            echo "<tr><td>";
            ligu("renkontigxaj_konfiguroj.php?id=" . $linio['ID'], $linio['ID']);
            eoecho("</td><td>" . $linio['grupo'] . "</td><td>" . $linio['interna'] . "</td><td>" . $linio['teksto'] . "</td><td>" . $linio['aldona_komento'] . "</td></tr>\n");
        }
        echo "</table>\n";
        echo "<p>";
        ligu("renkontigxaj_konfiguroj.php?id=nova&tipo=" . $tipo, "kreu novan " . $titolo[1] . "n");
        echo "</p>";
    }
    // foreach tipo/titolo
}
Пример #4
0
/**
 * serĉas partoprenon por partoprenanto, kaj metas ĝin
 * en la sesion.
 * @param int $ppantoID Partoprenanto-identigilo.
 * @param int $ppenoID Partopreno-identigilo. Se ne 0,
 *           ni simple vokas {@link sesio_aktualigu_ppenon()}.
 *           Alikaze ni serĉas taŭgan partoprenon por $ppantoID,
 *           kaj metas tiun en la sesion.
 * @uses sesio_aktualigu_ppenon()
 * @return int se ni sukcesis, 1, alikaze la nombron de diversaj
 *             kandidatoj.
 */
function sesio_trovu_ppenon($ppantoID, $ppenoID = 0)
{
    debug_echo("<!-- trovu_ppenon(" . $ppantoID . ", " . $ppenoID . ") -->");
    if ($ppenoID) {
        sesio_aktualigu_ppenon($ppenoID);
        return 1;
    } else {
        if ($_SESSION['partopreno'] and $_SESSION['partopreno']->datoj['partoprenantoID'] == $ppantoID) {
            // ni havas jam unu partoprenon, kaj ĝi estas
            //  por la ĝusta partoprenanto.
            sesio_aktualigu_ppenon($_SESSION['partopreno']->datoj['ID']);
            return 1;
        }
        // malfacila kazo
        $sql = datumbazdemando("ID", "partoprenoj", array("partoprenantoID = '" . $ppantoID . "'"), array("renkontigxo" => "renkontigxoID"));
        $rez = sql_faru($sql);
        $num_pp = mysql_num_rows($rez);
        if ($num_pp == 1) {
            // precize unu partopreno por la aktuala
            // renkontiĝo - prenu tiun.
            $linio = mysql_fetch_assoc($rez);
            sesio_aktualigu_ppenon($linio['ID']);
        } else {
            // ne estas ununura taŭga partopreno por tiu ĉi
            // partoprenanto.
            unset($_SESSION['partopreno']);
        }
        // eble la vokanto volas scii, kiom da aliĝoj estis.
        return $num_pp;
    }
}
Пример #5
0
/**
 * kontrolas, cxu la nuna uzanto (identifikata per la
 * globalaj variabloj $kodnomo kaj $kodvorto) havas la
 * rajton $ago.
 * redonas TRUE aux FALSE.
 */
function rajtas($ago)
{
    $sql = datumbazdemando($ago, "entajpantoj", array("nomo = '" . $_SESSION["kodnomo"] . "'", "kodvorto = '" . $_SESSION["kodvorto"] . "'"), "", array("order" => "id"));
    $result = sql_faru($sql);
    if ($row = mysql_fetch_array($result, MYSQL_BOTH) and $row[$ago] == "J") {
        return true;
    } else {
        return false;
    }
}
function faru_SQL($sql)
{
    echo $sql . "\n";
    if (INSTALA_MODUSO) {
        eoecho("faranta ...");
        flush();
        sql_faru($sql);
        eoecho("farita!\n");
    }
}
function aligilo_aligxinto_listo($renkontigxoID, $lingvo, $ordigo)
{
    $prafix = $GLOBALS['prafix'] = get_option("aligilo-prafix");
    require_once $GLOBALS['prafix'] . "/iloj/iloj.php";
    malfermu_datumaro();
    $sql_listo = datumbazdemando(array("COUNT(pn.ID)" => "nombro"), array("partoprenantoj" => "p", "partoprenoj" => "pn"), array("p.ID = pn.partoprenantoID", "pn.alvenstato = 'v'", "pn.listo = 'J'", "pn.renkontigxoID ='{$renkontigxoID}'"));
    $rez_listo = sql_faru($sql_listo);
    $linio = mysql_fetch_assoc($rez_listo);
    $nombro_listo = $linio['nombro'];
    $sql_listo = datumbazdemando(array("COUNT(pn.ID)" => "nombro"), array("partoprenantoj" => "p", "partoprenoj" => "pn"), array("p.ID = pn.partoprenantoID", "pn.alvenstato = 'v'", "pn.renkontigxoID ='{$renkontigxoID}'"));
    $rez_listo = sql_faru($sql_listo);
    $linio = mysql_fetch_assoc($rez_listo);
    $nombro_chiuj = $linio['nombro'];
    $sql_landoj = datumbazdemando(array("COUNT(distinct p.lando)" => "nombro"), array("partoprenantoj" => "p", "partoprenoj" => "pn"), array("p.ID = pn.partoprenantoID", "pn.alvenstato = 'v'", "pn.renkontigxoID ='{$renkontigxoID}'"));
    echo "<!-- {$sql_landoj} -->";
    $rez_listo = sql_faru($sql_landoj);
    $linio = mysql_fetch_assoc($rez_listo);
    $nombro_landoj = $linio['nombro'];
    $sql = datumbazdemando(array("IF(p.sxildnomo<> '', p.sxildnomo, p.personanomo)" => 'persona', "p.nomo" => 'fam', "p.urbo" => 'urbo', "p.sxildlando" => 'sxildo', "l.nomo" => 'lando_eo', "l.lokanomo" => 'lando_de'), array("partoprenantoj" => "p", "partoprenoj" => "pn", "landoj" => "l"), array("p.ID = pn.partoprenantoID", "alvenstato <> 'm'", "p.lando = l.ID", "pn.listo = 'J'", "pn.renkontigxoID ='{$renkontigxoID}'"), "", array("order" => "p.personanomo ASC, p.nomo ASC"));
    $tabelo = "<tbody>";
    $rez = sql_faru($sql);
    while ($linio = mysql_fetch_array($rez)) {
        $tabelo .= "<tr>\n";
        $tabelo .= "  <td  style='text-align: right; padding-right:0.3em;'>";
        $tabelo .= uni($linio['persona']);
        $tabelo .= "</td>\n<td>";
        /*         if ($linio['fam']{1} == '^')
                     {
                         $fam = substr($linio['fam'], 0,2);
                     }
                 else
                     {
                         $fam = mb_substr($linio['fam'], 0, 1, "utf-8");
                     }
                 */
        $fam = $linio['fam'];
        $tabelo .= uni($fam);
        $tabelo .= "</td>\n  <td>";
        if ($linio['sxildo']) {
            $tabelo .= uni($linio['sxildo']);
        } else {
            if ($lingvo == 'de') {
                $tabelo .= uni($linio['lando_de']);
            } else {
                $tabelo .= uni($linio['lando_eo']);
            }
        }
        $tabelo .= "</td>\n  <td>";
        $tabelo .= uni($linio['urbo']);
        $tabelo .= "</td>\n</tr>\n";
    }
    $tabelo .= "</tbody>\n";
    return compact("tabelo", "nombro_landoj", "nombro_listo", "nombro_chiuj");
}
function montru_kunlogxdezirojn($partopreno)
{
    $sql = datumbazdemando(array("k.ID", "k.kunKiuID", 'k.stato', "pa.nomo", "pa.personanomo", "p.kunKiu", "p.partoprenantoID"), array("kunlogxdeziroj" => "k", "partoprenoj" => "p", "partoprenantoj" => "pa"), array("k.partoprenoID = '" . $partopreno->datoj['ID'] . "'", "k.kunKiuID = p.ID", "p.partoprenantoID = pa.ID"));
    sercxu($sql, array("pa.personanomo, pa.nomo", "ASC"), array(array("ID", "", "->", "z", "kunlogxado.php?kunlogxID=XXXXX", "partoprenantoID"), array("kunKiuID", "ID", "XXXXX", "r", "partrezultoj.php?partoprenidento=XXXXX", "partoprenantoID"), array("personanomo", "pers. nomo", "XXXXX", "l"), array("nomo", "nomo", "XXXXX", "l"), array("stato", "stato", "XXXXX", "l"), array("kunKiu", "volas log^i kun", "XXXXX", "l")), array(), "kunlogxantoj_de_ulo", array("anstatauxo_funkcio" => array(4 => 'kunlogx_stato')), 0, "", "", "ne");
    $rez = sql_faru(datumbazdemando("kunKiuID", "kunlogxdeziroj", "partoprenoID = '" . $partopreno->datoj['ID'] . "'"));
    $kunlogxantoj = array();
    while ($linio = mysql_fetch_assoc($rez)) {
        $kunlogxantoj[] = $linio['kunKiuID'];
    }
    return $kunlogxantoj;
}
function aligilo_aligxintoj_nombro()
{
    $prafix = get_option("aligilo-prafix");
    $GLOBALS['prafix'] = $prafix;
    $renkID = get_option("aligilo-renkontigxo");
    require_once $prafix . "/iloj/iloj.php";
    malfermu_datumaro();
    $sql = datumbazdemando(array("COUNT(*)" => "num"), array("partoprenoj" => "p"), array("p.alvenstato = 'v'", "p.renkontigxoID = '{$renkID}'"));
    $rez = sql_faru($sql);
    $linio = mysql_fetch_assoc($rez);
    return $linio['num'];
}
Пример #10
0
function listu_kurzojn_por($valuto)
{
    $sql = datumbazdemando(array('dato', 'kurzo', 'ID'), 'kurzoj', array('valuto' => $valuto), "", array('order' => 'dato ASC'));
    $rez = sql_faru($sql);
    echo "<table class='kurzolisto'>\n";
    while ($linio = mysql_fetch_assoc($rez)) {
        echo "  <tr><td>";
        ligu("kurzoj.php?id=" . $linio['ID'], "red.");
        echo "</td><td>" . $linio['dato'] . "</td><td>" . $linio['kurzo'] . "</td></tr>\n";
    }
    echo "</table>\n";
}
 /**
  * trovas kaj redonas la kondicxo-objekton por tiu cxi
  *  malaligxkondicxosistemo kaj la menciita aligxkategori-objekto.
  */
 function donu_kondicxon($aligxkategorio)
 {
     if (is_object($aligxkategorio)) {
         $aligxkategorio = $aligxkategorio->datoj['ID'];
     }
     $sql = datumbazdemando("kondicxtipo", "malaligxkondicxoj", array("sistemo = '" . $this->datoj['ID'] . "'", "aligxkategorio = '" . $aligxkategorio . "'"));
     $linio = mysql_fetch_assoc(sql_faru($sql));
     if (!$linio) {
         return null;
     }
     return new Malaligxkondicxotipo($linio['kondicxtipo']);
 }
/**
 * Listas la renkontiĝo-konfigurojn de donita tipo por iu renkontiĝo.
 * @param asciistring $tipo unu el "pagotipo", "valuto", "rabatotipo",
 *        "kromtipo" kaj "logxtipo".
 * @param Renkontigxo|int $renkontigxo (aux ID de tiu)
 * @return array ({@link Renkontigxa_konfiguro})
 */
function listu_konfigurojn($tipo, $renkontigxo = "")
{
    $renkontigxo = kreuRenkontigxon($renkontigxo);
    $sql = datumbazdemando(array("ID", "grupo", "interna"), "renkontigxaj_konfiguroj", array('tipo' => $tipo, 'renkontigxoID' => $renkontigxo->datoj['ID']), "", array('order' => "grupo ASC, interna ASC"));
    $rez = sql_faru($sql);
    $listo = array();
    while ($linio = mysql_fetch_assoc($rez)) {
        $konf = new Renkontigxa_konfiguro($linio["ID"]);
        $listo[] = $konf;
    }
    return $listo;
}
/**
 *
 */
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";
        $row = mysql_fetch_array(sql_faru($vera_sql));
        echo "<td>" . $row[0] . "</td>";
    }
    echo "</tr>\n";
}
Пример #14
0
/**
 * eltrovas la lastan kurzon de valuto ĝis iu dato.
 *
 * @param asciistring $valuto
 * @param datostring $dato (se forlasita, la nuna dato)
 * @return array (kurzo, dato)
 */
function eltrovu_kurzon($valuto, $dato = "")
{
    if ($valuto == CXEFA_VALUTO) {
        return array(1.0, null);
    }
    if (!$dato) {
        $dato = date("y-m-d");
    }
    $sql = datumbazdemando(array('kurzo', 'dato'), 'kurzoj', array('valuto' => $valuto, "dato <= '{$dato}'"), "", array('order' => 'dato DESC', 'limit' => '0,1'));
    $linio = mysql_fetch_assoc(sql_faru($sql));
    if ($linio) {
        return array($linio['kurzo'], $linio['dato']);
    } else {
        return null;
    }
}
Пример #15
0
/**
 * Donas tekston el la datumbazo.
 *
 * $identifikilo  - la mesagxidentifikilo (litercxeno).
 *                  pri la signifoj rigardu pli supre en
 *                  la dokumentado de la dosiero.
 *
 * $renkontigxo   - objekto de la klaso Renkontigxo (-> objektoj).
 *                  Ni sercxas la tekston por tiu renkontigxo.
 *
 *                  Vi povas ankaux forlasi gxin aux uzi "",
 *                  tiam la metodo uzas la sesio-variablo
 *                  $renkontigxo (se ekzistas) aux la globala
 *                  variablo $renkontigxo
 *
 * Se la teksto ne ekzistas, la metodo anstatauxe 
 * redonas erarmesagxon ("la teksto ... ne trovigxis.")
 */
function donu_tekston($identifikilo, $renkontigxo = "")
{
    if ($renkontigxo == "") {
        if ($_SESSION["renkontigxo"]) {
            $renkontigxo = $_SESSION["renkontigxo"];
        } else {
            $renkontigxo = $GLOBALS["renkontigxo"];
        }
    }
    $sql = datumbazdemando("teksto", "tekstoj", array("mesagxoID = '{$identifikilo}'", "renkontigxoID = '" . $renkontigxo->datoj["ID"] . "'"));
    $rez = mysql_fetch_array(sql_faru($sql));
    if (empty($rez)) {
        return "[Text '{$identifikilo}' fehlt leider für Treffen " . $renkontigxo->datoj["mallongigo"] . ". Bitte bei " . teknika_administranto . " beschweren!]";
    } else {
        return $rez["teksto"];
    }
}
Пример #16
0
/**
 * Eltrovas, kiujn mangxojn iu partoprenanto povus partopreni.
 *
 * @param Partopreno $partopreno partopreno-objekto, por eltrovi
 *                   renkontigxon, komenco- kaj fino-datojn.
 *
 *                   Se mankas, ni prenas $_SESSION['renkontigxo'] kaj
 *                   ties fin- kaj komenco-datojn.
 * @return array listo de cxiuj mangxoj, kiuj okazas dum la partoprentempo.
 */
function listu_eblajn_mangxojn($partopreno = null)
{
    if ($partopreno) {
        $de = $partopreno->datoj['de'];
        $gxis = $partopreno->datoj['gxis'];
        $renkID = $partopreno->datoj['renkontigxoID'];
    } else {
        $renkontigxo = kreuRenkontigxon();
        debug_echo("<!-- sen partopreno, uzas renkontigxon: " . var_export($renkontigxo, true) . "-->");
        $de = $renkontigxo->datoj['de'];
        $gxis = $renkontigxo->datoj['gxis'];
        $renkID = $renkontigxo->datoj['ID'];
    }
    $sql = datumbazdemando('ID', 'mangxtempoj', array("renkontigxoID = '" . $renkID . "'", "'" . $de . "' <= dato", "dato <= '" . $gxis . "'"));
    $rez = sql_faru($sql);
    $listo = array();
    while ($linio = mysql_fetch_assoc($rez)) {
        $listo[] = $linio['ID'];
    }
    debug_echo("<!--" . var_export($listo, true) . "-->");
    return $listo;
}
Пример #17
0
/**
 * @param asciistring $ordigo la nomo de la kampo, laux kiu estu
 *                   ordigita la listo.
 */
function kreu_la_longan_liston($ordigo)
{
    eoecho("<h2>Listo de partoprenantoj kaj eblaj membroj</h2>\n");
    echo "<form action='tejomembroj.php' method='POST'>\n";
    tenukasxe("ordigo", $ordigo);
    echo "<table id='tejomembreco'>\n";
    echo "<tr><th>";
    metu_ordigoligon("p-enoID", 'ID', $ordigo);
    echo "</th><th>";
    metu_ordigoligon("UEA-kodo", 'ueakodo', $ordigo);
    echo "</th><th>";
    metu_ordigoligon("persona nomo", 'personanomo', $ordigo);
    echo "</th><th>";
    metu_ordigoligon("familia nomo", 'nomo', $ordigo);
    echo "</th><th>";
    metu_ordigoligon("urbo", 'urbo', $ordigo);
    echo "</th><th>";
    metu_ordigoligon("lando", 'landonomo', $ordigo);
    echo "</th><th>";
    metu_ordigoligon("membro lau^dire", 'tejo_membro_laudire', $ordigo);
    if ($GLOBALS['rajtas_sxangxi']) {
        echo "</th><th colspan='4'>";
    } else {
        echo "</th><th>";
    }
    metu_ordigoligon("membro lau^ kontrolo", 'tejo_membro_kontrolita', $ordigo);
    echo "</th></tr>";
    $sql = datumbazdemando(array('pa.nomo', 'pa.personanomo', 'pa.sekso', 'pa.ueakodo', 'pa.urbo', 'pn.ID', 'pn.tejo_membro_laudire', 'pn.tejo_membro_kontrolita', 'pn.partoprenantoID', 'l.nomo' => "landonomo"), array('landoj' => 'l', 'partoprenoj' => 'pn', 'partoprenantoj' => 'pa'), array('l.ID = pa.lando', 'pa.ID = pn.partoprenantoID', "pn.alvenstato != 'm'"), "", array("order" => $ordigo));
    $rez = sql_faru($sql);
    while ($linio = mysql_fetch_assoc($rez)) {
        echo "<!-- linio: {$linio['ID']} -->";
        metu_tejomembro_tabellinion($linio);
    }
    echo "</table>\n<p>";
    if ($GLOBALS['rajtas_sxangxi']) {
        butono("sxangxu", "S^ang^u");
    }
    echo "</p>\n</form>\n";
}
Пример #18
0
/**
 * kreas elektoliston (per radiaj butonoj) el la renkontigxo-konfiguroj,
 * en tabellinio.
 * <pre>
 * |--------+---------------|
 * | titolo | ( ) elekto 1  |
 * |        | (*) elekto 2  |
 * |        | ( ) elekto 3  |
 * |--------+---------------|
 * </pre>
 * @param eostring    $titolo
 * @param string      $nomo (la interna nomo)
 * @param asciistring $tipo la konfiguro-tipo, t.e.
 *                          sekcio de la konfiguro-tabelo.
 * @param asciistring $valoro la antauxelektota valoro.
 * @param Renkontigxo|int $renkontigxo
 *
 * @uses simpla_entajpbutono()
 * @uses datumbazdemando()
 */
function tabela_elektolisto_el_konfiguroj($titolo, $nomo, $tipo, $valoro, $renkontigxo = 0)
{
    debug_echo("<!-- tabela_elektolisto_el_konfiguroj(" . $titolo . ", " . $nomo . ", " . $tipo . ", " . $valoro . ", " . var_export($renkontigxo, true) . ")\n -->");
    if (is_object($renkontigxo)) {
        $renkontigxo = $renkontigxo->datoj['ID'];
    }
    if (!$renkontigxo or !is_int($renkontigxo)) {
        $renkontigxo = $_SESSION['renkontigxo']->datoj['ID'];
    }
    eoecho("<tr>\n   <th>" . $titolo . "</th>\n   <td>\n");
    $sql = datumbazdemando(array('interna', 'grupo', 'teksto', 'aldona_komento'), 'renkontigxaj_konfiguroj', array('renkontigxoID' => $renkontigxo, 'tipo' => $tipo), "", array('order' => "grupo ASC"));
    $rez = sql_faru($sql);
    $antauxa_grupo = '#';
    while ($linio = mysql_fetch_assoc($rez)) {
        debug_echo("<!-- " . var_export($linio, true) . "-->");
        if ($linio['grupo'] != $antauxa_grupo) {
            if ($antauxa_grupo != '#') {
                echo "<br/>\n<br/>";
            }
            $antauxa_grupo = $linio['grupo'];
        } else {
            echo "<br />\n";
        }
        //        echo $linio['interna'] . " ";
        simpla_entajpbutono($nomo, $valoro, $linio['interna']);
        eoecho(" " . $linio['teksto'] . "\n");
        if ($linio['aldona_komento']) {
            eoecho("<br/>\n<span class='aldona_komento'>" . $linio['aldona_komento'] . "</span>\n");
        }
    }
    echo "      </p>\n";
    echo "  </td>\n</tr>\n";
}
Пример #19
0
function traktu_kampon($tabelnomo, $kamponomo, $atributoj)
{
//     echo ("traktu_kampon ( $tabelnomo, $kamponomo, ".
//           var_export($atributoj, true) . ")<br/>\n");

    require_once($GLOBALS['prafix'] . "/iloj/konvertiloj.php");

    //    echo "<!-- prefikso: " . $GLOBALS['agordoj']["db-trad-prefikso"] . "-->";

    // pseŭdo-dosiernomo

    if ($atributoj['subdividotabelo']) {
        $sql = datumbazdemando(array('ID',
                                     $atributoj['subdividonomo'] => 'nomo'),
                               $atributoj['subdividotabelo']);
        $rez = sql_faru($sql);
        while($linio = mysql_fetch_assoc($rez)) {
            $dosiernomo =
                $GLOBALS['agordoj']["db-trad-prefikso"] .':/'. $tabelnomo .
                '/' . $linio['nomo'] . '/' . $kamponomo;
            traktu_kampon_interne($tabelnomo, $kamponomo,
                                  $dosiernomo,
                                  array($atributoj['subdividoID'] =>
                                        $linio['ID']),
                                  $atributoj);
        }
    }
    else {
        $dosiernomo = $GLOBALS['agordoj']["db-trad-prefikso"] .':/'.
            $tabelnomo . "/" . $kamponomo;
        traktu_kampon_interne($tabelnomo, $kamponomo, $dosiernomo, "",
                              $atributoj);
    }
}
    echo "</p>\n</form>\n";
} else {
    butono("sxangxu", "S^ang^u");
    butono("kopiu", "Kopiu");
    eoecho("(tiam donu novan nomon!)");
    echo "</p>\n</form>\n";
    echo "<hr/>\n";
    eoecho("<h2>Kondic^oj por la unuopaj malalig^periodoj</h2>");
    echo "<form action='malaligxkondicxsistemo.php' method='POST'>\n";
    tenukasxe("ID", $kondicxsistemo->datoj['ID']);
    $sql = datumbazdemando(array("ID", "nomo", "limdato"), "aligxkategorioj", array("sistemoID = '" . $kondicxsistemo->datoj['aligxkategorisistemo'] . "'"), "", array("order" => "limdato DESC"));
    $rez = sql_faru($sql);
    echo "<table>\n";
    eoecho("<tr><th>ID</th><th>nomo</th><th>limdato</th>" . "<th>kondic^o</th></tr>\n");
    while ($linio = mysql_fetch_assoc($rez)) {
        $sql = datumbazdemando("kondicxtipo", "malaligxkondicxoj", array("sistemo = '" . $kondicxsistemo->datoj['ID'] . "'", "aligxkategorio = '" . $linio['ID'] . "'"));
        $lin2 = mysql_fetch_assoc(sql_faru($sql));
        eoecho("<tr><td>" . $linio['ID'] . "</td><td>" . $linio['nomo'] . "</td><td>" . $linio['limdato'] . "</td><td>");
        elektilo_simpla_db("kondicxtipo[{$linio['ID']}]", "malaligxkondicxotipoj", "nomo", "ID", $lin2['kondicxtipo'], "uzebla = 'j'");
        echo "</td></tr>\n";
    }
    echo "</table>\n<p>";
    butono("sxangxuKond", "S^ang^u kondic^ojn");
    echo "</p></form>";
}
echo "<hr/>\n<p>";
ligu("kotizosistemoj.php", "C^iuj kotizosistemoj");
ligu("kategorisistemoj.php#malaligxsistemoj", "C^iuj kategoriosistemoj");
ligu("kotizoj.php", "c^io rilate al kotizoj");
echo "</p>";
HtmlFino();
Пример #21
0
/**
 * Montras HTML-elektilon (<select>-elementon) de partoprenantoj
 * Gxi montras personan nomon, familian nomon kaj la mallongigo
 * de renkontigxo, kaj kiam oni elektis ion, gxi sendas la
 * identifikilon ("ID").
 *
 * $sql - la SQL-demando. La rezulto enhavu almenaux "ID", "nomo", "personanomo"
 *         kaj "renkNumero" kiel kampoj.
 *         Ekzempla SQL-demando por cxiuj partoprenantoj:
 *
 *  		$sql = datumbazdemando(array("pp.ID", "pp.nomo", "personanomo",
 *  									 "max(renkontigxoID) as renkNumero" ),
 *  							   array("partoprenantoj" => "pp",
 *  									 "partoprenoj" => "pn" ),
 *  							   "pn.partoprenantoID = pp.ID",
 *  							   "",
 *  							   array("group" => "pp.ID",
 *  									 "order" => "personanomo, nomo")
 *  							   );
 * $nomo - la valoro de la "name"-atributo de la <select>-elemento.
 *         La defauxlta valoro estas "partoprenantoidento".
 *
 */
function partoprenanto_elektilo($sql, $grandeco = '10', $nomo = "partoprenantoidento", $kun_identifikilo = FALSE)
{
    if (substr($sql, 0, 6) != "SELECT") {
        darf_nicht_sein();
        return false;
    }
    $rezulto = sql_faru($sql);
    $mallongigoj = array();
    echo "<select size='{$grandeco}' name='" . $nomo . "'>\n";
    while ($row = mysql_fetch_array($rezulto, MYSQL_BOTH)) {
        $mallongigo = $mallongigoj[$row["renkNumero"]];
        // Ni sercxas por cxiu renkontigxo maksimume unu foje la
        // mallongigon
        if (empty($mallongigo)) {
            $rez = mysql_fetch_assoc(sql_faru(datumbazdemando("mallongigo", "renkontigxo", "ID = '" . $row["renkNumero"] . "'", "", array("limit" => "1"))));
            $mallongigo = $rez["mallongigo"];
            $mallongigoj[$row["renkNumero"]] = $mallongigo;
        }
        echo "<option";
        eoecho(" value = \"" . $row["ID"] . "\">" . $row['personanomo'] . ' ' . $row['nomo']);
        if ($mallongigo) {
            eoecho(" (" . $mallongigo . ")");
        }
        if ($kun_identifikilo) {
            echo " (#" . $row["ID"] . ")";
        }
        echo "</option>\n";
    }
    echo "</select>\n";
}
Пример #22
0
         $tab = $kotkal->kreu_kotizotabelon_malnova();
         $form->formatu_tabelon($tab);
     }
 }
 echo "</td><td>";
 if (in_array($_SESSION['partopreno']->datoj['alvenstato'], array('v', 'i')) and $_SESSION['partopreno']->datoj['renkontigxoID'] == $_SESSION['renkontigxo']->datoj['ID']) {
     rajtligu("akceptado-datoj.php", "akcepti", "", "akcepti");
 }
 echo "</td></tr>\n";
 // gehört eigentlich nach montru_aligxo; -> Nee.
 echo "<tr><td>";
 /** kiam ri estas en kiu cxambro? */
 $rezulto = eltrovu_cxambrojn($_SESSION["partopreno"]->datoj[ID]);
 while ($row = mysql_fetch_assoc($rezulto)) {
     $sql = datumbazdemando("nomo", "cxambroj", "id = '{$row['cxambro']}'");
     $cxambronomo = mysql_fetch_assoc(sql_faru($sql));
     eoecho(sekvandaton($partopreno_renkontigxo->datoj['de'], $row['nokto_de'] - 1) . " &ndash; " . sekvandaton($partopreno_renkontigxo->datoj['de'], $row['nokto_gxis']) . " (" . $row['rezervtipo'] . ")\n");
     if (rajtas("cxambrumi")) {
         ligu("cxambro-detaloj.php?cxambronumero=" . $row["cxambro"], "c^ambro: " . $cxambronomo['nomo']);
         echo " ";
         ligu_butone('cxambroago.php?sp=partrezultoj.php', $row['rezervtipo'] == 'd' ? "forgesu" : "malrezervu", array('sendu' => 'forgesu_liton', 'forgesendalito' => $row["ID"]));
     } else {
         eoecho("c^ambro: " . $cxambronomo['nomo'] . " ");
     }
     echo "<br/>";
     $havas_cxambron = "true";
 }
 // while ($row)
 if ($_SESSION["partopreno"]->datoj['domotipo'] == "J") {
     if (!$havas_cxambron) {
         eoecho($_SESSION["partoprenanto"]->personapronomo . " g^is nun ne havas c^ambron.<BR>");
Пример #23
0
            else
                estis_eraro();
            break;
        case "preformatu":
            if ($_POST['iso2-'.$numero] != $chefa)
                break;
            // TODO: nur faru, se io sxangxigxis
            // TODO: kalkulu sxangxojn
            $sql =
                datumbazsxangxo('tradukoj',
                                array('stato' =>
                                      ($_POST["preformatu-$numero"] == 'JES' ? 1: 0)),
                                array('dosiero' => $_POST["dosiero-$numero"],
                                      'cheno' => $_POST["cheno-$numero"],
                                      'iso2' => $chefa));
            sql_faru($sql);
            break;
        } // switch
    } // while
?>
<h1><?php 
echo $tradukoj["sukceson"];
?>
</h1>
<p><?php 
echo $tradukoj["sukcese-konservighis"];
?>
 <?php 
echo $nombro_da_aldonoj;
?>
 <?php 
        $nombroj[$index] += $row["nombro"];
        $antaua_cheno = $cheno;
        $antaua_indekso = $index;
    }
    // regxustigu la nomon, gxi antauxe igxis $row["dosiero"] . "/".
    $nombroj[0] += $row["nombro"];
    $trovitaj[$index] = $row["dosiero"];
//     $patroj[$akt_num] = array_search($cheno, $trovitaj);
//     $nombroj[$akt_num] = $row["nombro"];
//     $tekstoj[$akt_num] = al_utf8($parts[count($parts) - 1]);
//     $akt_num++;
 } // while

// ordigu poste
if (estas_unu_el($montru, "tradukendajn", "ambau")) {
    sql_faru("TRUNCATE $temp_tabelo");
 }


// $query = "DROP TABLE IF EXISTS db_trad_esperanto";
// sql_faru($query);
// $query = "DROP TABLE IF EXISTS db_trad_nacia_lingvo";
// sql_faru($query);
// $query = "DROP TABLE IF EXISTS db_trad_diferenco";
// sql_faru($query);

//  echo "
//   /* trovitaj: " . var_export($trovitaj, true) . "
//      patroj:   " . var_export($patroj, true) . "
//      nombroj:  " . var_export($nombroj, true) . "
//      tekstoj:  " . var_export($tekstoj, true) . "
    $teksto = "\nSaluton kara {$nomo},\n\nDenove apud granda fortikaj^o, kaj denove kun viaj plej s^atataj\nbandoj, ni invitas vin al 51a Internacia-Seminario! G^i okazos\nen Würzburg inter la 27.12.2007 kaj la 03.01.2008.\nEspereble kun vi.\n\nVi certe jam scias ke post kelkaj tagoj venos la fino de la\nfrua alig^kategorio.\n\nDo alig^u g^is la 31a oktobro por spari monon. G^is la 20a decembro\neblas alig^i rete.\n\nSed nun alig^is jam 159 homoj, kaj restas nur 50 litoj liberaj en\nla junulargastejo. Do alig^u rapide se vi volas dormi en lito:\n    http://www.esperanto.de/is/eo/2007/\n\nLa temo de la 51a Internacia Seminario estas: \"Popola Identeco\".\nC^u vi sentas kataluno au^ hispano, anglo au^ brito, bosniano\nau^ serbo, preskau^ c^ie en la mondo ekzistas konflikto inter\ndiversaj popolaj identecoj. Ni ankorau^ serc^as volontulojn kiuj\ns^atas kontribui al la tema programo. Do se vi emas rakonti pri\npopolo au^ identeco, tiam bonvolu sendu vian proponon. Ne gravas\nc^u vi montros fotojn au^ prelegos serioze. Bonos ke vi sciigos al\nni viajn spertojn.\n\nC^i jare blovas fres^a vento el Britio. Rolf Fantom estas la nuna\nestro de la IS, kiu nun regas super la germanoj. Li venis per\nnovaj ideoj por plibonigi vian Internacian Seminarion. Ekzemple\noni nun devas promeni je la maldekstra flanko de la koridoroj\nene de la junulargastejo, kaj pardonpeti ec^ se io ne estas via\nkulpo. Se vi nun estas scivolema c^u li ankau^ forstrekis la\nGufujojn (c^ar en Britio oni nur bezonas drinkejon) tiam alig^u ;-)\n     http://www.esperanto.de/is/eo/2007/\n\nUnu afero, kiun Rolf ja forstrekis, estis la tuttaga ekskurso!\nJes, vere. Sed por kompensi tiun domag^on ni nun havas multajn\nkaj diversajn ekskursojn duontagajn.\n\nPor memzorgantoj ni havas ankorau^ iom pli da spaco. Por la\nmemzorgantoj sekvas gravaj novaj^oj:\n\nUnue: la memzorgantejo estas malpli ol cent metroj for de la\n      junulargastejo!\nDue:  eblas dormi en memzorgantejo kaj tamen mang^i en la\n      junulargastejo kontrau iom da mono (detaloj sekvos)!\nTrie: Ni metos akvo-varmigilojn en la memzorgantejo. (Jes,\n      \"Ni amas vin en IS!\")\n\nDo se vi ankorau^ ne alig^is tiam faru nun, por plej bona\nprezo - poste g^i estas konsindere pli alta:\n     http://www.esperanto.de/is/eo/2007/\n\nSe vi jam alig^is invitu viajn geamikojn por\n\"kunigi kaj kunligi\" c^e IS.\n\nG^is baldau^!\n\nLa organizantoj\n-----\nSe vi ricevis tiun mesag^on kvankam vi jam alig^is por tiu IS,\nau^ se vi ricevis tiun mesag^on plurfoje, bonvolu informi nin,\nestas eraro au^ de la programo au^ en niaj datumoj.\nSe vi pensas, ke vi neniam alig^is al iu IS, bonvolu ankau^\ninformi nin.\n\nNi sendos aktualajn informojn pri IS (lau^ tiuj kriterioj) eble\ntrifoje jare - se vi ne plu volas ricevi ilin, sendu mesag^on al\nis.admin@esperanto.de (au^ alig^u kaj elektu en la alig^ilo\n\"mi ne volas ricevi retpos^tajn informojn\").{$kodigoteksto}\n\n";
    echo "Al: {$to_address}";
    sendu_xxxxx_mesagxon("51a IS - limdato por dua kategorio: 31a de oktobro", $teksto, $to_name, $to_address, $kodigo);
    erareldono("Messag^o sendita!");
}
$prafix = "../";
require_once $prafix . "iloj/iloj.php";
session_start();
malfermu_datumaro();
$komenco = 0;
$nombro = 100;
// por elprovi:
$nombro = 1;
$demando = datumbazdemando(array("p.ID" => "ID", "p.nomo" => "nomo", "personanomo", "retposxto", 'retposxta_varbado', 'MAX(pn.renkontigxoID)' => 'renkID'), array("partoprenantoj" => "p", "partoprenoj" => "pn", 'renkontigxo' => "r"), array("pn.partoprenantoID = p.ID", "retposxto <> ''", "retposxta_varbado <> 'n'"), "", array("limit" => "{$komenco}, {$nombro}", "group" => "p.ID", "order" => "p.ID ASC"));
echo "Demando: [<code>" . $demando . "</code>]<br/>\n";
$rezulto = sql_faru($demando);
die("Vi ne rajtas uzi tiun dosieron. Se vi ne scias, kial, demandu Pauxlon.");
$i = $komenco;
while ($row = mysql_fetch_array($rezulto, MYSQL_BOTH)) {
    eoecho("<br />" . $i . ": " . $row['personanomo'] . " " . $row['nomo'] . ": " . $row['ID'] . ' (' . $row['renkID']);
    $i++;
    if ($row['renkID'] < 7) {
        // ne jam aligxis al la 2006a IS
        eoecho(', sendota)');
        flush();
        $to_name = $row['personanomo'] . " " . $row['nomo'];
        $to_address = $row['retposxto'];
        $to_address = "*****@*****.**";
        sendu_specialan_mesagxon($row, $to_name, $to_address);
    } else {
        eoecho(", ne necesas)");
Пример #26
0
/**
 * ekzekutas la donitan (SELECT-)SQL-esprimon, kaj montras
 * la rezulton en simpla HTML-tabelo.
 *
 * @param sqlstring $sql la SQL-serĉ-ordono.
 * @todo koloroj farendaj per CSS - aŭ entute anstataŭu la implementadon
 *       per voko de {@link sercxu()}
 */
function sql_farukajmontru($sql)
{
    $result = sql_faru($sql);
    echo "<table border=1>\n";
    // TODO: Dafür gibt's aber CSS Files.
    // Außerdem zeilenglobale Einstellungen zum <tr>.
    $k[0] = "<td align='right' bgcolor='#CCFFFF'>\n";
    $k[1] = "<td align='right' bgcolor='#CCFFCC'>\n";
    $j = 0;
    $kampoj = mysql_num_fields($result);
    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
        echo "<tr> ";
        $e = $j % 2;
        $i = 0;
        while ($i < $kampoj) {
            eoecho($k[$e] . " &nbsp;" . $row[$i] . "</td>");
            $i++;
        }
        $j++;
        echo "</tr>\n";
    }
    echo "<tr><th>nombro:</th><td> {$j}</td></tr>\n";
    echo "</table>\n";
}
Пример #27
0
 /**
  * donas liston de ĉiuj entajpantoj, kun nomo kaj la informo,
  * ĉu la aktuala noto estas por ili aŭ ne.
  * @return array array de la formo
  *           entajpantoID => array(nomo, noto_por_li)
  *           Tie noto_por_li estas true, se tiu ĉi noto estas por
  *           li, alikaze false.
  */
 function listu_entajpantojn()
 {
     $niaj_entajpantoj = $this->listu_entajpantojn_por_noto();
     $sql = datumbazdemando(array('ID', 'nomo'), 'entajpantoj');
     $listo = array();
     $rez = sql_faru($sql);
     while ($linio = mysql_fetch_assoc($rez)) {
         $listo[$linio['ID']] = array($linio['nomo'], in_array($linio['ID'], $niaj_entajpantoj));
     }
     return $listo;
 }
Пример #28
0
        $rez = sql_faru($sql);
        $alia = mysql_fetch_assoc($rez);
        eoecho("<p>Tiu teksto estas lingva varianto de la teksto ");
        if ($alia) {
            ligu('nova_teksto.php?id=' . $alia['ID'], $priskribo['mesagxoID']);
            eoecho(".</p>\n");
        } else {
            eoecho("<code>" . $priskribo['mesagxoID'] . "</code>, kiu tamen ankorau^ ne ekzistas " . "en tiu renkontig^o. (");
            ligu("nova_teksto.php?mesagxoID=" . $priskribo['mesagxoID'], "Kreu g^in!");
            eoecho(")");
        }
    } else {
        if (in_array('lingvo', $priskribo['opcioj'])) {
            // TODO: aliaj lingvoj
            $sql = datumbazdemando(array('ID'), 'tekstoj', "mesagxoID = '" . $_REQUEST['mesagxoID'] . "_de'", "renkontigxoID");
            $rez = sql_faru($sql);
            $alia = mysql_fetch_assoc($rez);
            if ($alia) {
                eoecho("<p>Ekzistas ");
                ligu("nova_teksto.php?id=" . $alia['ID'], "germana versio de tiu teksto");
                eoecho(".</p>");
            } else {
                eoecho("<p>Por tiu teksto devus ekzisti germana versio.");
                ligu("nova_teksto.php?mesagxoID=" . $_REQUEST['mesagxoID'] . "_de", "Kreu g^in");
                echo "</p>";
            }
        }
    }
}
?>
<form action='nova_teksto.php' method='POST'>
Пример #29
-1
function sxangxuEntajpanton(&$entajpanto)
{
    if ($_POST['ID'] != $entajpanto->datoj['ID']) {
        // oni nur sxangxu siajn proprajn datojn
        darf_nicht_sein("ID = '" . $_POST['ID'] . "' != '" . $entajpanto->datoj['ID'] . "' = entajpanto-ID!");
        return;
    }
    $sxangxita = false;
    if ($_POST['sendanto_nomo'] and $_POST['sendanto_nomo'] != $entajpanto->datoj['sendanto_nomo']) {
        $entajpanto->datoj['sendanto_nomo'] = $_POST['sendanto_nomo'];
        $sxangxita = true;
    }
    if ($_POST['retposxtadreso'] and $_POST['retposxtadreso'] != $entajpanto->datoj['retposxtadreso']) {
        $entajpanto->datoj['retposxtadreso'] = $_POST['retposxtadreso'];
        $sxangxita = true;
    }
    if ($_POST['partoprenanto_id'] != $entajpanto->datoj['partoprenanto_id']) {
        $num_id = intval($_POST['partoprenanto_id']);
        if ($num_id) {
            $sql = datumbazdemando("ID", "partoprenantoj", "ID = '{$num_id}'");
            $rez = sql_faru($sql);
            if (mysql_num_rows($rez) < 1) {
                erareldono("Ne ekzistas partoprenanto kun ID = #" . $num_id . " - mi ne s^ang^as vian " . "partoprenanto-Identigilon!");
            } else {
                $entajpanto->datoj['partoprenanto_id'] = $num_id;
                $sxangxita = true;
            }
        } else {
            $entajpanto->datoj['partoprenanto_id'] = null;
            $sxangxita = true;
        }
    }
    if ($_POST['pasvorto']) {
        if ($_POST['pasvorto'] == $_POST['dua_pasvorto']) {
            $entajpanto->datoj['kodvorto'] = $_POST['pasvorto'];
            $entajpanto->skribu();
            eoecho("<p>Mi s^ang^is la pasvorton. Bonvolu denove ");
            ligu("komenci.php", "ensaluti");
            echo "!</p>";
            protokolu("pasvorts^ang^o");
            $_SESSION["kodvorto"] = "";
            $_SESSION["kodnomo"] = "";
            unset($_SESSION['kkren']);
            session_destroy();
            HtmlFino();
            exit;
        } else {
            erareldono("Bonvolu entajpi dufoje la saman pasvorton!");
            // erarmesagxo
        }
    }
    if ($sxangxita) {
        $entajpanto->skribu();
        eoecho("<p>Mi s^ang^is viajn entajpanto-detalojn.</p>");
    } else {
        echo "<!-- nenio sxangxenda -->";
    }
}
Пример #30
-1
/**
 *
 * @param array $objektoj
 *     <code>array('partopreno' => {@link Partopreno}, ...)</code>
 * @return boolean
 */
function kondicxo_havas_unulitan_cxambron($objektoj)
{
    $partopreno = $objektoj['partopreno'];
    if ($partopreno->datoj["dulita"] != "U") {
        // ne mendis unulitan ĉambron
        return false;
    }
    if (estas_unu_el($partopreno->datoj['alvenstato'], 'm', 'n')) {
        // malaliĝis / ne venis
        return false;
    }
    if ($partopreno->datoj['domotipo'] != 'J') {
        return false;
    }
    $rez = eltrovu_cxambrojn($partopreno->datoj['ID']);
    if (mysql_num_rows($rez) > 0) {
        // ricevis ĉambron
        while ($linio1 = mysql_fetch_assoc($rez)) {
            $sql = datumbazdemando(array("litonombro", "dulita"), "cxambroj", "ID = '" . $linio1['cxambro'] . "'");
            $linio2 = mysql_fetch_assoc(sql_faru($sql));
            if ($linio2['litonombro'] <= 1 or $linio2['dulita'] == 'U') {
                return true;
            }
        }
        // ni ne trovis dulitan ĉambron, kvankam ri mendis
        return false;
    } else {
        // ankoraŭ ne havas ĉambron,
        // ~~> verŝajne ricevos dulitan
        return true;
    }
}