/** * Toteuttaa nimenmukaisen toiminnon. * @return Palauteolio $palauteolio */ public function toteuta_nayta_havainto_ja_kuva_siirtolomake() { $lajiluokkaolio = new Lajiluokka($this->tietokantaolio, $this->parametriolio->id_lj); $sisaret = array(); // Muut lajiluokat. $this->parametriolio->kieli_id = Kielet::$SUOMI; // Haetaan suomenkielinen nimi, tai latina, ellei suomeksi löydy. // Tarkistetaan ensin, että lajiluokkaolio kunnossa: if ($lajiluokkaolio->olio_loytyi_tietokannasta) { $kuvaus = $lajiluokkaolio->hae_kuvaus(Kielet::$SUOMI); if ($kuvaus === Lajiluokka::$MUUTTUJAA_EI_MAARITELTY) { $this->parametriolio->nimi_kuv = $lajiluokkaolio->get_nimi_latina(); } else { $this->parametriolio->nimi_kuv = $kuvaus->get_nimi(); } // Haetaan sisarlajit lajivalikkoa varten. Itseä ei mukaan! $kieli_id = $this->parametriolio->kieli_id; $itse_mukana = FALSE; $sisaret = $lajiluokkaolio->hae_sisarlajiluokat($kieli_id, $itse_mukana); } else { $this->parametriolio->nimi_kuv = "tuntematon"; } $oletus_id_lj = $lajiluokkaolio->get_id(); $sisarlajiluokat = $sisaret; $otsikko = ""; $kieli_id = $this->parametriolio->kieli_id; $name_arvo = Bongausasetuksia::$havaintokuvasiirtolomakevalikko_name; $lajivalikko = Nakymat_lj::nayta_lajivalikko($oletus_id_lj, $sisarlajiluokat, $otsikko, $kieli_id, $name_arvo); $this->palauteolio->set_sisalto(Nakymat_lj::nayta_havaintojen_ja_kuvien_siirtolomake($this->parametriolio, $lajivalikko)); return $this->palauteolio; }
/** * Palauttaa lajiluokan nimen halutulla kielellä tai arvon * Bongaustekstit::$tuntematon. * @param type $id_lj * @param type $tietokantaolio * @param type $kieli_id */ public static function hae_lajiluokan_nimi($id_lj, $tietokantaolio, $kieli_id) { $nimi = Bongaustekstit::$tuntematon; $lajiluokka = new Lajiluokka($tietokantaolio, $id_lj); if ($lajiluokka->olio_loytyi_tietokannasta) { $kuvaus = $lajiluokka->hae_kuvaus($kieli_id); if ($kuvaus->olio_loytyi_tietokannasta) { $nimi = $kuvaus->get_nimi(); } } return $nimi; }
/** * Toteuttaa monen uuden havainnon tallennuksen. * @return \Palaute */ public function toteuta_tallenna_monta_uutta() { $tietokantaolio = $this->get_tietokantaolio(); $palauteolio = $this->get_palauteolio(); // Sisältää valittujen lajiluokkien id:t. $valinnat = $this->get_parametriolio()->lajivalinnat_hav; $laskuri = 0; $tallennusten_lkm = 0; $virheiden_lkm = 0; $tallennetut_lajit = ""; // Nimet kerätään tähän. foreach ($valinnat as $id_lj) { $uusi = new Havainto($this->tietokantaolio(), Havainto::$PARAMETRI_EI_KAYTOSSA); $uusi->set_henkilo_id($this->get_parametriolio()->omaid); $uusi->set_lajiluokka_id($id_lj); $uusi->set_paiva($this->get_parametriolio()->paiva_hav); $uusi->set_kk($this->get_parametriolio()->kk_hav); $uusi->set_vuosi($this->get_parametriolio()->vuosi_hav); $uusi->set_paikka($this->get_parametriolio()->paikka_hav); $uusi->set_kommentti($this->get_parametriolio()->kommentti_hav); $uusi->set_maa($this->get_parametriolio()->maa_hav); $uusi->set_varmuus($this->get_parametriolio()->varmuus_hav); if ($uusi->tallenna_uusi() === Havainto::$OPERAATIO_ONNISTUI) { $tallennusten_lkm++; // Haetaan nimi tallennetulle: $nimi = Bongaustekstit::$nimi_tuntematon; $lajiluokka = new Lajiluokka($tietokantaolio, $id_lj); if ($lajiluokka->olio_loytyi_tietokannasta) { $kuvaus = $lajiluokka->hae_kuvaus($this->get_parametriolio()->kieli_id); if ($kuvaus instanceof Kuvaus) { if ($laskuri == 0) { $nimi = $kuvaus->get_nimi(); } else { $nimi = ", " . $kuvaus->get_nimi(); } } } $tallennetut_lajit .= $nimi; } else { $virheiden_lkm++; } $laskuri++; } // Aktiivisuusmerkintä (vain kerran): $viimeksi_aktiivi = time(); $aktiivisuuslaji = Aktiivisuus::$HAVAINTO_UUDEN_TALLENNUS; paivita_aktiivisuus($this->get_parametriolio()->omaid, $tietokantaolio, $viimeksi_aktiivi, $aktiivisuuslaji); // Palautteet: if ($tallennusten_lkm == sizeof($valinnat)) { $kommentti = $tallennusten_lkm . " " . Bongaustekstit::$ilm_havaintojen_lisays_ok . " (" . $tallennetut_lajit . ")"; } else { $kommentti = $virheiden_lkm . " " . Bongaustekstit::$ilm_havaintojen_lisays_eiok; } $palauteolio->set_ilmoitus($kommentti); // Avataan havainnot. $palauteolio->set_sisalto($this->toteuta_nayta()->get_sisalto()); return $palauteolio; }
/** * Palauttaa yhden olion tiedot taulukkoriviin pakattuna (tr-elementti). * Huomaa huolehtia muista taulukkotageista! * @param \Havainto $hav * @param int $rivinro Taulukon rivin juokseva nro alkaen yhdestä. * @param bool $erikoisvarustelu TRUE -> sopii poistovahvistukseen jne. * @return type */ public function luo_taulukkorivi($hav, $rivinro, $erikoisvarustelu) { $rivi_class = ""; if ($rivinro % 2 == 0) { $rivi_class = Bongausasetuksia::$havaintotaulu_parillinenrivi_class; } $rivi_id = "havainto" . $hav->get_id(); // Haetaan sitten lajiluokan nimi (kieli saadaan parametrioliosta: $lj = new Lajiluokka($this->tietokantaolio, $hav->get_lajiluokka_id()); $kuvaus = $lj->hae_kuvaus($this->parametriolio->kieli_id); if ($kuvaus === Lajiluokka::$MUUTTUJAA_EI_MAARITELTY) { $nimi = $lj->get_nimi_latina(); } else { $nimi = $kuvaus->get_nimi(); } $bongaajan_nimi = hae_henkilon_nimi($hav->get_henkilo_id(), true, $this->tietokantaolio); //========================== PIkakommentit ========================= // Toiminnot on tässä vaiheessa valintaruutu. Hakasulut pitää lisätä! $maar_array_valinnat = array(Maarite::name(Bongausasetuksia::$havaintovalinta_id_taulukko_name . "[]"), Maarite::value($hav->get_id())); $toimintasolu = Html::luo_tablesolu(Html::luo_checkbox($maar_array_valinnat), array()); // Esim. poistovahvistuksessa valinta oletuksena päällä (koska nämä // on valittu): if ($erikoisvarustelu) { Maarite::lisaa_maarite(Maarite::checked(), $maar_array_valinnat); $toimintasolu = Html::luo_tablesolu(Html::luo_checkbox($maar_array_valinnat), array()); } //========================== PIkakommentit ========================= $pikakommenttisolu = ""; $kommenttien_lkm = 0; $on_uusia_pk = false; $pikakommentit = Pikakommentti::hae_pikakommentit($this->parametriolio->omaid, Pikakommentti::$KOHDE_BONGAUS, $hav->get_id(), $this->tietokantaolio); // 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($pikakommentit)) { $kommenttien_lkm = sizeof($pikakommentit); if ($pikakommentit[0]->get_tallennushetki_sek() > $_SESSION['edellinen_uloskirjausaika_sek'] && $pikakommentit[0]->get_henkilo_id() != $this->parametriolio->omaid) { $on_uusia_pk = true; } } // Taulukon solun muotoilu: $onclick = Maarite::onclick("hae_pikakommentit", array(Pikakommentti::$KOHDE_BONGAUS, $hav->get_id())); $pk_class = ""; if ($on_uusia_pk) { $pk_class = "on_uusia"; } $pikakommenttisolu = Html::luo_tablesolu(Html::luo_span($kommenttien_lkm, array(Maarite::id("id" . $hav->get_id()))), array(Maarite::classs($pk_class), Maarite::title(Bongaustekstit::$ilm_pikakommentit_nakyviin), Maarite::onclick("hae_pikakommentit", array(Pikakommentti::$KOHDE_BONGAUS, $hav->get_id())))); //============= PIkakommentit loppu ================================ // Muokataan varmuus- ja maamerkinnät: // Maa merkitään, ellei Suomi: if ($hav->get_maa() == Maat::$suomi) { $maa = ""; } else { $maa = " (" . Maat::hae_maan_kuvaus($hav->get_maa()) . ")"; } // Vain epävarmuus näytetään $varmuus = ""; if ($hav->get_varmuus() == Varmuus::$epavarma) { $varmuus = " (?)"; } // Haetaan kuva_id ja koodi: $kuvaolio = $hav->hae_kuva(); if ($kuvaolio instanceof Kuva) { $kuvakoodi = $kuvaolio->nayta_pelkka_kuva($this->parametriolio->kuvien_kansio_osoite); $kuva_id = $kuvaolio->getId(); } else { $kuvakoodi = ""; $kuva_id = -1; } // Mahdollistetaan kuvan näyttö klikkaamalla: // Kuvaa klikkaamalla saadaan se isoksi: $klikkaus = ""; // Tyhjä, ellei kuvakoodi ok. $title = ""; if ($kuvakoodi != "") { $klikkaus = Maarite::onclick("hae_kuva_ja_tiedot", array($hav->get_lajiluokka_id(), $kuva_id, Kuva::$KUVAT_BONGAUS)); $title = Bongaustekstit::$havtaulkuvan_klikkausohje; } return Html::luo_tablerivi(Html::luo_tablesolu($rivinro, array()) . Html::luo_tablesolu($nimi . $varmuus, array(Maarite::classs("huomio"), Maarite::title(Bongauspainikkeet::$HAVAINNOT_NAYTA_LAJIHAVAINNOT_TITLE), Maarite::onclick("hae_lajihavainnot", array($hav->get_lajiluokka_id())))) . Html::luo_tablesolu($hav->hae_pvm(), array()) . Html::luo_tablesolu($hav->get_paikka() . $maa, array()) . Html::luo_tablesolu(Html::luo_table(Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_span($hav->get_kommentti(), array(Maarite::classs(Bongausasetuksia::$havaintokuvakommentti_class))), array(Maarite::classs("rajaton"))) . Html::luo_tablesolu($kuvakoodi, array(Maarite::classs("rajaton"), $klikkaus, Maarite::title($title))), array()), array()), array(Maarite::name(Bongausasetuksia::$havaintotaulukon_kommenttisolun_name_arvo))) . Html::luo_tablesolu($bongaajan_nimi, array(Maarite::classs("huomio"), Maarite::title(Bongauspainikkeet::$HAVAINNOT_NAYTA_HENKILON_HAVAINNOT_TITLE), Maarite::onclick("hae_henkilon_havainnot", array($hav->get_henkilo_id(), $hav->get_lajiluokka_id())))) . $toimintasolu . $pikakommenttisolu, array(Maarite::classs($rivi_class), Maarite::id($rivi_id))); }