function __construct($tietokantaolio, $id) { // Määritellään tietokantatiedot. True, jos on luku, muuten false. $tietokantasolut = array(new Tietokantasolu(Testiolio::$SARAKENIMI_ID, Tietokantasolu::$luku_int), new Tietokantasolu(Testiolio::$SARAKENIMI_LUOMISHETKI_SEK, Tietokantasolu::$luku_int), new Tietokantasolu(Testiolio::$SARAKENIMI_ED_MUUTOS_SEK, Tietokantasolu::$luku_int), new Tietokantasolu(Testiolio::$SARAKENIMI_KOMMENTTI, Tietokantasolu::$mj_tyhja_EI_ok)); $taulunimi = "testiolio"; parent::__construct($tietokantaolio, $id, $taulunimi, $tietokantasolut); }
function __construct($id, $tietokantaolio) { $tietokantasolut = array(new Tietokantasolu(Elementti::$SARAKENIMI_ID, Tietokantasolu::$luku_int), new Tietokantasolu(Elementti::$sarakenimi_kooste_id, Tietokantasolu::$luku_int), new Tietokantasolu(Elementti::$sarakenimi_olio_id, Tietokantasolu::$luku_int), new Tietokantasolu(Elementti::$sarakenimi_oliotyyppi, Tietokantasolu::$luku_int), new Tietokantasolu(Elementti::$sarakenimi_jarjestysluku, Tietokantasolu::$luku_int), new Tietokantasolu(Elementti::$sarakenimi_pisteet, Tietokantasolu::$luku_int), new Tietokantasolu(Elementti::$sarakenimi_nakyvyys, Tietokantasolu::$luku_int)); $taulunimi = Elementti::$taulunimi; parent::__construct($tietokantaolio, $id, $taulunimi, $tietokantasolut); $this->ed_id = Elementti::$MUUTTUJAA_EI_MAARITELTY; $this->seur_id = Elementti::$MUUTTUJAA_EI_MAARITELTY; }
function __construct($id, $tietokantaolio) { $tietokantasolut = array(new Tietokantasolu(Ratkaisu::$SARAKENIMI_ID, Tietokantasolu::$luku_int), new Tietokantasolu(Ratkaisu::$sarakenimi_teht_id, Tietokantasolu::$luku_int), new Tietokantasolu(Ratkaisu::$sarakenimi_henkilo_id, Tietokantasolu::$luku_int), new Tietokantasolu(Ratkaisu::$sarakenimi_luomishetki_sek, Tietokantasolu::$luku_int), new Tietokantasolu(Ratkaisu::$sarakenimi_ed_muutos_sek, Tietokantasolu::$luku_int), new Tietokantasolu(Ratkaisu::$sarakenimi_vastaus, Tietokantasolu::$mj_tyhja_EI_ok), new Tietokantasolu(Ratkaisu::$sarakenimi_ratkaisu, Tietokantasolu::$mj_tyhja_ok), new Tietokantasolu(Ratkaisu::$sarakenimi_nakyvyys, Tietokantasolu::$luku_int)); $taulunimi = Ratkaisu::$taulunimi; parent::__construct($tietokantaolio, $id, $taulunimi, $tietokantasolut); $this->kuuluu_koosteeseen = false; // Oletus $this->otsikkomerkinta = ""; $this->nakyvyysmerkki = ""; }
/** * Konstruktorin "overloading" eli eri konstruktorit eri parametreille * ei ole tuettu PHP:ssä. Kierrän tämän antamalla parametreille, joita * ei käytetä, vakioarvon, joka tarkoittaa, ettei parametri käytössä. * * @param Tietokantaolio $tietokantaolio * @param <type> $tk_kuvausolio Tietokantahausta saatava yksi rivi * oliona. */ function __construct($tietokantaolio, $id) { // Huomaa, että taulunimenä on yliluokassa vain pääluokkataulun nimi: parent::__construct($tietokantaolio, $id, "bkuvaukset"); $this->virheilmot = array(); $this->lajiluokka_id = Kuvaus::$MUUTTUJAA_EI_MAARITELTY; $this->nimi = Kuvaus::$MUUTTUJAA_EI_MAARITELTY; $this->kuvaus = Kuvaus::$MUUTTUJAA_EI_MAARITELTY; $this->kieli = Kuvaus::$MUUTTUJAA_EI_MAARITELTY; // Haetaan ja sijoitetaan tietokantarivin arvot, jos se on // olemassa eli parametri käytössä ja tietokantaolio oikea luokka. if ($this->tietokantaolio instanceof Tietokantaolio && $this->get_id() != Kuvaus::$PARAMETRI_EI_KAYTOSSA) { // Haetaan kuvauksen tiedot tietokannasta: try { $taulunimi = $this->tk_taulunimi; // bkuvaukset $sarakenimi = Kuvaus::$SARAKENIMI_ID; $hakuarvo = $this->id; $tk_kuvausolio = $this->tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo); if ($tk_kuvausolio != Tietokantaolio::$HAKU_PALAUTTI_TYHJAN) { $this->lajiluokka_id = $tk_kuvausolio->lajiluokka_id; $this->nimi = $tk_kuvausolio->nimi; $this->kuvaus = $tk_kuvausolio->kuvaus; $this->kieli = $tk_kuvausolio->kieli; $this->olio_loytyi_tietokannasta = true; } else { // Jos mitään ei löydy, muutetaan ei-määritellyksi: $tk_kuvausolio = Kuvaus::$MUUTTUJAA_EI_MAARITELTY; $this->id = Kuvaus::$MUUTTUJAA_EI_MAARITELTY; } // Otetaan ylös tiedot luokan muuttujaaan. $this->tk_olio = $tk_kuvausolio; } catch (Exception $virhe) { nollaa_muuttujat(); } } }
/** * Metodi, joka tallentaa muokatun kokonaisuuden tiedot tietokantaan. * Palauttaa arvon Malliluokkapohja::$VIRHE, jos tallennus epäonnistuu, * muuten arvon Malliluokkapohja::$OPERAATIO_ONNISTUI. * * Ajaa Malliluokkapohjan vastaavan metodin yli. * * Seuraavat arvot asetetaan täällä automaattisesti, joten niistä ei * tarvitse muualla huolehtia: * * ed_muutos_sek * * luomishetki_sek-arvoa ei ole syytä muuttaa, vaikka sitä ei estetä täällä. * * Huolehtii myös isikokonaisuuksien on_lapsia-arvojen päivittämisestä silloin, kun * isikokonaisuutta vaihdetaan. Tällöin sekä uuden että vanhan isi- * kokonaisuuden on_lapsia-arvot tarkistetaan ja päivitetään. * * @return int Palauttaa normaalin Malliluokkapohja::$VIRHE tai * Malliluokkapohja::$OPERAATIO_ONNISTUI -arvon. * */ function tallenna_muutokset() { $this->set_arvo(time(), Kokonaisuusolio::$sarakenimi_ed_muutos_sek); // Haetaan tietokannassa olevan olion ylakokonaisuuden_id, koska tämän // olion arvoja on jo saatettu muuttaa: $vanha = new Kokonaisuusolio($this->get_id(), $this->tietokantaolio); $ylakokonaisuuden_id_vanha = $vanha->getYlakokonaisuuden_id(); $tallennus = parent::tallenna_muutokset(); if ($tallennus === Malliluokkapohja::$OPERAATIO_ONNISTUI) { // Päivitetään on_lapsia, jos kokonaisuus on linkitetty johonkin muuhun: $ylakokonaisuuden_id = $this->getYlakokonaisuuden_id(); if ($ylakokonaisuuden_id != $ylakokonaisuuden_id_vanha) { // Jos uusi yläkokonaisuus on olemassaolevan kokonaisuus, // varmistetaan, että sillä on lapsia. if ($ylakokonaisuuden_id > 0) { $ylakok = new Kokonaisuusolio($ylakokonaisuuden_id, $this->tietokantaolio); if ($ylakok->olio_loytyi_tietokannasta) { $on_lapsia = 1; $onnistuminen = $ylakok->tallenna_on_lapsia_muutos_kokon($on_lapsia); if ($onnistuminen === Kokonaisuusolio::$VIRHE) { $this->lisaa_virheilmoitus(Tekstit::$virheilm_kokon_muutostallennus_lapsimuutos_eiok); } } else { $this->lisaa_virheilmoitus(Tekstit::$ilm_kokon_ei_loytynyt); } } // Mahdollinen entinen yläkokonaisuus pitää myös tarkistaa, onko // sillä vielä lapsia vai ei. Mutta vain jos id > 0, koska // muuten kokonaisuudella ei ennen ollut yläkokonaisuuksia. if ($ylakokonaisuuden_id_vanha > 0) { $ylakok_vanha = new Kokonaisuusolio($ylakokonaisuuden_id_vanha, $this->tietokantaolio); if ($ylakok_vanha->olio_loytyi_tietokannasta) { if ($ylakok_vanha->on_lapsia_kokon()) { $on_lapsia = 1; } else { $on_lapsia = 0; } $onnistuminen = $ylakok_vanha->tallenna_on_lapsia_muutos_kokon($on_lapsia); if ($onnistuminen === Kokonaisuusolio::$VIRHE) { $this->lisaa_virheilmoitus(Tekstit::$virheilm_kokon_muutostallennus_lapsimuutos_eiok); } } else { $this->lisaa_virheilmoitus(Tekstit::$ilm_kokon_ei_loytynyt); } } } } return $tallennus; }
public function nollaa_muuttujat() { parent::nollaa_muuttujat(); // Kutsuu Malliluokkapohjan metodia. $this->id = Kuva::$MUUTTUJAA_EI_MAARITELTY; // Tämä tarkkaan ottaen turha. $this->henkilo_id = Kuva::$MUUTTUJAA_EI_MAARITELTY; $this->kuvaotsikko = Kuva::$MUUTTUJAA_EI_MAARITELTY; $this->kuvaselitys = Kuva::$MUUTTUJAA_EI_MAARITELTY; $this->vuosi = Kuva::$MUUTTUJAA_EI_MAARITELTY; $this->kk = Kuva::$MUUTTUJAA_EI_MAARITELTY; $this->paiva = Kuva::$MUUTTUJAA_EI_MAARITELTY; $this->src = Kuva::$MUUTTUJAA_EI_MAARITELTY; $this->leveys = Kuva::$MUUTTUJAA_EI_MAARITELTY; $this->korkeus = Kuva::$MUUTTUJAA_EI_MAARITELTY; $this->tiedostokoko = Kuva::$MUUTTUJAA_EI_MAARITELTY; $this->tiedostotunnus = Kuva::$MUUTTUJAA_EI_MAARITELTY; $this->tiedostonimi = Kuva::$MUUTTUJAA_EI_MAARITELTY; $this->tallennusaika_sek = Kuva::$MUUTTUJAA_EI_MAARITELTY; }
function __construct($id, $tietokantaolio) { $tietokantasolut = array(new Tietokantasolu(Palautus::$sarakenimi_kuvaus, Tietokantasolu::$mj_tyhja_ok), new Tietokantasolu(Palautus::$sarakenimi_teksti, Tietokantasolu::$mj_tyhja_ok), new Tietokantasolu(Palautus::$sarakenimi_kurssitieto_id, Tietokantasolu::$luku_int), new Tietokantasolu(Palautus::$sarakenimi_opiskelija_etunimi, Tietokantasolu::$mj_tyhja_EI_ok), new Tietokantasolu(Palautus::$sarakenimi_opiskelija_sukunimi, Tietokantasolu::$mj_tyhja_EI_ok), new Tietokantasolu(Palautus::$sarakenimi_luomishetki_sek, Tietokantasolu::$luku_int)); $taulunimi = Palautus::$taulunimi; parent::__construct($tietokantaolio, $id, $taulunimi, $tietokantasolut); }
function __construct($id, $tietokantaolio) { $tietokantasolut = array(new Tietokantasolu(Kurssitieto::$sarakenimi_tunniste, Tietokantasolu::$mj_tyhja_EI_ok), new Tietokantasolu(Kurssitieto::$sarakenimi_kuvaus, Tietokantasolu::$mj_tyhja_ok), new Tietokantasolu(Kurssitieto::$sarakenimi_opettaja_nimi, Tietokantasolu::$mj_tyhja_EI_ok), new Tietokantasolu(Kurssitieto::$sarakenimi_opettaja_id, Tietokantasolu::$luku_int), new Tietokantasolu(Kurssitieto::$sarakenimi_nakyvyys, Tietokantasolu::$luku_int), new Tietokantasolu(Kurssitieto::$sarakenimi_luomishetki_sek, Tietokantasolu::$luku_int)); $taulunimi = Kurssitieto::$taulunimi; parent::__construct($tietokantaolio, $id, $taulunimi, $tietokantasolut); }
function __construct($id, $tietokantaolio) { $tietokantasolut = array(new Tietokantasolu(Elementtiryhmalinkki::$SARAKENIMI_ID, Tietokantasolu::$luku_int), new Tietokantasolu(Elementtiryhmalinkki::$sarakenimi_elementtiryhma_id, Tietokantasolu::$luku_int), new Tietokantasolu(Elementtiryhmalinkki::$sarakenimi_elementti_id, Tietokantasolu::$luku_int)); $taulunimi = Elementtiryhmalinkki::$taulunimi; parent::__construct($tietokantaolio, $id, $taulunimi, $tietokantasolut); }
/** * Varmistetaan ennen tallennusta, ettei vastaavaa lisävaltuutta tai * yleistä lisävaltuutta ole olemassa kyseiselle henkilölle. * * <p>Palauttaa onnistumisen mukaan joko Malliluokkapohja::$OPERAATIO_ONNISTUI * tai Malliluokkapohja::$VIRHE.</p> * * Virhetilanteessa lähetetään oliolle virheilmoitus, jonka voi kutsuja * hyödyntää. */ public function tallenna_uusi() { // Uusi lisätään vain, jos arvot kunnossa ja tietokannassa ei vanhoja. if ($this->on_tallennuskelpoinen()) { return parent::tallenna_uusi(); } else { return Lisavaltuudet::$VIRHE; } }
/** * Lisää tarkistuksia esimerkiksi liittyen tunnuksiin. Palauttaa samat * arvot kuin Malliluokkapohjan metodikin. Virheen sattuessa ilmoitukset * virheilmoituksissa. * * Huomaa, että salasana koodaus tehdään vasta tarkistuksen jälkeen, jotta * tarkistus on mahdollinen. Tämä tosin aiheutti melkein aika ilkeän * virheen, jonka onneksi testiohjelma huomasi... */ public function tallenna_muutokset() { // Tarkistetaan ennen tallennuksen yrittämistä. $uusi_olio = false; if ($this->on_tallennuskelpoinen($uusi_olio)) { // Jos kaikki kunnossa, koodataan tarvittaessa salasana ja tallennetaan: if ($this->tunnusten_muokkaus === Tunnukset::$kumpikin || $this->tunnusten_muokkaus === Tunnukset::$vain_salis) { $koodattu = md5($this->get_arvo(Henkilo::$sarakenimi_salasana)); $this->set_arvo($koodattu, Henkilo::$sarakenimi_salasana); } $tallennuspalaute = parent::tallenna_muutokset(); } else { $tallennuspalaute = Henkilo::$VIRHE; // Tämä oli ilkeä: virheellinen arvo aiheutti sen, että // salasana jäi koodaamattomaan muotoon, ja jos heti perään // muokattiin olion jotakin muuta kuin tunnusta, livahti // tietokantaan salasana selväkielisenä! Kannatti testata... // Pitää siis koodata täällä myös! if ($this->tunnusten_muokkaus === Tunnukset::$kumpikin || $this->tunnusten_muokkaus === Tunnukset::$vain_salis) { $koodattu = md5($this->get_arvo(Henkilo::$sarakenimi_salasana)); $this->set_arvo($koodattu, Henkilo::$sarakenimi_salasana); } } return $tallennuspalaute; }
/** * Asettaa olion muuttujille samat arvot kuin ilman tietokantatietoja * luodessa: */ function nollaa_muuttujat() { parent::nollaa_muuttujat(); $this->ylaluokka_id = Lajiluokka::$MUUTTUJAA_EI_MAARITELTY; $this->nimi_latina = Lajiluokka::$MUUTTUJAA_EI_MAARITELTY; }
function __construct($id, $tietokantaolio) { $tietokantasolut = array(new Tietokantasolu(Elementtiryhma::$SARAKENIMI_ID, Tietokantasolu::$luku_int), new Tietokantasolu(Elementtiryhma::$sarakenimi_tunnus, Tietokantasolu::$luku_int), new Tietokantasolu(Elementtiryhma::$sarakenimi_kooste_id, Tietokantasolu::$luku_int), new Tietokantasolu(Elementtiryhma::$sarakenimi_nimi, Tietokantasolu::$mj_tyhja_EI_ok), new Tietokantasolu(Elementtiryhma::$sarakenimi_selitys, Tietokantasolu::$mj_tyhja_ok)); $taulunimi = Elementtiryhma::$taulunimi; parent::__construct($tietokantaolio, $id, $taulunimi, $tietokantasolut); }
function __construct($id, $tietokantaolio) { $tietokantasolut = array(new Tietokantasolu(Aktiivisuus::$SARAKENIMI_ID, Tietokantasolu::$luku_int), new Tietokantasolu(Aktiivisuus::$sarakenimi_henkilo_id, Tietokantasolu::$luku_int), new Tietokantasolu(Aktiivisuus::$sarakenimi_viimeksi_aktiivi, Tietokantasolu::$luku_int), new Tietokantasolu(Aktiivisuus::$sarakenimi_aktiivisuuslaji, Tietokantasolu::$luku_int)); $taulunimi = Aktiivisuus::$taulunimi; parent::__construct($tietokantaolio, $id, $taulunimi, $tietokantasolut); }
/** * Muuttaa kaikki muuttujat, myös id:n ja tietokantaolion arvoiksi * Lajiluokka::MUUTTUJAA_EI_MAARITELTY */ public function nollaa_muuttujat() { parent::nollaa_muuttujat(); $this->henkilo_id = Havainto::$MUUTTUJAA_EI_MAARITELTY; $this->lajiluokka_id = Havainto::$MUUTTUJAA_EI_MAARITELTY; $this->kommentti = Havainto::$MUUTTUJAA_EI_MAARITELTY; $this->paikka = Havainto::$MUUTTUJAA_EI_MAARITELTY; $this->vuosi = Havainto::$MUUTTUJAA_EI_MAARITELTY; $this->kk = Havainto::$MUUTTUJAA_EI_MAARITELTY; $this->paiva = Havainto::$MUUTTUJAA_EI_MAARITELTY; $this->maa = Havainto::$MUUTTUJAA_EI_MAARITELTY; $this->varmuus = Havainto::$MUUTTUJAA_EI_MAARITELTY; $this->muutetut_bkuvalinkit_lkm = Havainto::$MUUTTUJAA_EI_MAARITELTY; $this->poistetut_pikakommentit_lkm = Havainto::$MUUTTUJAA_EI_MAARITELTY; $this->vanha_lajiluokka_id = Havainto::$MUUTTUJAA_EI_MAARITELTY; }
function __construct($id, $tietokantaolio) { $tietokantasolut = array(new Tietokantasolu(Kooste::$SARAKENIMI_ID, Tietokantasolu::$luku_int), new Tietokantasolu(Kooste::$sarakenimi_henkilo_id, Tietokantasolu::$luku_int), new Tietokantasolu(Kooste::$sarakenimi_oppiaine, Tietokantasolu::$luku_int), new Tietokantasolu(Kooste::$sarakenimi_taso, Tietokantasolu::$luku_int), new Tietokantasolu(Kooste::$sarakenimi_kieli, Tietokantasolu::$luku_int), new Tietokantasolu(Kooste::$sarakenimi_tyyppi, Tietokantasolu::$luku_int), new Tietokantasolu(Kooste::$sarakenimi_otsikko, Tietokantasolu::$mj_tyhja_ok), new Tietokantasolu(Kooste::$sarakenimi_nimi, Tietokantasolu::$mj_tyhja_EI_ok), new Tietokantasolu(Kooste::$sarakenimi_selitys, Tietokantasolu::$mj_tyhja_ok), new Tietokantasolu(Kooste::$sarakenimi_nakyvyys, Tietokantasolu::$luku_int), new Tietokantasolu(Kooste::$sarakenimi_organisaatio, Tietokantasolu::$mj_tyhja_ok)); $taulunimi = Kooste::$taulunimi; parent::__construct($tietokantaolio, $id, $taulunimi, $tietokantasolut); }