예제 #1
0
/**
 * 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;
}