/**
 * 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;
}
/**
 * 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;
}
示例#3
0
<?php

/* ################################################### */
/* Cxi tie mi ekzportas partoprenantojn el la datumaro */
/* ################################################### */
require_once 'iloj/iloj.php';
session_start();
malfermu_datumaro();
HtmlKapo("kalkulilo");
$renkontigxo = kreuRenkontigxon();
echo "<form method=\"post\" action=\"{$PHP_SELF} \">";
montru_renkontigxoelektilon($renkontigxo->datoj["ID"]);
send_butono("Elektu renkontig^on!");
echo "</form>";
echo "<hr />";
if ($sendu == "Faru!") {
    $partopreno = new Partopreno();
    $partoprenanto = new Partoprenanto();
    $partoprenanto->datoj[naskigxdato] = $naskigxdato;
    $partoprenanto->datoj[lando] = $lando;
    $partopreno->datoj[aligxkategoridato] = $aligxdato;
    $partopreno->datoj[invitletero] = $invitilo;
    $partopreno->datoj[invitilosendata] = "2000-01-01";
    // TODO: Kial fiksa datumo?
    $partopreno->datoj[dulita] = $dulita[0];
    $partopreno->datoj[ekskursbileto] = $ekskursbileto[0];
    $partopreno->datoj[GEJmembro] = $GEJmembro[0];
    //   if ($studento[0]!="J")
    //   {
    //     $partopreno->datoj[okupigxo] = 10;
    //   }
/**
* Montras elektilon por lando.
*  La elektilo-nomo estas "lando".
*
* @param int $alteco  la nombro da linioj en la elektilo.
*           se 1, tiam estas elektilo kun klapmenuo,
*           alikaze estos plurlinia elektilo.
* @param int $lando  la identigilo de la antaŭelektita lando.
*           (se vi nenion donis, uzos la konstanton HEJMLANDO.)
* @param lingvokodo $lingvo identigilo por la lingvo uzenda por
*                   la teksto (kaj la nomo de la landokategorio).
 @param boolean $loka uzu la loka-lingvan varianton de la landonomo
           (ekzemple germana), se <var>$loka</var> estas donita kaj io, kio
           iĝas 'true'.
* @param string $klaso   iu html-atribut-fragmento, ekzemple
*            class='mankas' por aldoni al la <select>-elemento.
* @param Renkontigxo $renkontigxo renkontiĝo-objekto - rilate al ties
*                     kotizosistemo ni montras la landokategoriojn.
*/
function montru_landoelektilon($alteco, $lando = HEJMLANDO, $lingvo = null, $klaso = "", $renkontigxo = null)
{
    // provizore nur cxi tie
    require_once $GLOBALS['prafix'] . "/iloj/sqlobjektoj.php";
    debug_echo("<!-- lando: {$lando} -->");
    $renkontigxo = kreuRenkontigxon($renkontigxo);
    $kotSis = $renkontigxo->donu_kotizosistemon();
    $landoKatSisID = $kotSis->datoj['landokategorisistemo'];
    $sqltrad = datumbazdemando(array("l.ID", 'l.nomo', 't.traduko' => 'trad'), array("landoj" => "l", "tradukoj" => "t"), array("l.id      = (t.cheno + 0)", "t.iso2    = '{$lingvo}'", "t.dosiero = 'datumbazo:/landoj/nomo'"), "", array("order" => "nomo ASC"));
    $sql = datumbazdemando(array('l.nomo' => "nomo", 'k.kategorioID', "l.ID"), array("landoj" => "l", "kategorioj_de_landoj" => "k"), array("k.sistemoID" => $landoKatSisID, "k.landoID = l.ID"), "", array("order" => "nomo ASC"));
    $listilo = new SQL_outer_left_join("nomo");
    $listilo->maldekstra_sql($sql);
    $listilo->dekstra_sql($sqltrad);
    $landolisto = array();
    while ($linio = $listilo->sekva()) {
        debug_echo("<!-- \nlinio: " . var_export($linio, true) . " -->");
        $landonomo = kalkulu_landonomon($linio['nomo'], $linio['trad'], $lingvo);
        $katNomo = kalkulu_kategorinomon($linio['kategorioID'], $lingvo);
        $landolisto[(string) $linio['ID']] = $landonomo . " (" . $katNomo . ")";
    }
    debug_echo("<!--" . var_export($landolisto, true) . "-->");
    ordigu_laux_lingvo($landolisto, $lingvo);
    elektilo_simpla("lando", $landolisto, $lando, "", $alteco, false, $klaso);
    //     echo "<select name='lando' size='{$alteco}' {$klaso}>\n";
    //         echo "  <option";
    //         if ($linio['ID'] == $lando) {
    //             echo " selected='selected'";
    //         }
    //         echo " value='" . $linio['ID'] . "'>";
    //         eoecho( $landonomo . " (" . $katNomo . ")");
    //         echo "</option>\n";
    //     echo "</select>\n";
}
/**
 * donas iun renkontigxo- kaj lingvo-specifan tekston
 *
 */
function donu_tekston_lauxlingve($identifikilo, $lingvo, $renkontigxo = "")
{
    $renkontigxo = kreuRenkontigxon($renkontigxo);
    $id = eltrovu_gxenerale("ID", "tekstoj", array("mesagxoID = '" . $identifikilo . "'", "renkontigxoID = '" . $renkontigxo->datoj['ID'] . "'"));
    $teksto = traduku_datumbazeron("tekstoj", "teksto", $id, $lingvo);
    if (isset($teksto)) {
        return $teksto;
    }
    return "[traduko mankas (" . $lingvo . "): [" . donu_tekston($identifikilo, $lingvo, $renkontigxo) . "]]";
}
/**
 * Analizas la POST-datumojn kaj el tio kreas
 * Partopreno- kaj partoprenanto-objektojn.
 *
 * (Ne metas ilin en la datumbazon.)
 *
 * @return &array
 *     array({@link Partoprenanto}, {$link Partopreno}, {$link Invitpeto})
 */
function &mangxu_Aligxilajn_datumojn($renkontigxo = null)
{
    $renkontigxo = kreuRenkontigxon($renkontigxo);
    $partoprenanto = new Partoprenanto();
    $partoprenanto->kopiu();
    $partopreno = new Partopreno();
    debug_echo("<!-- kreita partopreno: " . var_export($partopreno, true) . "\n -->");
    $partopreno->kopiu();
    debug_echo("<!-- kopiita partopreno: " . var_export($partopreno, true) . "\n -->");
    if ($partopreno->datoj['de'] == $renkontigxo->datoj['de'] and $partopreno->datoj['gxis'] == $renkontigxo->datoj['gxis']) {
        $partopreno->datoj['partoprentipo'] = "t";
    } else {
        $partopreno->datoj['partoprentipo'] = "p";
    }
    if (mangxotraktado == 'ligita') {
        if ($domotipo[0] == "J") {
            $partopreno->datoj['kunmangxas'] = "J";
        } else {
            $partopreno->datoj['kunmangxas'] = "N";
        }
    } else {
        if (mangxotraktado == 'libera') {
            //// TODO: kiel eblas trakti la mangxomendojn sen meti ilin
            //// jam nun en la datumbazon?
            //
            // traktu_mangxomendojn($partopreno, $_POST['mangxmendo']);
        } else {
            darf_nicht_sein(mangxotraktado);
        }
    }
    $partopreno->datoj['aligxdato'] = date("Y-m-d");
    // 	if($_POST['cxambrotipo'] == 'd') // dulita
    // 	{
    // 		// gea cxambro
    // 		$partopreno->datoj['cxambrotipo'] = 'g';
    // 		$partopreno->datoj['dulita'] = 'J';
    // 	}
    if (KAMPOELEKTO_IJK) {
        if ($_POST['domotipo'] == 'J1') {
            // unulita
            $partopreno->datoj['domotipo'] = 'J';
            $partopreno->datoj['dulita'] = 'U';
        } else {
            if ($_POST['domotipo'] == 'J') {
                // dulita
                $partopreno->datoj['dulita'] = 'J';
            } else {
                // plurlita
                $partopreno->datoj['dulita'] = 'N';
            }
        }
    }
    $partopreno->datoj['renkontigxoID'] = $renkontigxo->datoj["ID"];
    $partopreno->datoj['partoprenantoID'] = $partoprenanto->datoj['ID'];
    $partopreno->datoj['alvenstato'] = 'v';
    //    $partopreno->datoj['traktstato']='N';
    $partopreno->datoj['havasNomsxildon'] = 'N';
    $partopreno->datoj['havasMangxkuponon'] = 'N';
    $partopreno->datoj['KKRen'] = 'n';
    //    $partopreno->datoj['surloka_membrokotizo'] = '?';
    $partopreno->datoj['tejo_membro_kontrolita'] = '?';
    if ($partopreno->datoj['tejo_membro_laudire'][0] != 'j') {
        // TODO: igxos?
        $partopreno->datoj['tejo_membro_laudire'] = 'n';
    }
    if ($_POST['invitletero'] == 'J') {
        $partopreno->mia_invitpeto =& new Invitpeto();
        $partopreno->mia_invitpeto->kopiu();
        //             $partopreno->mia_invitpeto->datoj['ID'] = $partopreno->datoj['ID'];
        $partopreno->mia_invitpeto->datoj['invitletero_sendenda'] = '?';
        $partopreno->mia_invitpeto->datoj['invitletero_sendodato'] = '0000-00-00';
    }
    debug_echo("<!-- fin-kreita partopreno: " . var_export($partopreno, true) . "\n -->");
    return array(&$partoprenanto, &$partopreno, &$partopreno->mia_invitpeto);
}
    //  session_unregister("ago");
    //  unset($ago);
    unset($_SESSION["ago"]);
} else {
    if ($sp) {
        $_SESSION['sekvontapagxo'] = $sp;
    }
}
if ($_REQUEST["ago"]) {
    $_SESSION["ago"] = $_REQUEST["ago"];
}
//TODO: kontrolu, cxu eblas uzi la funkciojn el iloj_sesio
if ($_REQUEST['partoprenidento']) {
    $_SESSION['partopreno'] = new Partopreno($_REQUEST['partoprenidento']);
    $_SESSION['partoprenanto'] = new Partoprenanto($_SESSION['partopreno']->datoj['partoprenantoID']);
    $GLOBALS['partopreno_renkontigxo'] = kreuRenkontigxon($_SESSION['partopreno']->datoj['renkontigxoID']);
}
if ($_REQUEST['partoprenantoidento']) {
    $_SESSION['partoprenanto'] = new Partoprenanto($_REQUEST['partoprenantoidento']);
}
if ($_SESSION['ago'] == 'sxangxi' and $_SESSION['partopreno'] and $_SESSION['partopreno']->datoj['partoprenantoID'] != $_SESSION['partoprenanto']->datoj['ID']) {
    echo "<!-- eraro: malgxusta partoprenanto (#{$_SESSION['partoprenanto']->datoj['ID']})." . " Uzas pli tauxgan (#{$_SESSION['partopreno']->datoj['partoprenantoID']})! \n-->";
    $_SESSION['partoprenanto'] = new Partoprenanto($_SESSION['partopreno']->datoj['partoprenantoID']);
}
// sxangpreparado
if ($_SESSION["ago"] != "sxangxi" and !$parto) {
    // nova partopreno
    $_SESSION["partopreno"] = new Partopreno();
    $_SESSION["partopreno"]->datoj['partoprenantoID'] = $_SESSION["partoprenanto"]->datoj[ID];
    $_SESSION["partopreno"]->datoj['renkontigxoID'] = $_SESSION["renkontigxo"]->datoj[ID];
}
 /**
  * Kreas liston de cxiuj kotizokategorioj kun limdatoj, kie ties limdato
  * ankoraux estas en la estonteco.
  *
  * @return array de la formo
  *    kategorioID => limdato
  */
 function listu_limdatojn($surloke, $renkontigxo = null, $ekde = null)
 {
     if (!$ekde) {
         $ekde = date("Y-m-d");
     }
     $renkontigxo = kreuRenkontigxon($renkontigxo);
     $renkDato = $renkontigxo->datoj['de'];
     $listo = array();
     $rez = sql_faru(datumbazdemando(array("ID", "limdato", "DATE_SUB('" . $renkDato . "', INTERVAL limdato DAY)" => "limdato_abs"), "aligxkategorioj", array('sistemoID' => $this->datoj['ID']), "", array("order" => "limdato_abs ASC")));
     while ($linio = mysql_fetch_assoc($rez)) {
         if ($linio['limdato_abs'] > $ekde) {
             if ($linio['limdato'] > 0) {
                 $listo[$linio['ID']] = $linio['limdato_abs'];
             } else {
                 $listo[$linio['ID']] = $surloke;
             }
         }
     }
     return $listo;
 }