/** * 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; }
public function testaa_pikakommentin_luominen() { $this->lisaa_testikommentti("<h4>Testataan pikakommenttin luominen</h4>", false); $id = Pikakommentti::$PARAMETRI_EI_KAYTOSSA; $pika = new Pikakommentti($this->tietokantaolio, $id); $this->lisaa_testikommentti("Uusi tyhja pikakommentti luotu!", false); // Ei pitäisi olla tallennuskelpoinen: if ($pika->on_tallennuskelpoinen(true)) { $this->lisaa_virheilmoitus("Ei pitaisi olla tallennuskelpoinen!"); } else { $this->lisaa_testikommentti("Ei ole tallennettava, joten" . " saatiin aivan oikein seuraava palaute:" . $pika->tulosta_virheilmoitukset(), 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($this->id_testihenkilo1); $pika->set_kohde_id(Pikakommenttitestaus::$kohteen_testi_id); $pika->set_kohde_tyyppi(Pikakommentti::$KOHDE_LIIKUNTASUORITUS); $pika->set_kommentti("Ihan hassu suoritus!"); // Nyt pitäisi olla kelvollinen tallennukseen: if ($pika->on_tallennuskelpoinen(true)) { $this->lisaa_testikommentti("Pikakommentti on nyt tallennuskelpoinen", false); } else { $this->lisaa_virheilmoitus("Virhe: ei tallennuskelpoinen!"); $this->lisaa_virheilmoitus("Palaute:" . $pika->tulosta_virheilmoitukset()); } //====================================================================== // Lisätään taulukkoon: $this->lisaa_pikakommentti($pika); if (sizeof($this->pikakommentit) == 1) { $this->lisaa_testikommentti("Uusi pikakommentti lisatty\n taulukkoon!", false); } else { $this->lisaa_virheilmoitus("Virhe uuden pikakommentin lisayksessa\n taulukkoon! (olioita " . sizeof($this->pikakommentit) . " kpl)"); } //====================================================================== // Tallennetaan tietokantaan: $this->lisaa_testikommentti("Tallennetaan luotu pikakommentti\n tietokantaan:", false); $palaute = $pika->tallenna_uusi(); if ($palaute === Pikakommentti::$OPERAATIO_ONNISTUI) { $this->lisaa_testikommentti("Tallennus onnistui!", false); } else { $this->lisaa_testikommentti("Virhe tallennuksessa!", false); $this->lisaa_virheilmoitus($palaute); } //====================================================================== // Etsitään pikakommentit tietokannasta (voi olla useampia) $hakutulos = $this->tietokantaolio->tee_WHEREhaku_1("pikakommentit", "kohde_id", Pikakommenttitestaus::$kohteen_testi_id); $tk_oliot = $this->tietokantaolio->hae_osumarivit_olioina($hakutulos); if (sizeof($tk_oliot) > 0) { $this->lisaa_testikommentti("Testipikakommentteja loytyi " . sizeof($tk_oliot) . " kpl tietokannasta.", false); } else { $this->lisaa_testikommentti("Tietokannasta ei loytynyt\n yhtaan testipikakommentia kohde_id; arvolla " . Pikakommenttitestaus::$kohteen_testi_id, false); $this->lisaa_virheilmoitus("Tietokannasta ei loytynyt\n yhtaan testipikakommentia kohde_id; arvolla " . Pikakommenttitestaus::$kohteen_testi_id); } //====================================================================== // "Haetaan olio tietokannasta id:n avulla, eli luodaan uusi // pikakommentti, jossa id mukana. $this->lisaa_testikommentti("Haetaan olio tietokannasta id:n avulla,\n eli luodaan uusi pikakommentti, jossa id mukana.", false); $id = $this->pikakommentit[0]->get_id(); $pika2 = new Pikakommentti($this->tietokantaolio, $id); $this->lisaa_testikommentti("Testataan, onko uudella oliolla samat\n tiedot kuin ekalla (pitaisi olla)", false); //HUOM! Alla pitää olla yhtäläisyydet noin. Kolme varmistaa identtisyyden // eli tarkistaa olion tyypin myös ja alla ekasta ja kolmannesta tulee // sillä epätosi, vaikka kahdella tosi! if ($pika2->get_kohde_id() == $pika->get_kohde_id() && $pika2->get_kommentti() === "Ihan hassu suoritus!" && $pika2->get_kohde_tyyppi() == Pikakommentti::$KOHDE_LIIKUNTASUORITUS) { $this->lisaa_testikommentti("Kaikki kunnossa! Esimerkiksi\n pikakommentin kommentti = " . $pika2->get_kommentti(), false); } else { $this->lisaa_testikommentti("Virhe tietojen haussa tietokannasta!", false); $this->lisaa_virheilmoitus("Kommenttia ei kai loytynyt tietokannasta!\n (id: " . $this->pikakommentit[0]->get_id() . ")"); } //====================================================================== $this->lisaa_testikommentti("<h4>Pikakommenttin luomistesti loppui!</h4>", false); }
// 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); /********************************************************************/ // Tarkistetaan, ettei käyttäjää ole potkaistu tai itse kirjautunut ulos: // Tämä voisi olla aiemmin, mutta en halunnut rasittaa liian usein // tapahtuvaksi.