/** * Hakee ja palauttaa koosteen sisällön elementeistä (html-koodi). * * Täällä ei tarkistella käyttöoikeuksia, koska ne tarkistettu aiemmin. * * @param type $elementit_ok * @param type $viittausoliot_ok * @param Parametrit $paramolio Parametrit-luokan olio * @param int $kohdeoikeudet Oikeudet koosteeseen. * @param Ratkaisukontrolleri $ratkaisukontrolleri */ private function hae_elementtien_sisalto($elementit_ok, $viittausoliot_ok, $paramolio, $kohdeoikeudet, $ratkaisukontrolleri) { $tietokantaolio = $this->get_tietokantaolio(); // Katsotaan, ollaanko tulossa elementtiryhmästä: $elemryhma = Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY; if ($paramolio->elemryhma_id != Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY) { $elemryhma_kandi = new Elementtiryhma($paramolio->elemryhma_id, $tietokantaolio); if ($elemryhma_kandi->olio_loytyi_tietokannasta) { $elemryhma = $elemryhma_kandi; } } $elem_html = ""; for ($i = 0; $i < sizeof($elementit_ok); $i++) { $elementti = $elementit_ok[$i]; $viittausolio = $viittausoliot_ok[$i]; //$selitys_auki = true; $selitys_auki = false; // käyttöoikeudet tarkistetaan myös Kokonaisuusnakymat- // luokan metodissa. Mutta ei sillä väliä täällä niin. if ($viittausolio instanceof Kokonaisuusolio) { $elem_html .= $this->get_kokonaisuusnakymat()->luo_koostenakyma($elementti, $viittausolio, $paramolio, $selitys_auki, $kohdeoikeudet, $elemryhma); } else { if ($viittausolio instanceof Tehtava) { $id_teht = $viittausolio->getId(); // Haetaan tehtävän ratkaisut: $ratkaisut = $ratkaisukontrolleri->hae_ratkaisut($id_teht); $this->merkitse_ratkaisujen_otsikkonumerot($ratkaisut, $viittausolio); // Ratkaisunäyttöpainike yms. jos tarve: $painikkeet = array(); if (!empty($ratkaisut)) { array_push($painikkeet, $this->koostenakymat->luo_koostetehtavan_ratkaisunayttopainikkeet($id_teht)); } // Jos riittävät valtuudet, lisätään muokkauspainike: if ($kohdeoikeudet >= Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA) { array_push($painikkeet, $this->tehtavanakymat->luo_muokkauspainike($viittausolio, $elementti)); array_push($painikkeet, $this->tehtavanakymat->luo_ratkaisun_lisayspainike($viittausolio, $elementti, $elemryhma)); if ($viittausolio->getNakyvyys() + 0 === Nakyvyys::$JULKINEN) { $viittausolio->setNakyvyysmerkkiPublic(); } else { $viittausolio->setNakyvyysmerkkiPrivate(); } } // Poistopainike sopivasti oikeutetuille. if ($kohdeoikeudet >= Lisavaltuudet::$SAA_MUOKATA_JA_POISTAA) { $remove_elem_button = Koostenakymat::create_button_remove_elem_from_summary($elementti->get_id()); array_push($painikkeet, $remove_elem_button); } // Poistopainikekoodi loppuu. $elem_html .= $this->get_tehtavanakymat()->luo_koostenakyma($elementti, $viittausolio, $painikkeet); // Liitetään tehtävän ratkaisut mukaan: $elem_html .= $this->luo_tehtavan_ratkaisut_koodi($ratkaisut, false, $paramolio->get_omaid(), $elementti); } } } return $elem_html; }