Пример #1
0
 /**
  * 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);
 }