コード例 #1
0
/**
 * Palauttaa havaintolomakkeen html-koodina.
 *
 * @param <type> $tallennuskommentti kertoo mikä laji tallennettiin viimeksi.
 * @param bool $onKopio auttaa siihen, että luotuun havaintoon osataan palata
 * sekä kopioinnin että tavallisen uuden luonnin yhteydessä.
 * @param Parametrit $parametriolio
 * @return <type>
 */
function nayta_havaintolomake_kaikki_lajit(&$parametriolio)
{
    $paiva_hav = $parametriolio->paiva_hav;
    $kk_hav = $parametriolio->kk_hav;
    $vuosi_hav = $parametriolio->vuosi_hav;
    $paikka_hav = $parametriolio->paikka_hav;
    $kommentti_hav = $parametriolio->kommentti_hav;
    $tietokantaolio = $parametriolio->get_tietokantaolio();
    // $tallennuskommentti kertoo mikä laji tallennettiin viimeksi.
    $tallennuskommentti = $parametriolio->get_tallennuspalaute();
    $submitnappi = "";
    $poistunappi = "";
    $type = "submit";
    $class = "rinnakkain";
    $id = "";
    $onclick = "";
    $name = Bongaustoimintonimet::$havaintotoiminto;
    $value = Bongauspainikkeet::$PERUMINEN_HAVAINTO_VALUE;
    $poistunappi = Html::luo_painike_ilman_formia($type, $class, $id, $name, $value, $onclick);
    $suurin_havaintoid = hae_suurin_id($tietokantaolio, "bhavainnot");
    // Seuraava liittyy siihen, että tallennetut näytetään taulukossa:
    // Luotavan (ekan) id on todennäköisesti yhtä suurempi kuin äsken laskettu:
    $uuden_id = $suurin_havaintoid + 1;
    // Otetaan arvo ylös:
    $parametriolio->set_naytettavan_id_hav($uuden_id);
    $url_jatke_seur = "?id_hav=" . $uuden_id . "#havainto" . $uuden_id;
    if ($suurin_havaintoid == -1) {
        $url_jatke_seur = "";
    }
    $url_id = $url_jatke_seur;
    //
    // Submit-painike:
    $maar_array = array(Maarite::type("submit"), Maarite::classs("rinnakkain"), Maarite::name(Bongaustoimintonimet::$havaintotoiminto), Maarite::value(Bongauspainikkeet::$TALLENNA_MONTA_HAV_KERRALLA_VALUE), Maarite::title(Bongauspainikkeet::$TALLENNA_MONTA_HAV_KERRALLA_TITLE));
    $submitnappi = Html::luo_input($maar_array);
    /*************************************************************************/
    $maavalikkohtml = "";
    try {
        $arvot = Maat::hae_maa_arvot();
        $nimet = Maat::hae_maakuvaukset();
        $name_arvo = Maat::$tietokannan_sarakenimi;
        $oletusvalinta_arvo = $parametriolio->maa_hav;
        $otsikko = Maat::$valikko_otsikko;
        $onchange_metodinimi = "kirjoita_maa";
        $onchange_metodiparametrit_array = array();
        $maavalikkohtml .= Html::luo_pudotusvalikko_onChange($arvot, $nimet, $name_arvo, $oletusvalinta_arvo, $otsikko, $onchange_metodinimi, $onchange_metodiparametrit_array);
    } catch (Exception $poikkeus) {
        $maavalikkohtml = "Virhe maavalikossa! (" . $poikkeus->getMessage() . ")";
    }
    /*************************************************************************/
    $naytettava_valinta = $parametriolio->varmuus_hav;
    $varmuusvalikko = Varmuus::muodosta_valikkohtml(false, $naytettava_valinta);
    // kommentin muotoilu:
    if (!empty($tallennuskommentti)) {
        $tallennuskommentti = $tallennuskommentti . "<br/>";
    }
    //=========================================================================
    //Muotoillaan lajivalinnat:
    $lajioliot = Lajiluokka::hae_kaikki_lajiluokat($parametriolio->kieli_id, $parametriolio->ylaluokka_id_lj, $parametriolio->tietokantaolio);
    $laskuri = 1;
    $rivin_pituus = 10;
    // Näin monta rivissä.
    $rivi = "";
    $taulukko = "";
    foreach ($lajioliot as $lajiolio) {
        if ($lajiolio instanceof Lajiluokka) {
            // Haetaan lajinimi:
            $kuvaus = $lajiolio->hae_kuvaus($parametriolio->kieli_id);
            if ($kuvaus === Lajiluokka::$MUUTTUJAA_EI_MAARITELTY) {
                $kuvaus = $lajiolio->hae_kuvaus(Kielet::$SUOMI);
            }
            $lajinimi = $kuvaus->get_nimi();
            // Tarkistetaan, onko tämä ollut valittu (esim. muokkaus):
            $checked = "";
            foreach ($parametriolio->lajivalinnat_hav as $valitun_id) {
                if ($lajiolio->get_id() === $valitun_id) {
                    $checked = "checked";
                }
            }
            if (empty($checked)) {
                $solusis = Html::luo_labeled_checkbox($lajinimi, array(Maarite::name(Bongausasetuksia::$monen_lajin_valinta_id_taulukko_name . "[]"), Maarite::value($lajiolio->get_id())));
            } else {
                $solusis = Html::luo_labeled_checkbox($lajinimi, array(Maarite::name(Bongausasetuksia::$monen_lajin_valinta_id_taulukko_name . "[]"), Maarite::value($lajiolio->get_id()), Maarite::checked($checked)));
            }
            $rivi .= Html::luo_tablesolu($solusis, array(Maarite::classs("valintasolu")));
            // Jos rivi täynnä tai ollaan vikassa lajissa,
            // suljetaan se ja tyhjennetään rivimuuttuja:
            if ($laskuri % $rivin_pituus == 0 || $laskuri == sizeof($lajioliot)) {
                $taulukko .= Html::luo_tablerivi($rivi, array());
                $rivi = "";
            }
            $laskuri++;
        }
    }
    $taulukko = Html::luo_table($taulukko, array(Maarite::classs("tietotaulu_ulkorajaton"), Maarite::align("center")));
    //========================================================================
    // Luodaan form-elementin sisältö:
    $mj = Html::luo_div(Html::luo_span($tallennuskommentti, array(Maarite::id(Bongausasetuksia::$havaintolomake_tallennustiedote_id))) . Bongaustekstit::$havaintolomake_uusien_tallennus_ohje, array(Maarite::style("font-weight:bold"))) . Html::luo_button(Bongauspainikkeet::$ed_vko, array(Maarite::id("b1"), Maarite::type("button"), Maarite::onclick("nayta_ed_vko", ""))) . Html::luo_button(Bongauspainikkeet::$ed_paiva, array(Maarite::id("b2"), Maarite::type("button"), Maarite::onclick("nayta_ed", ""))) . " *" . Bongaustekstit::$paiva . ": " . Html::luo_input(array(Maarite::type("text"), Maarite::id("paiva"), Maarite::name("paiva_hav"), Maarite::value($paiva_hav), Maarite::size(2), Maarite::max_length(2), Maarite::onchange("nayta_pvm", ""), Maarite::onkeyup("nayta_pvm", ""))) . " *" . Bongaustekstit::$kk . ": " . Html::luo_input(array(Maarite::type("text"), Maarite::id("kk"), Maarite::name("kk_hav"), Maarite::value($kk_hav), Maarite::size(2), Maarite::max_length(2), Maarite::onchange("nayta_pvm", ""), Maarite::onkeyup("nayta_pvm", ""))) . " *" . Bongaustekstit::$vuosi . ": " . Html::luo_input(array(Maarite::type("text"), Maarite::id("vuosi"), Maarite::name("vuosi_hav"), Maarite::value($vuosi_hav), Maarite::size(4), Maarite::max_length(4), Maarite::onchange("nayta_pvm", ""), Maarite::onkeyup("nayta_pvm", ""))) . Html::luo_span("", array(Maarite::id("pvm_naytto"))) . Html::luo_button(Bongauspainikkeet::$seur_paiva, array(Maarite::id("b3"), Maarite::type("button"), Maarite::onclick("nayta_seur", ""))) . Html::luo_button(Bongauspainikkeet::$seur_vko, array(Maarite::id("b4"), Maarite::type("button"), Maarite::onclick("nayta_seur_vko", ""))) . Html::luo_br() . " *" . Bongaustekstit::$paikka . ": " . Html::luo_input(array(Maarite::type("text"), Maarite::name("paikka_hav"), Maarite::value($paikka_hav), Maarite::size(43))) . $maavalikkohtml . Varmuus::$valikko_otsikko . ": " . $varmuusvalikko . Bongaustekstit::$kommentti . ": " . Html::luo_input(array(Maarite::type("text"), Maarite::name("kommentti_hav"), Maarite::value($kommentti_hav), Maarite::size(43))) . $taulukko . $submitnappi . $poistunappi;
    // Sullotaan sisältö form-tagien sisään:
    $mj = Html::luo_form($mj, array(Maarite::align("center"), Maarite::method("post"), Maarite::action("index.php" . $url_id), Maarite::id(Bongausasetuksia::$havaintolomake_kaikki_lajit_id)));
    // Palautetaan lomake ja näytetään js-päivämäärä;.
    return $mj . Html::luo_script_js("nayta_pvm();");
    //return $mj."<script type='text/javascript'>nayta_pvm();</script>";
}
コード例 #2
0
 /**
  * Palauttaa painikkeen koodin.
  * @param type $action_os esim. index.php tai "oletus" / "default"
  * @param type $action_kyselymuuttujat kyselymuuttujien nimet
  * @param type $action_kyselyarvot
  */
 public static function luo_jaa_lisaoikeuksia_painike($action_os, $action_kyselymuuttujat, $action_kyselyarvot)
 {
     $jaa_oikeuksia_nappi = Html::luo_form(Html::luo_input(array(Maarite::type("submit"), Maarite::name(Toimintonimet::$lv_toiminto), Maarite::value(Kayttajatekstit::$lisavaltuudet_painike_nayta_lv_lomake_value), Maarite::title(Kayttajatekstit::$lisavaltuudet_painike_nayta_lv_lomake_title))), array(Maarite::classs("rinnakkain"), Maarite::method("post"), Maarite::action(Maarite::muotoile_action_arvo($action_os, $action_kyselymuuttujat, $action_kyselyarvot))));
     return $jaa_oikeuksia_nappi;
 }
