/** * Toteuttaa nimenmukaisen toiminnon. * @return Palauteolio $palauteolio */ public function toteuta_poista_PK() { $uusi = true; // false aiheutti vaikeasti huomattavan virheen. Ei // ollut tallennuskelpoinen.. if ($this->nyk_pikakommentti->on_tallennuskelpoinen($uusi)) { $palaute = $this->nyk_pikakommentti->poista(); if ($palaute == Pikakommentti::$OPERAATIO_ONNISTUI) { $ilmoitus = Pikakommenttitekstit::$ilmoitus_pikakommentin_poisto_ok; } else { $ilmoitus = Pikakommenttitekstit::$virheilmoitus_pikakommentin_poisto_eiok; } } else { $ilmoitus = $this->nyk_pikakommentti->tulosta_virheilmoitukset(); } $this->palauteolio->set_ilmoitus($ilmoitus); return $this->palauteolio; }
public function testaa_pikakommentin_muokkaus() { $this->lisaa_testikommentti("<h4>Pikakommentin muokkaustesti alkaa</h4>", false); $this->lisaa_testikommentti("Luodaan uusi pikakommentti hakemalla\n tiedot tietokannasta (id-parametri asetettu)", false); $this->muokattava = new Pikakommentti($this->tietokantaolio, $this->pikakommentit[0]->get_id()); //====================================================================== // Testataan ennen muutoksia onTallennuskelpoinen-metodi, jonka // pitäisi valittaa: $this->lisaa_testikommentti("Testataan ennen muutoksia\n onTallennuskelpoinen-metodi, jonka pitaisi valittaa:", false); $uusi = false; if ($this->muokattava->on_tallennuskelpoinen(false)) { $this->lisaa_testikommentti("Virhe: samoja tietoja ei pida\n paastaa muokkaamaan!", true); } else { $this->lisaa_testikommentti("Oikein: samoja tietoja ei pida\n paastaa muokkaamaan!", false); } //====================================================================== // ASetetaan pikakommentille tahallaan vääriä arvoja: $this->muokattava->set_henkilo_id("piip"); $this->muokattava->set_kohde_id("piip"); $this->muokattava->set_kohde_tyyppi("piip"); $this->muokattava->set_kommentti(1000); // Ei enää aiheuta virhettä // johtuen set-metodin sisältämästä tarkistusmetodista! $this->lisaa_testikommentti("Testataan tahallaan vaarien muutosten jalkeen\n onTallennuskelpoinen-metodi, jonka pitaisi valittaa:", false); // tyhjennetään vielä aiemmat virheilmoitukset: $this->muokattava->tyhjenna_virheilmoitukset(); // Virheilmoituksia pitäisi tulla neljä, yksi kustakin arvosta yllä: if ($this->muokattava->on_tallennuskelpoinen(false)) { $this->lisaa_testikommentti("Virhe: virheita livahti ohi\n tarkastuksen!", true); } else { if ($this->muokattava->virheilmoitusten_lkm() == 3) { $this->lisaa_testikommentti("Oikein: Tiedoissa virheita:<br/>" . $this->muokattava->tulosta_virheilmoitukset(), false); } else { $this->lisaa_testikommentti("Virhe: virheita livahti ohi\n tarkastuksen! Seuraavat huomattu:<br/>" . $this->muokattava->tulosta_virheilmoitukset(), true); } } //====================================================================== // ASetetaan pikakommentille hyviä arvoja: $muutettu_kommentti = "Mulla <b>on</b> 1000 'ankkaa', jähjäh!"; $this->muokattava->set_henkilo_id($this->id_testihenkilo1); $this->muokattava->set_kohde_id(Pikakommenttitestaus::$kohteen_testi_id); $this->muokattava->set_kohde_tyyppi(Pikakommentti::$KOHDE_LIIKUNTASUORITUS); $this->muokattava->set_kommentti($muutettu_kommentti); $this->lisaa_testikommentti("Testataan hyvien muutosten jalkeen\n onTallennuskelpoinen-metodi, jonka ei pitaisi valittaa:", false); // tyhjennetään vielä aiemmat virheilmoitukset: $this->muokattava->tyhjenna_virheilmoitukset(); // Virheilmoituksia ei pitäisi tulla: if ($this->muokattava->on_tallennuskelpoinen(false)) { $this->lisaa_testikommentti("Oikein! ARvot puhtaita!", false); } else { $this->lisaa_testikommentti("Virhe: Tiedoissa olevinaan virheita:<br/>" . $this->muokattava->tulosta_virheilmoitukset(), false); } //====================================================================== // tyhjennetään vielä aiemmat virheilmoitukset: $this->muokattava->tyhjenna_virheilmoitukset(); // Kokeillaan sitten tallentaa muuttuneet tiedot: $this->lisaa_testikommentti("Kokeillaan tallentaa muutokset:", false); $tallennuspalaute = $this->muokattava->tallenna_muutokset(); if ($tallennuspalaute == Pikakommentti::$OPERAATIO_ONNISTUI) { $this->lisaa_testikommentti("Muutosten tallennus onnistui!", false); // Kokeillaan hakea sama tietokannasta ja varmistetaan, että // muutettu kommentti on todella muuttunut: $testi = new Pikakommentti($this->tietokantaolio, $this->muokattava->get_id()); if ($testi->get_kommentti() == $muutettu_kommentti) { $this->lisaa_testikommentti("Muutokset oikein tietokannassa!\n Kommentti on nykyaan: " . $testi->get_kommentti(), false); } else { $this->lisaa_testikommentti("Muutokset vaarin tietokannassa!\n Kommentti on nykyaan: " . $testi->get_kommentti(), true); } } else { $this->lisaa_testikommentti($tallennuspalaute, true); } //====================================================================== $this->lisaa_testikommentti("<h4>Pikakommentin muokkaustesti loppui</h4>", false); }
/** * 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))); }
/** * Luo uuden pikakommentin annetuilla arvoilla, tallentaa sen tietokantaan * ja palauttaa tallennetun id:n tai arvon * Pikakommentti::$MUUTTUJAA_EI_MAARITELTY, jos jokin menee vikaan. * * @param <type> $henkilo_id * @param <type> $kohde_id * @param <type> $kohde_tyyppi * @param <type> $kommentti */ public function luo_ja_tallenna_pikakommentti($henkilo_id, $kohde_id, $kohde_tyyppi, $kommentti) { $tallennetun_id = Pikakommentti::$MUUTTUJAA_EI_MAARITELTY; $id = Pikakommentti::$PARAMETRI_EI_KAYTOSSA; $pika = new Pikakommentti($this->tietokantaolio, $id); $this->lisaa_testikommentti("Uusi tyhja pikakommentti luotu!", false); $this->lisaa_testikommentti("Asetetaan pikakommentin henkilo_id,\n kohde_id, kohde_tyyppi ja kommentti. Testataan\n uudelleen, onko nyt tallennuskelpoinen:", false); $pika->set_henkilo_id($henkilo_id); $pika->set_kohde_id($kohde_id); $pika->set_kohde_tyyppi($kohde_tyyppi); $pika->set_kommentti($kommentti); if ($pika->on_tallennuskelpoinen(true)) { $this->lisaa_testikommentti("Pikakommentti on tallennuskelpoinen", false); $onnistuminen = $pika->tallenna_uusi(); if ($onnistuminen === Pikakommentti::$OPERAATIO_ONNISTUI) { $tallennetun_id = mysql_insert_id(); } else { $this->lisaa_testikommentti($onnistuminen . " Virhe tallennuksessa (luo_\n ja_tallenna_pikakommentti())!" . " Arvot: henkilo_id=" . $pika->get_henkilo_id() . ", Kohde_id=" . $pika->get_kohde_id() . ", Kohde_tyyppi=" . $pika->get_kohde_tyyppi() . ", Kommentti=" . $pika->get_kommentti(), true); } } else { $this->lisaa_testikommentti($pika->tulosta_virheilmoitukset(), true); } return $tallennetun_id; }
// Haetaan parametrit; $parametriolio = new Parametrit($kokoelmanimi, $omaid, $tietokantaolio); // Luodaan Havaintokontrolleri- ja Havaintonakymaluokan oliot: $havaintokontrolleri = new Havaintokontrolleri($tietokantaolio, $parametriolio); // Luodaan Käyttäjähommat: $kayttajakontrolleri = new Kayttajakontrolleri($tietokantaolio, $parametriolio); //================== Pikakommenttimuuttujat========================= $kommenttiteksti = isset($_REQUEST['kommenttiteksti']) ? $_REQUEST['kommenttiteksti'] : Pikakommentti::$PARAMETRI_EI_KAYTOSSA; $kohde_tyyppi = isset($_REQUEST['kohde_tyyppi']) ? $_REQUEST['kohde_tyyppi'] : Pikakommentti::$PARAMETRI_EI_KAYTOSSA; $kohde_id = isset($_REQUEST['kohde_id']) ? $_REQUEST['kohde_id'] : Pikakommentti::$PARAMETRI_EI_KAYTOSSA; $pikakommentin_id = isset($_REQUEST['pikakommentin_id']) ? $_REQUEST['pikakommentin_id'] : Pikakommentti::$PARAMETRI_EI_KAYTOSSA; // Seuraavalla on käyttöä esimerkiksi poistoa peruttaessa. Ei // tartte hakea tietokannasta. Tavallaan hyvä tapa tämäkin. $sisalto_html = isset($_REQUEST['sisalto_html']) ? $_REQUEST['sisalto_html'] : ""; // Luodaan käsiteltävä (tai tyhjä) pikakommentti: $nykyinen_pikakommentti = new Pikakommentti($tietokantaolio, $pikakommentin_id); // Sijoitetaan tiedot tarvittaessa: if ($kysymys == "tallenna_uusi_pikakommentti") { $nykyinen_pikakommentti->set_henkilo_id($omaid); $nykyinen_pikakommentti->set_kohde_id($kohde_id); $nykyinen_pikakommentti->set_kohde_tyyppi($kohde_tyyppi); $nykyinen_pikakommentti->set_kommentti($kommenttiteksti); } else { if ($kysymys == "tallenna_pikakommentin_muutos") { $nykyinen_pikakommentti->set_kohde_id($kohde_id); $nykyinen_pikakommentti->set_kohde_tyyppi($kohde_tyyppi); $nykyinen_pikakommentti->set_kommentti($kommenttiteksti); } else { } } $kontrolleri_pikakommentit = new Kontrolleri_pikakommentit($tietokantaolio, $parametriolio, $nykyinen_pikakommentti);