/**
 * 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(&$parametriolio)
{
    $ylaluokka_id_lj = $parametriolio->ylaluokka_id_lj;
    $id_hav = $parametriolio->id_hav;
    // Tarvitaan muokkauksessa!
    $lajiluokka_id_hav = $parametriolio->lajiluokka_id_hav;
    $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;
    $kieli_kuv = $parametriolio->kieli_kuv;
    $uusi = $parametriolio->get_uusi_hav();
    $tietokantaolio = $parametriolio->get_tietokantaolio();
    // $tallennuskommentti kertoo mikä laji tallennettiin viimeksi.
    $tallennuskommentti = $parametriolio->get_tallennuspalaute();
    $onKopio = $parametriolio->get_on_kopio();
    $submitnappi = "";
    $poistunappi = "";
    $uusi_laji_nappi = "";
    // painike, josta saadaan näkyviin monta lajia kerralla:
    $maar_array = array(Maarite::type("submit"), Maarite::value(Bongauspainikkeet::$NAYTA_MONEN_HAVAINNON_VALINTA_VALUE), Maarite::title(Bongauspainikkeet::$NAYTA_MONEN_HAVAINNON_VALINTA_TITLE), Maarite::name(Bongaustoimintonimet::$havaintotoiminto));
    $monta_lajia_kerralla = Html::luo_input($maar_array);
    $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);
    $type = "submit";
    $class = "rinnakkain";
    $id = "";
    $onclick = "";
    $name = Bongaustoimintonimet::$lajiluokkatoiminto;
    $value = Bongauspainikkeet::$UUSI_LAJILUOKKA_VALUE;
    $uusi_laji_nappi = Html::luo_painike_ilman_formia($type, $class, $id, $name, $value, $onclick);
    if ($uusi) {
        $suurin_havaintoid = hae_suurin_id($tietokantaolio, "bhavainnot");
        // Luotavan 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;
        //
        $havaintolomakeohje = Bongaustekstit::$havaintolomake_uusi_ohje;
        // Painike
        $type = "submit";
        $class = "rinnakkain";
        $id = "";
        $onclick = "";
        $name = Bongaustoimintonimet::$havaintotoiminto;
        $value = Bongauspainikkeet::$TALLENNA_UUSI_HAVAINTO_VALUE;
        $submitnappi = Html::luo_painike_ilman_formia($type, $class, $id, $name, $value, $onclick);
    } else {
        $parametriolio->set_naytettavan_id_hav($id_hav);
        $url_jatke_nyk = "#havainto" . $id_hav;
        $url_id = "?id_hav=" . $id_hav . $url_jatke_nyk;
        // Näin löytyy päivitettävä havainto!
        $havaintolomakeohje = Bongaustekstit::$havaintolomakemuokkaus_ohje;
        // Painike
        $type = "submit";
        $class = "rinnakkain";
        $id = "";
        $onclick = "";
        $name = Bongaustoimintonimet::$havaintotoiminto;
        $value = Bongauspainikkeet::$TALLENNA_MUOKKAUS_HAVAINTO_VALUE;
        $submitnappi = Html::luo_painike_ilman_formia($type, $class, $id, $name, $value, $onclick);
    }
    // Lajivalikko:
    // Jos yläluokkaa ei ola määritelty (=-1), etsitään sen luokan id, jonka
    // suomenkielisen kuvauksen nimi on "Linnut":
    if ($ylaluokka_id_lj == -1) {
        $taulunimi = "bkuvaukset";
        $sarakenimi = "nimi";
        $hakuarvo = "Linnut";
        $kuvausolio = $tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo);
        if ($kuvausolio != Bongausasetuksia::$tietokantahaku_ei_loytynyt) {
            $ylaluokka_id_lj = $kuvausolio->lajiluokka_id;
        }
    }
    $otsikko = "";
    $lajivalikko = nayta_lajivalikko($lajiluokka_id_hav, $tietokantaolio, $ylaluokka_id_lj, $kieli_kuv, $otsikko);
    /*************************************************************************/
    $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/>";
    }
    $mj = "<form align='center' method='post'\n                    action='index.php" . $url_id . "'>" . "<table summary='uudet_tiedot' id=" . Bongausasetuksia::$havaintolomakkeen_id . ">" . "<tr><td colspan=2><b><span id=" . Bongausasetuksia::$havaintolomake_tallennustiedote_id . ">\n            " . $tallennuskommentti . "</span>" . $havaintolomakeohje . "</b></td></tr>" . "<tr>\n        <td align='left' colspan=2><button id='b1' type='button'\n        onclick='nayta_ed_vko()'>\n            " . Bongauspainikkeet::$ed_vko . "</button>\n            <button id='b2'type='button' onclick='nayta_ed()'>\n            " . Bongauspainikkeet::$ed_paiva . "</button>\n            <button id='b3'type='button'\n            onclick='nayta_seur()'>\n            " . Bongauspainikkeet::$seur_paiva . "\n            </button>\n            <button id='b4' type='button' onclick='nayta_seur_vko()'>\n            " . Bongauspainikkeet::$seur_vko . "</button></td>" . "<tr>" . "<td align='left'>*" . Bongaustekstit::$paiva . ": </td><td align='left'>\n        <input id='paiva' type='text'\n        name='paiva_hav' value='{$paiva_hav}' size='4' maxlength='2'\n        onchange='nayta_pvm()' onkeyup='nayta_pvm()' />\n        *" . Bongaustekstit::$kk . ": <input id='kk' type='text' " . "name='kk_hav' value='{$kk_hav}' size='4' maxlength='2'\n        onchange='nayta_pvm()' onkeyup='nayta_pvm()'/>\n        *" . Bongaustekstit::$vuosi . ": <input id='vuosi' type='text' " . "name='vuosi_hav' value='{$vuosi_hav}' size='4' maxlength='4'\n        onchange='nayta_pvm()' onkeyup='nayta_pvm()'/>\n        <span id='pvm_naytto'></span></td>" . "</tr>" . "<tr>" . Html::luo_tablerivi(Html::luo_tablesolu("", "") . Html::luo_tablesolu($monta_lajia_kerralla, array(Maarite::align("left"))), "") . "<td align='left'>*" . Bongaustekstit::$laji . ": </td><td align='left'\n            id= " . Bongausasetuksia::$havaintolomake_lajivalintarivi_id . ">\n        <span id = " . Bongausasetuksia::$havaintolomake_lajivalikko_id . ">" . $lajivalikko . "</span><span id = " . Bongausasetuksia::$havaintolomake_lajivalikkopainike_id . ">" . $uusi_laji_nappi . "</span>" . "<span id = " . Bongausasetuksia::$havaintolomake_lajivalintaohje_id . ">(" . Bongaustekstit::$havaintolomake_laji_puuttuu_ohje . ")</span></td>\n        </tr>" . "<tr><td align='left'>*" . Bongaustekstit::$paikka . ": </td><td align='left'>\n        <input type='text' size='43' name='paikka_hav' value='{$paikka_hav}'/>\n        " . $maavalikkohtml . "</td></tr>" . "<tr><td>" . Varmuus::$valikko_otsikko . ":</td><td align='left'>" . $varmuusvalikko . "</td></tr>" . "<tr><td align='left'>" . Bongaustekstit::$kommentti . ":</td>\n        <td align='left'><textarea cols='50'\n        rows='6'name='kommentti_hav'>{$kommentti_hav}" . "</textarea></td></tr>" . "<tr><td></td><td align='left'>" . $submitnappi . $poistunappi . "</td></tr>" . "</table>" . "</form>";
    // Palautetaan lomake ja näytetään js-päivämäärä;.
    return $mj . "<script type='text/javascript'>\n                            nayta_pvm();\n                            </script>";
}
示例#2
0
 /**
  * Palauttaa uuden yksittäisen havainnon tietojen syöttöön tarkoitetun
  * lomakkeen.
  * 
  * <p>Riippuvuudet: yhteiset/php_yhteiset.php</p>
  * 
  * @return string
  */
 function nayta_uusi_havaintolomake()
 {
     $ylaluokka_id_lj = $this->parametriolio->ylaluokka_id_lj;
     $kieli_kuv = $this->parametriolio->kieli_kuv;
     $tietokantaolio = $this->parametriolio->get_tietokantaolio();
     // $tallennuskommentti kertoo mikä laji tallennettiin viimeksi.
     $tallennuskommentti = $this->parametriolio->get_tallennuspalaute();
     // Mahdolliset arvot voivat olla epätyhjiä puutteellisen yrityksen
     // jälkeen (ei tartte uudestaan naputella):
     $id_hav = $this->parametriolio->id_hav;
     $lajiluokka_id_hav = $this->parametriolio->lajiluokka_id_hav;
     $paiva_hav = $this->parametriolio->paiva_hav;
     $kk_hav = $this->parametriolio->kk_hav;
     $vuosi_hav = $this->parametriolio->vuosi_hav;
     $paikka_hav = $this->parametriolio->paikka_hav;
     $kommentti_hav = $this->parametriolio->kommentti_hav;
     $maa_hav = $this->parametriolio->maa_hav;
     $varmuus_hav = $this->parametriolio->varmuus_hav;
     //=============================================================
     $poistunappi = Html::luo_input(array(Maarite::type("submit"), Maarite::classs("rinnakkain"), Maarite::name(Bongaustoimintonimet::$havaintotoiminto), Maarite::value(Bongauspainikkeet::$PERUMINEN_HAVAINTO_VALUE)));
     $uusi_laji_nappi = Html::luo_input(array(Maarite::type("submit"), Maarite::classs("rinnakkain"), Maarite::name(Bongaustoimintonimet::$lajiluokkatoiminto), Maarite::value(Bongauspainikkeet::$UUSI_LAJILUOKKA_VALUE)));
     $havaintolomakeohje = Bongaustekstit::$havaintolomake_uusi_ohje;
     $submitnappi = Html::luo_input(array(Maarite::type("submit"), Maarite::classs("rinnakkain"), Maarite::name(Bongaustoimintonimet::$havaintotoiminto), Maarite::value(Bongauspainikkeet::$TALLENNA_UUSI_HAVAINTO_VALUE)));
     // Lajivalikko (kun vain yksi valittu)
     $otsikko = "";
     $lajivalikko = Lajiluokka::nayta_lajivalikko($lajiluokka_id_hav, $tietokantaolio, $ylaluokka_id_lj, $kieli_kuv, $otsikko);
     /*************************************************************************/
     $maavalikkohtml = "";
     try {
         $arvot = Maat::hae_maa_arvot();
         $nimet = Maat::hae_maakuvaukset();
         $name_arvo = Maat::$tietokannan_sarakenimi;
         $oletusvalinta_arvo = $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 = $varmuus_hav;
     $varmuusvalikko = Varmuus::muodosta_valikkohtml(false, $naytettava_valinta);
     // kommentin muotoilu:
     if (!empty($tallennuskommentti)) {
         $tallennuskommentti = $tallennuskommentti . Html::luo_br();
     }
     // Tallennetun näyttö tallennuksen jälkeen. Nyt pitää arvata eli
     // katsoa tietokannasta suurin id ja sillä perusteella asettaa
     // arvoksi sitä yksi isompi.
     $id_hav_uusi = hae_suurin_id($this->tietokantaolio, Tietokannan_taulunimet::$bhavainnot) + 1;
     $url_jatke_nyk = "#havainto" . $id_hav_uusi;
     $url_id = "?id_hav=" . $id_hav_uusi . $url_jatke_nyk;
     // Näin löytyy päivitettävä havainto!
     $maar_array = array();
     // Rivi1: ohjeita
     $rivi1 = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_b(Html::luo_span($tallennuskommentti, array(Maarite::id(Bongausasetuksia::$havaintolomake_tallennustiedote_id))) . $havaintolomakeohje, $maar_array), array(Maarite::colspan(2))), $maar_array);
     // taulukkorivi
     // Toinen rivi: pvm-painikkeet
     $rivi2 = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_button(Bongauspainikkeet::$ed_vko, array(Maarite::id("b1"), Maarite::onclick("nayta_ed_vko", ""))) . Html::luo_button(Bongauspainikkeet::$ed_paiva, array(Maarite::id("b2"), Maarite::onclick("nayta_ed", ""))) . Html::luo_button(Bongauspainikkeet::$seur_paiva, array(Maarite::id("b3"), Maarite::onclick("nayta_seur()", ""))) . Html::luo_button(Bongauspainikkeet::$seur_vko, array(Maarite::id("b4"), Maarite::onclick("nayta_seur_vko()", ""))), array(Maarite::colspan(2), Maarite::align("left"))), $maar_array);
     // taulukkorivi
     // Rivi3: pvm-kentät
     $rivi3 = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_label_for("paiva", "*" . Bongaustekstit::$paiva . ":", ""), array(Maarite::align("left"))) . Html::luo_tablesolu(Html::luo_input(array(Maarite::type("text"), Maarite::id("paiva"), Maarite::name("paiva_hav"), Maarite::value($paiva_hav), Maarite::size("4"), Maarite::max_length("2"), Maarite::onchange("nayta_pvm", ""), Maarite::onkeyup("nayta_pvm", ""))) . Html::luo_label_for("kk", "*" . Bongaustekstit::$kk . ":", "") . Html::luo_input(array(Maarite::type("text"), Maarite::id("kk"), Maarite::name("kk_hav"), Maarite::value($kk_hav), Maarite::size("4"), Maarite::max_length("2"), Maarite::onchange("nayta_pvm", ""), Maarite::onkeyup("nayta_pvm", ""))) . Html::luo_label_for("vuosi", "*" . 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"))), array(Maarite::align("left"))), $maar_array);
     // taulukkorivi
     // painike, josta saadaan näkyviin monta lajia kerralla:
     $rivi4 = Html::luo_tablerivi(Html::luo_tablesolu("", array(Maarite::align("left"))) . Html::luo_tablesolu(Html::luo_input(array(Maarite::type("submit"), Maarite::value(Bongauspainikkeet::$NAYTA_MONEN_HAVAINNON_VALINTA_VALUE), Maarite::title(Bongauspainikkeet::$NAYTA_MONEN_HAVAINNON_VALINTA_TITLE), Maarite::name(Bongaustoimintonimet::$havaintotoiminto))), array(Maarite::align("left"))), $maar_array);
     // rivi5: Lajivalinta
     $rivi5 = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_label_for("lisaa_myohemmin", "*" . Bongaustekstit::$laji . ": ", ""), array(Maarite::align("left"))) . Html::luo_tablesolu(Html::luo_span($lajivalikko, array(Maarite::id(Bongausasetuksia::$havaintolomake_lajivalikko_id))) . Html::luo_span($uusi_laji_nappi, array(Maarite::id(Bongausasetuksia::$havaintolomake_lajivalikkopainike_id))) . Html::luo_span("(" . Bongaustekstit::$havaintolomake_laji_puuttuu_ohje . ")", array(Maarite::id(Bongausasetuksia::$havaintolomake_lajivalintaohje_id))), array(Maarite::align("left"), Maarite::id(Bongausasetuksia::$havaintolomake_lajivalintarivi_id))), $maar_array);
     // taulukkorivi
     // rivi6: Paikka ja maa:
     $rivi6 = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_label_for("lisaa myohemmin", "*" . Bongaustekstit::$paikka . ": ", ""), array(Maarite::align("left"))) . Html::luo_tablesolu(Html::luo_input(array(Maarite::type("text"), Maarite::name("paikka_hav"), Maarite::value($paikka_hav))) . $maavalikkohtml, array(Maarite::align("left"))), $maar_array);
     // taulukkorivi
     // rivi7: Havainnon varmuus:
     $rivi7 = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_label_for("lisaa myohemmin", Varmuus::$valikko_otsikko, ""), array(Maarite::align("left"))) . Html::luo_tablesolu($varmuusvalikko, array(Maarite::align("left"))), $maar_array);
     // taulukkorivi
     // rivi8: Havaintokommentti:
     $rivi8 = Html::luo_tablerivi(Html::luo_tablesolu(Bongaustekstit::$kommentti, array(Maarite::align("left"))) . Html::luo_tablesolu(Html::luo_textarea($kommentti_hav, array(Maarite::cols(50), Maarite::rows(6), Maarite::name("kommentti_hav"))), array(Maarite::align("left"))), $maar_array);
     // taulukkorivi
     // rivi9: Painikkeet:
     $rivi9 = Html::luo_tablerivi(Html::luo_tablesolu("", array(Maarite::align("left"))) . Html::luo_tablesolu($submitnappi . $poistunappi, array(Maarite::align("left"))), $maar_array);
     // taulukkorivi
     // Rivit taulukon sisään:
     $taulukko = Html::luo_table($rivi1 . $rivi2 . $rivi3 . $rivi4 . $rivi5 . $rivi6 . $rivi7 . $rivi8 . $rivi9, array(Maarite::summary("uudet_tiedot"), Maarite::id(Bongausasetuksia::$havaintolomakkeen_id)));
     // Taulukko lomakkeen sisään:
     $html = Html::luo_form($taulukko, array(Maarite::align("center"), Maarite::method("post"), Maarite::action("index.php" . $url_id)));
     // näytetään js-päivämäärä
     $html .= Html::luo_script_js("nayta_pvm();");
     return $html;
 }