コード例 #3
0
ファイル: muistio_php.php プロジェクト: jpkerkkanen/kerkkaset
/**
 * Hakee tietokannasta liikkujien suoritukset liikkujanid:n avulla
 *  ja palauttaa ne tekstin&auml;.
 * @param Tietokantaolio $tietokantaolio olio,
 * joka sisältää yhteystiedot tietokantaan.
 * @param boolean $on_omat kertoo, onko kysymys omista vai jonkun muun
 * suorituksista. Vain omiin tulee valintamahdollisuus.
 * @return <type> Palauttaa suoritukset merkkijonona,
 * jota muokattu html:n avulla.
 *
 * Muutos 16.1.2012: Lisätty parametri $omaid. Tarvitaan pikakommenttien näytössä.
 */
function hae_suoritukset($tietokantaolio, $liikkujanid, $on_omat, $omaid)
{
    $valintaruudunotsikko = "";
    //Riippuu parametrin $on_omat arvosta.
    $suoritushtml = '';
    $mj = '';
    // Apumuuttuja html-merkkaukselle.
    // Yksityiset näytetään vain itselle:
    if ($on_omat) {
        $hakulause = "SELECT * FROM suoritukset\n                WHERE henkilo_id={$liikkujanid}\n                ORDER BY jarjestysindeksi DESC";
    } else {
        $hakulause = "SELECT * FROM suoritukset\n                WHERE henkilo_id=" . $liikkujanid . " AND (nakyvyys=" . Nakyvyys::$JULKINEN . " OR nakyvyys=" . Nakyvyys::$PUOLIJULKINEN . ")" . " ORDER BY jarjestysindeksi DESC";
    }
    $suoritustaulu = $tietokantaolio->tee_OMAhaku_oliotaulukkopalautteella($hakulause);
    $uusinappikomento = "Uusi oma suoritus";
    if (empty($suoritustaulu) && $on_omat) {
        $suoritushtml = "Yht&auml;&auml;n suoritusta ei l&ouml;ytynyt!\n                        Painikkeesta alla p&auml;&auml;set\n                        lis&auml;&auml;m&auml;&auml;n suorituksia.\n                        <form method='post' action='muistio.php'>\n                        <input id='uusi' type='submit' name='toiminta'\n                        value='{$uusinappikomento}'/></form>";
    } else {
        if (empty($suoritustaulu)) {
            $suoritushtml = "Yht&auml;&auml;n suoritusta ei l&ouml;ytynyt!";
        } else {
            //Kirjoitetaan lajeista aputaulukot, jotta ne osataan kirjoittaa oikein.
            // lukujen käyttö arvoina voipi olla parempi, mutta menee tuo noinkin).
            $lajit = Laji::get_lajikuvaukset();
            $lajiarvot = Laji::get_lajiarvot();
            if ($on_omat) {
                $valintaruudunotsikko = "<th>Valinta</th>";
                // Huom. action-arvo pit&auml;&auml; olla noin, koska ajaxin kanssa
                // php-self ohjasi v&auml;&auml;r&auml;lle sivulle .
                $mj .= "<form method='post' action='muistio.php'>\n                    <input id='uusi' type='submit' name='" . Muistiotoimintonimet::$perustoiminto . "' value='{$uusinappikomento}'/>\n                    <input id='poistonappi' type='submit' name='" . Muistiotoimintonimet::$perustoiminto . "' value='" . Muistiopainikkeet::$poistonappikomento . "'/>\n                    <input id='muokkausnappi' type='submit' name='" . Muistiotoimintonimet::$perustoiminto . "' value='" . Muistiopainikkeet::$muokkausnappikomento . "'/>\n                    <input id='tilastonappi' type='submit' name='" . Muistiotoimintonimet::$perustoiminto . "' value='" . Muistiopainikkeet::$tilastokomento . "'/>";
            }
            // Ilmoitetaan nykyisen ja edellisen kuun yhteenlasketut
            // juoksukilometrit, jos niit&auml; on tullut.
            $pvm = getdate();
            $kuu = $pvm['mon'];
            $vuosi = $pvm['year'];
            $juoksuilmoitus = "";
            $km_tama_vuosi = nayta_vuoden_juoksukm($omaid, $liikkujanid, $vuosi, $tietokantaolio);
            if ($km_tama_vuosi == 0) {
                $juoksuilmoitus = "Hyv&auml;lt&auml; n&auml;ytt&auml;&auml;!";
            } else {
                /*$km_tamakuu = nayta_juoksukm($liikkujanid, $kuu, 
                  $vuosi, $tietokantaolio);*/
                $km_tamakuu = hae_kuukauden_km($omaid, $liikkujanid, Laji::$id_juoksu, $kuu, $vuosi, $tietokantaolio);
                // Piti vähän muuttaa, että vuoden vaihde menee oikein..
                if ($kuu == 1) {
                    $viimekuu = 12;
                    $vuosi--;
                } else {
                    $viimekuu = $kuu - 1;
                }
                /*$km_viimekuu = nayta_juoksukm($liikkujanid, $viimekuu,
                  $vuosi, $tietokantaolio);*/
                $km_viimekuu = hae_kuukauden_km($omaid, $liikkujanid, Laji::$id_juoksu, $viimekuu, $vuosi, $tietokantaolio);
                // Sitten muotoillaan ilmoitus eri tapauksissa:
                if ($km_tamakuu != 0) {
                    if ($km_viimekuu != 0) {
                        $juoksuilmoitus = "Juoksua t&auml;ss&auml; kuussa " . $km_tamakuu . " km ja viime kuussa\n                                " . $km_viimekuu . " km. Koko vuoden juoksusaldo on " . $km_tama_vuosi . " km.";
                    } else {
                        $juoksuilmoitus = "Juoksua t&auml;ss&auml; kuussa " . $km_tamakuu . " km. Koko vuoden saldo on " . $km_tama_vuosi . " km.";
                    }
                } else {
                    if ($km_viimekuu != 0) {
                        $juoksuilmoitus = "Juoksua tuli viime kuussa\n                                " . $km_viimekuu . " km. T&auml;n&auml; vuonna on\n                                tullut " . $km_tama_vuosi . " km.";
                    } else {
                        $juoksuilmoitus = "T&auml;n&auml; vuonna on tullut juoksua\n                                yhteens&auml; " . $km_tama_vuosi . " km.";
                    }
                }
            }
            //Muotoillaan tiedot kauniisti;
            $mj .= "<table id = 'tulostaulu'>\n            <tr><td id='kuukm' colspan='7'>{$juoksuilmoitus}\n            </td></tr>\n            <tr>\n                <th>Pvm</th>\n                <th>Laji</th>\n                <th>Kesto</th>\n                <th>Matka (km)</th>\n                <th>Kuvaus</th>\n                {$valintaruudunotsikko}\n                <th>Kommentit</th>\n                </tr>";
            $valintaruutu = "";
            //oletuksena tyhj&auml;.
            $laskuri = 1;
            // Auttaa joka toisen rivin eri v&auml;riseksi.
            $laji_muokattu = '';
            // Tämä saa arvokseen ääkkösellisen lajin.
            $matka_km = 0;
            foreach ($suoritustaulu as $nyk_olio) {
                if ($laskuri % 2 == 0) {
                    $mj .= "<tr class ='parillinen_rivi'>";
                } else {
                    $mj .= "<tr>";
                }
                // Asetetaan lajin merkint&auml; kohdalleen (&auml;&auml;kköset mukaan):
                for ($i = 0; $i < sizeof($lajit); $i++) {
                    if ($nyk_olio->laji == $lajiarvot[$i]) {
                        $laji_muokattu = $lajit[$i];
                    }
                }
                //========================== PIkakommentit =========================
                $kommenttien_lkm = 0;
                $on_uusia_pk = false;
                // Haetaan pikakommenttien lkm ja tarkastetaan samalla, onko uusia.
                $hakulause = "SELECT id, tallennushetki_sek, henkilo_id\n                    FROM pikakommentit\n                    WHERE kohde_tyyppi =" . Pikakommentti::$KOHDE_LIIKUNTASUORITUS . " AND kohde_id=" . $nyk_olio->id . " ORDER BY tallennushetki_sek DESC";
                $osumat_kaikki = $tietokantaolio->tee_OMAhaku_oliotaulukkopalautteella($hakulause);
                //============= SUODATUS ALKU ======================================
                $osumat = array();
                $suodattimet = Suodatin::hae_suodattimet($omaid, $tietokantaolio);
                foreach ($osumat_kaikki as $osuma) {
                    $henkilo_id = $osuma->henkilo_id;
                    if (!Suodatin::henkilo_suodatetaan_kevyt($henkilo_id, $omaid, $suodattimet)) {
                        array_push($osumat, $osuma);
                    }
                }
                //============= SUODATUS LOPPU =====================================
                // Jos viimeistä katseluaikaa ei ole asetettu, asetetaan 0:
                if (!isset($_SESSION['edellinen_uloskirjausaika_sek'])) {
                    $_SESSION['edellinen_uloskirjausaika_sek'] = 0;
                }
                // Korostetaan solu, jos uusin on riittävän uusi eikä oma:
                if (!empty($osumat)) {
                    $kommenttien_lkm = sizeof($osumat);
                    if ($osumat[0]->tallennushetki_sek > $_SESSION['edellinen_uloskirjausaika_sek'] && $osumat[0]->henkilo_id != $omaid) {
                        $on_uusia_pk = true;
                    }
                }
                // Taulukon solun muotoilu:
                $onmouseover = " onclick='hae_pikakommentit(" . Pikakommentti::$KOHDE_LIIKUNTASUORITUS . "," . $nyk_olio->id . ")'";
                $pk_class = "";
                if ($on_uusia_pk) {
                    $pk_class = " class='on_uusia'";
                }
                $pikakommenttisolu = "<td" . $pk_class . $onmouseover . ">" . "<span id='id" . $nyk_olio->id . "'>" . $kommenttien_lkm . "</span></td>";
                //==================================================================
                $matka_km = round($nyk_olio->matkametreina / 100) / 10;
                // Nollaa ei n&auml;ytet&auml;, ettei masenna:
                if ($matka_km == 0) {
                    $matka_km = "-";
                } else {
                    if ($nyk_olio->nakyvyys == Nakyvyys::$PUOLIJULKINEN) {
                        if ($nyk_olio->henkilo_id != $omaid) {
                            $matka_km = "-";
                        } else {
                            $matka_km = Html::luo_span($matka_km, array(Maarite::classs("puolijulkinen_km"), Maarite::title("Puolijulkinen!")));
                        }
                    }
                }
                if ($on_omat) {
                    // Valintaruutu sisältää vastaavan tietokantarivin id:n:
                    $maar_array = array(Maarite::name("valinnat[]"), Maarite::value($nyk_olio->id));
                    $valruutusis = Html::luo_checkbox($maar_array);
                    $valintaruutu = Html::luo_tablesolu($valruutusis, "");
                }
                $kesto = muotoile_suorituksen_kesto($nyk_olio->kestotunnit, $nyk_olio->kestomin, $nyk_olio->kestosek, $nyk_olio->kesto);
                $pvm = anna_viikonp_suomeksi($nyk_olio->paiva, $nyk_olio->kk, $nyk_olio->vuosi, true) . " " . $nyk_olio->paiva . "." . $nyk_olio->kk . "." . $nyk_olio->vuosi;
                if ($nyk_olio->nakyvyys == Nakyvyys::$YKSITYINEN) {
                    $pvm = Html::luo_span($pvm, array(Maarite::classs("yksityinen"), Maarite::title("Yksityinen!")));
                }
                $mj .= "<td class='aikasolu'>" . $pvm . "</td>\n                <td>{$laji_muokattu}</td>\n                <td>{$kesto}</td>\n                <td>{$matka_km}</td>\n                <td>" . stripslashes($nyk_olio->kuvaus) . "</td>\n                {$valintaruutu}\n                {$pikakommenttisolu}\n                </tr>";
                $laskuri++;
            }
            $mj .= "</table>";
            if ($on_omat) {
                $mj .= "</form>";
            }
            $suoritushtml = $mj;
        }
    }
    return $suoritushtml;
}
コード例 #4
0
 /**
  * Palauttaa kuvalomakkeen, jossa on kuvan tiedot ja tiedot valituista
  * lajiluokista.
  * 
  * <p>Riippuvuuksia: </p>
  */
 public function luo_kuvalomake($valitut)
 {
     $ylaosa = Kuva::nayta_kuvalomake_ilman_formia($this->parametriolio);
     $alaosa = $this->luo_havaintotaulukko($valitut, true);
     $varoitus = Html::luo_div(Bongaustekstit::$ilm_havaintokuvan_lisaaminen_huomautus . ":", array(Maarite::classs(Bongausasetuksia::$havaintotauluotsikko_class)));
     $lomake = Html::luo_form($ylaosa . $varoitus . $alaosa, array(Maarite::align("left"), Maarite::method("post"), Maarite::id("kuvalomake"), Maarite::action("index.php?"), Maarite::enctype_multipart_form_data()));
     return $lomake;
 }