/** * Toteuttaa alusta loppuun uuden lajiluokan tallennuksen. * @param Parametrit $parametriolio * @return Palaute $palauteolio */ function toteuta_uuden_lajiluokan_tallennus($parametriolio) { $omaid = $parametriolio->omaid; $ylaluokka_id_lj = $parametriolio->ylaluokka_id_lj; $nimi_latina_lj = $parametriolio->nimi_latina_lj; $nimi_kuv = $parametriolio->nimi_kuv; $kuv_kuv = $parametriolio->kuv_kuv; $kieli_kuv = $parametriolio->kieli_kuv; $tietokantaolio = $parametriolio->tietokantaolio; $paiva_hav = $parametriolio->paiva_hav; $kk_hav = $parametriolio->kk_hav; $vuosi_hav = $parametriolio->vuosi_hav; // Määritellään kaksialkioinen taulukko, jonka metodi palauttaa: $palautetaulukko = array(); $palautetaulukko[0] = "Ilmoitus"; $palautetaulukko[1] = "Sisalto"; $palauteolio = new Palaute(); // Tarkistetaan tiedot: $uusi = true; $tarkistustulos = tarkista_lajiluokkatiedot($tietokantaolio, $ylaluokka_id_lj, $nimi_latina_lj, $nimi_kuv, $kuv_kuv, $uusi); // Ellei tiedot ole kunnossa, palautetaan virheilmoitus ja näytetään // lomake: if ($tarkistustulos != Bongausasetuksia::$lomaketiedot_kunnossa) { $palautetaulukko[0] = $tarkistustulos; $id_jl = "tuntematon"; // Tätä ei vielä tiedetä! $palautetaulukko[1] = nayta_lajiluokkalomake($ylaluokka_id_lj, $nimi_latina_lj, $nimi_kuv, $kuv_kuv, $kieli_kuv, $uusi, $tietokantaolio); } else { $kyselylause = "INSERT INTO blajiluokat (ylaluokka_id, nimi_latina)\n VALUES ('{$ylaluokka_id_lj}', '{$nimi_latina_lj}')"; mysql_query($kyselylause) or die(Bongaustekstit::$lajiluokka_virheilm_tallennus_eiok); $lajiluokan_id = mysql_insert_id(); // Hakee viimeksi lisätyn rivin id:n. // Jos rivi tallentui, tallennetaan sitä vastaava uusi kuvaustaulun rivi: if (mysql_affected_rows() == 1) { // Aktiivisuusmerkintä: $viimeksi_aktiivi = time(); $aktiivisuuslaji = Aktiivisuus::$LAJILUOKKA_UUDEN_TALLENNUS; paivita_aktiivisuus($omaid, $tietokantaolio, $viimeksi_aktiivi, $aktiivisuuslaji); $taulu = "bkuvaukset"; $sarakenimitaulukko = array("lajiluokka_id", "nimi", "kuvaus", "kieli"); $arvotaulukko = array($lajiluokan_id, $nimi_kuv, $kuv_kuv, $kieli_kuv); $kuvaustallennuspalaute = $tietokantaolio->tallenna_uusi_rivi($taulu, $sarakenimitaulukko, $arvotaulukko, Bongaustekstit::$kuvaus_virheilm_tallennus_eiok); if ($kuvaustallennuspalaute != Bongausasetuksia::$tietokantahaku_onnistui) { $palautetaulukko[0] = $kuvaustallennuspalaute; $palautetaulukko[1] = nayta_lajiluokkalomake($id_lj, $ylaluokka_id_lj, $nimi_latina_lj, $nimi_kuv, $kuv_kuv, $kieli_kuv, $uusi, $tietokantaolio); } else { // Aktiivisuusmerkintä: $viimeksi_aktiivi = time(); $aktiivisuuslaji = Aktiivisuus::$LAJILUOKKAKUVAUS_UUDEN_TALLENNUS; paivita_aktiivisuus($omaid, $tietokantaolio, $viimeksi_aktiivi, $aktiivisuuslaji); $palautetaulukko[0] = Bongaustekstit::$lajiluokka_ja_kuvaus_tallennus_ok; /*$palautetaulukko[1] = ""; //hae_havainnot($tietokantaolio, $ylaluokka_id_lj);*/ $lajiluokka_id_hav = $lajiluokan_id; //Lisätty lajiluokka $kuvalinkki_id_hav = -1; // Kun lisätty ei ole luokka, näytetään suoraan havaintolomake: $parametriolio->id_hav = false; // Tätä ei vielä tiedetä. if ($ylaluokka_id_lj != -1) { $parametriolio->set_uusi_hav(true); $palautetaulukko[1] = nayta_havaintolomake($parametriolio); } else { $palautetaulukko[1] = hae_havainnot($parametriolio); } } } } $palauteolio->set_sisalto($palautetaulukko[1]); $palauteolio->set_ilmoitus($palautetaulukko[0]); $palauteolio->set_oikean_palkin_naytto(true); return $palauteolio; }