/** * 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>"; }
/** * 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; }