/** * Toteuttaa koostelomakkeen näyttämisen. * @param Palaute $palauteolio */ public function toteuta_nayta_koostelomake(&$palauteolio) { $parametriolio = $this->get_parametriolio(); $parametriolio->naytettava = Palaute::$NAYTETTAVA_OLIOTYYPPI_KOOSTELOMAKE; $palauteolio->set_naytettava_oliotyyppi(Palaute::$NAYTETTAVA_OLIOTYYPPI_KOOSTELOMAKE); $tietokantaolio = $parametriolio->get_tietokantaolio(); // Haetaan koosteet (oliopuu), jotta on mistä etsiä elementit: $this->kokonaisuuskontrolleri->hae_kokonaisuushtml($parametriolio); // Hakee aktiivisen koosteen, jos on. Palauttaa arvon // Kooste::$MUUTTUJAA_EI_MAARITELTY, ellei tiedossa (esim. kun uusi). $kooste = $this->get_olio(); $valitut_elementit = array(); // Kun kysymys muokkaamisesta, haetaan koosteeseen kuuluvat elementit: $elem_otsikko_koodi = ""; if ($kooste instanceof Kooste && $kooste->olio_loytyi_tietokannasta) { $valitut_elementit = $kooste->hae_elementit(); // Muotoillaan koosteeseen kuuluvien elementtien näyttäminen: foreach ($valitut_elementit as $elementti) { if ($elementti instanceof Elementti) { $elem_otsikko_koodi .= $this->luo_valitut_elem_divi($elementti->get_arvo(Elementti::$sarakenimi_oliotyyppi), $elementti->get_arvo(Elementti::$sarakenimi_olio_id), true, $tietokantaolio); } } // Otetaan ylös kieli, oppiaine ja taso: $kieli = $kooste->get_arvo(Kooste::$sarakenimi_kieli); $taso = $kooste->get_arvo(Kooste::$sarakenimi_taso); $oppiaine = $kooste->get_arvo(Kooste::$sarakenimi_oppiaine); } else { // Kun kysymys uudesta koosteesta: $kieli = $parametriolio->kieli_id; $taso = $parametriolio->taso_kokon; $oppiaine = $parametriolio->oppiaine_kokon; } $valitut_elementit_html = $this->koostenakymat->nayta_valitut_elementit($elem_otsikko_koodi); // Elementit valintoja varten: $kokonaisuudet = $this->hae_koostelomakkeen_kokonaisuudet($kieli, $taso, $oppiaine); // Kokonaisuus merkitään valituksi, jos jo kuuluu koosteeseen (muokkaus): if ($kooste instanceof Kooste) { $this->merkitse_valitut($kokonaisuudet, $valitut_elementit); } $elementit = $this->hae_elementtilista($kokonaisuudet, true); $tuloste = $this->koostenakymat->nayta_lomake($kooste, $parametriolio, $elementit, $valitut_elementit_html); // Luodaan paluu-painike: $paluupainike_koosteisiin = $this->koostenakymat->create_button_gobacktosummaries(); // Tämä palauttaa kokonaisuusnäkymään: $paluupainike = $this->paluupainike; $palauteolio->set_sisalto($tuloste); $palauteolio->set_ylapalkkipainikkeet($paluupainike . $paluupainike_koosteisiin); $palauteolio->set_nayta_kiintolinkit(false); $palauteolio->set_valikkonaytto(false); $palauteolio->set_nayttotapa(Html_koodi::$sisaltoelem_levea); }