/**
  * Toteuttaa uuden tehtävän tallentamisen. Palauttaa Palaute-luokan olion,
  * joka sisältää tarpeelliset tiedot toiminnon onnistumisesta yms.
  *
  *
  * @param Palaute $palauteolio
  */
 function toteuta_tallenna_muokkaus(&$palauteolio)
 {
     $parametriolio = $this->get_parametriolio();
     $id_teht = $parametriolio->id_teht;
     $omaid = $parametriolio->get_omaid();
     $otsikko_teht = $parametriolio->otsikko_teht;
     $tehtavananto_teht = $parametriolio->tehtavananto_teht;
     $vaikeustaso_teht = $parametriolio->vaikeustaso_teht;
     $nakyvyys = $parametriolio->nakyvyys_teht;
     $tietokantaolio = $parametriolio->get_tietokantaolio();
     $onnistuminen = Palaute::$VIRHEKOODI_TALLENNUS;
     // TArkistetaan, onko käyttäjä kirjautunut. Ellei ole, keskeytetään:
     if (Henkilo::on_kirjautunut($omaid, $tietokantaolio)) {
         // Tarkistetaan tiedot:
         $tallennettava = new Tehtava($id_teht, $tietokantaolio);
         if ($tallennettava->olio_loytyi_tietokannasta) {
             // Asetetaan arvot paikalleen:
             $tallennettava->set_arvo(time(), Tehtava::$sarakenimi_ed_muutos_sek);
             $tallennettava->setOtsikko($otsikko_teht);
             $tallennettava->setTehtavananto($tehtavananto_teht);
             $tallennettava->setVaikeustaso($vaikeustaso_teht);
             $tallennettava->setNakyvyys($nakyvyys);
             $palaute = $tallennettava->tallenna_muutokset();
             if ($palaute === Tehtava::$OPERAATIO_ONNISTUI) {
                 //Aktiivisuusmerkintä:
                 $aktiivisuuspalaute = paivita_aktiivisuus($omaid, $tietokantaolio, time(), Aktiivisuus::$TEHTAVAN_MUUTOSTEN_TALLENNUS);
                 if (!$aktiivisuuspalaute) {
                     $this->lisaa_virheilmoitus(Tekstit::$virheilm_aktiivisuuden_tallennus_eiok);
                 } else {
                     $onnistuminen = Palaute::$VIRHEKOODI_KAIKKI_OK;
                 }
                 // Otetaan selville, tuleekö käyttäjä koosteesta vai
                 // kokonaisuuksista ja näytetään vastaava juttu:
                 $elem_id = $parametriolio->elementti_id;
                 if ($elem_id != Elementti::$MUUTTUJAA_EI_MAARITELTY) {
                     $elem = new Elementti($elem_id, $tietokantaolio);
                     if ($elem->olio_loytyi_tietokannasta) {
                         $parametriolio->kooste_id = $elem->get_arvo(Elementti::$sarakenimi_kooste_id);
                     }
                     $koostekontr = new Koostekontrolleri($this->get_tietokantaolio(), $parametriolio);
                     $koostekontr->toteuta_nayta($palauteolio);
                     // JOtta palataan varmasti samaan elementtiin:
                     $palauteolio->set_muokatun_id($parametriolio->elementti_id);
                 } else {
                     $this->toteuta_nayta_tehtavat($palauteolio);
                     // JOtta palataan varmasti samaan kokonaisuuteen:
                     $palauteolio->set_muokatun_id($tallennettava->getId());
                 }
                 $palauteolio->set_ilmoitus(Tekstit::$tehtava_ilm_tallennus_muok_ok . $this->tulosta_virheilmoitukset());
             } else {
                 $parametriolio->uusi = true;
                 // Varmuuden vuoksi.
                 $this->toteuta_tehtavalomakkeen_naytto($palauteolio);
                 $palauteolio->set_ilmoitus(Tekstit::$tehtava_virheilm_tallennus_muok_eiok . $tallennettava->tulosta_virheilmoitukset());
             }
         } else {
             $this->lisaa_virheilmoitus(Tekstit::$tehtava_virheilm_muokattavaa_ei_loytynyt);
             $this->toteuta_nayta_tehtavat($palauteolio);
             $palauteolio->set_ilmoitus($this->tulosta_virheilmoitukset());
         }
     } else {
         // Täällä sessio on vanhentunut:
         $this->lisaa_virheilmoitus(Kayttajatekstit::$ilmoitus_sessio_vanhentunut);
         $this->toteuta_nayta_tehtavat($palauteolio);
         $palauteolio->set_ilmoitus($this->tulosta_virheilmoitukset());
     }
     $palauteolio->set_virhekoodi($onnistuminen);
     $palauteolio->set_valikkonaytto(false);
 }
示例#2
0
     $kokon->set_id($parametriolio->id_kokon);
     $html = $kokonaisuusnakymat->tulosta_esikatselu($kokon, $parametriolio);
     echo $html;
 } else {
     if ($kysymys == "nayta_tehtavan_esikatselu") {
         $otsikko = $parametriolio->otsikko_teht;
         $tehtavananto = $parametriolio->tehtavananto_teht;
         $vaikeustaso = $parametriolio->vaikeustaso_teht;
         // Luodaan uusi Tehtäväolio tietojen perusteella:
         $kuvakansion_os = Kuvat::$latauskansion_osoite;
         $tk_tehtava = "";
         $teht = new Tehtava(Tehtava::$MUUTTUJAA_EI_MAARITELTY, $tietokantaolio);
         // HUOM! Normaali set_arvo-metodi aiheuttaa sitkeät \n -merkit esikatseluun!
         $teht->set_arvo_kevyt($otsikko, Tehtava::$sarakenimi_otsikko);
         $teht->set_arvo_kevyt($tehtavananto, Tehtava::$sarakenimi_tehtavananto);
         $teht->setVaikeustaso($vaikeustaso);
         $teht->setKokon_id($id_kokon);
         $teht->setId($parametriolio->id_teht);
         $html = $tehtavanakymat->tulosta_esikatselu($omaid, $teht);
         //$html = $teht->tulosta_tehtava($id_kokon, $omaid, $tietokantaolio,
         //                              Valtuudet::$HALLINTA, 1);
         //echo preg_replace('/^\s+|\r\n|\n|\r|kissa||\s+$/m', '', $html);
         echo $output = str_replace(array("\r\n", "\r", "\n"), "", $html);
     } else {
         if ($kysymys == "nayta_ratkaisun_esikatselu") {
             $vastaus = $parametriolio->vastaus_ratk;
             $ratkaisu = $parametriolio->ratkaisu_ratk;
             $id_teht = $parametriolio->id_teht;
             // Luodaan uusi Ratkaisuolio tietojen perusteella:
             $kuvakansion_os = Kuvat::$latauskansion_osoite;
             $tk_ratkaisu = "";