/**
  * Näyttää poistovahvistuskyselyn ja painikkeet, joista joko hyväksytään
  * tai perutaan poisto.
  * @param Elementtiryhma $poistettava Poistettava Elementtiryhma-luokan
  * olio, joka on löytynyt tietokannasta (varmistettu kutsuvassa funktiossa).
  * @return string
  */
 public function nayta_elemryhman_poistovahvistuskysely($poistettava)
 {
     $otsikko = $poistettava->get_arvo(Elementtiryhma::$sarakenimi_nimi);
     $kooste_id = $poistettava->get_arvo(Elementtiryhma::$sarakenimi_kooste_id);
     //========= Vahvistuspainike ====================================
     $form_maaritteet = array(Attr::action(Attr::muotoile_action_arvo("index.php", array(Koostekontrolleri::$elemryhma_name_id, Koostekontrolleri::$kooste_name_id), array($poistettava->get_id(), $kooste_id))), Attr::classs("summary"));
     $input_maaritteet = array(Attr::name(Toimintonimet::$koostetoiminto), Attr::value(Painikkeet::$kooste_vahvista_poista_ryhmittely_value), Attr::title(Painikkeet::$kooste_vahvista_poista_ryhmittely_title), Attr::classs("btn btn-" . Koostenakymat::$btn_type_summary . " btn-" . Koostenakymat::$btn_size_summary));
     $poistopainike = Html::luo_forminput_painike($form_maaritteet, $input_maaritteet);
     //==============================================================
     $paluupainike = $this->nayta_painike_paluu_koosteeseen($poistettava->get_arvo(Elementtiryhma::$sarakenimi_kooste_id), Elementti::$MUUTTUJAA_EI_MAARITELTY);
     $vahvistuskys = Html::luo_div(Tekstit::$elementtiryhma_poiston_vahvistuskysymys, array(Attr::classs("keskitys"), Attr::style("font-size: 120%; color: red"))) . Html::luo_otsikko($otsikko, array(), 1) . Html::luo_div($poistopainike . $paluupainike, array(Attr::classs("keskitys")));
     return $vahvistuskys;
 }
 /**
  * Toteuttaa koosteen elementtiryhmän näyttämisen sekä normaalisti että
  * tulostusnäkymässä. Näkymätyylin päättää parametrina annettavan 
  * palauteolion naytettava_oliotyyppi-muuttujan arvo.
  * 
  * Näytössä noudatetaan koosteen näkyvyyttä, eli jos oikeus on nähdä
  * kooste, voi samalla nähdä elementtiryhmänkin (tai ainakin ne elementit,
  * joihin katseluoikeus vähintään).
  * 
  * HUOM: Elementin näkyvyysasetuksen vaikutusta ei ole otettu täällä huomioon.
  * Se pitää korjata esim. niin, että yksityinen elementti ei näy muille
  * kuin tekijälle. Lisävaltuuksiahan ei koosteelle tai elementille voi
  * antaa (mikä lienee tässä vaiheessa selkeämpää erityisesti elementin
  * kohdalla). Koosteissa lienee järkevämpi kloonata kuin antaa mahdollisuus
  * monen muokata. Voi miettiä toki.
  * 
  * @param Palaute $palauteolio
  */
 public function toteuta_nayta_elementtiryhma(&$palauteolio)
 {
     // Tarkistetaan ja asetetaan naytettävä oliotyyppi:
     if ($palauteolio->get_naytettava_oliotyyppi() === Palaute::$NAYTETTAVA_OLIOTYYPPI_KOOSTE_ELEMRYHMA_TULOSTUS) {
         $tulostusnaytto = true;
     } else {
         $palauteolio->set_naytettava_oliotyyppi(Palaute::$NAYTETTAVA_OLIOTYYPPI_KOOSTE_ELEMRYHMA);
         $tulostusnaytto = false;
     }
     $html = "";
     $nakymapainikkeet = "";
     // tulostusnäkymä ja ratkaisujen näyttö
     $muokkauspainike = "";
     $paluu_koosteeseen_painike = "";
     $muokkauspainikedivi = "";
     $elemryhmapainikkeet = "";
     $linkit = "";
     $painikkeet = "";
     $koostekoodi = "";
     $omaid = $this->get_parametriolio()->get_omaid() + 0;
     $param = $this->get_parametriolio();
     $tietokantaolio = $this->get_tietokantaolio();
     // Haetaan ensin elementtiryhmä ja sen avulla kooste:
     $elemryhma = new Elementtiryhma($param->elemryhma_id, $tietokantaolio);
     $kooste_id = $elemryhma->get_arvo(Elementtiryhma::$sarakenimi_kooste_id);
     $kooste = new Kooste($kooste_id, $tietokantaolio);
     if ($kooste->olio_loytyi_tietokannasta && $elemryhma->olio_loytyi_tietokannasta) {
         $viittausoliot_ok = array();
         $elementit_ok = array();
         // Tarkistetaan, onko käyttäjällä edes oikeuksia nähdä koostetta:
         /*======================== käyttäjän oikeudet ========*/
         $kohdeoikeudet_kooste = $kooste->hae_kayttajan_oikeudet($omaid);
         /*====================================================*/
         // Luodaan muokkauspainikkeet, jos käyttäjällä on muokkausoikeudet:
         if ($kohdeoikeudet_kooste >= Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA) {
             $muokkauspainike = $this->koostenakymat->luo_elemryhman_muokkauspainike($elemryhma);
         }
         // Jos riittävät oikeudet, näytetään ja muuten ei.
         if ($kohdeoikeudet_kooste >= Lisavaltuudet::$SAA_NAHDA_EI_MUOKATA_EI_POISTAA) {
             $nakymapainikkeet = " " . $this->koostenakymat->luo_tulostusnayttopainike($kooste, $elemryhma) . " " . $this->koostenakymat->luo_koosteen_ratkaisunayttopainikkeet("elemtehtavan_ratkaisut");
             $paluu_koosteeseen_painike = " " . $this->koostenakymat->luo_paluu_koosteeseen_nayttopainike($kooste);
             // Luodaan sitten mahdolliset elementtiryhmäpainikkeet
             // toiminnon mukaisin oikeustarkistuksin (koostenäkymissä..):
             // Harkitaan, tarvitaanko!
             /*$elemryhmat = $kooste->hae_elementtiryhmat();
               $elemryhma_current = $elemryhma;
               $elemryhmapainikkeet = $this->koostenakymat->
                   luo_elemryhmapainiketaulukko($elemryhmat,
                                               $elemryhma_current,
                                               $kooste, 
                                               $kohdeoikeudet_kooste);*/
             //=============================================================
             // Kerätään ne elementit ja oliot, jotka näytetään käyttäjälle.
             // Sisältö saadaan metodista "luo_koosteen_elementtiosa".
             $elementit = $elemryhma->hae_elementit();
             $divi_mukaan = true;
             $all_elements = false;
             $html = $this->luo_koosteen_elementtiosa($kooste, $omaid, $elementit, $divi_mukaan, $all_elements, $viittausoliot_ok, $elementit_ok);
             $muokkauspainikedivi = Html::luo_div($muokkauspainike . $paluu_koosteeseen_painike, array(Attr::classs("keskitys"), Attr::id("koostepainikerivi")));
         } else {
             // Ellei oikeuksia koosteen (ei myöskään eryhmän) katselemiseen.
             $html = Html::luo_otsikko(Tekstit::$kooste_ilm_nayttoon_ei_oikeuksia, array(), 4);
         }
         $koostekoodi = $this->koostenakymat->nayta_elementtiryhma($muokkauspainikedivi . $elemryhmapainikkeet . $html, $elemryhma);
         $kooste_id = $kooste->get_id();
         // Nykyinen kooste.
         // Linkit:
         $wrapped = true;
         $linkit = $this->luo_koostelinkit($kooste, $elementit_ok, $viittausoliot_ok, $wrapped);
     } else {
         $palauteolio->set_ilmoitus(Tekstit::$elementtiryhma_ei_loytynyt . " " . Tekstit::$or . " " . Tekstit::$kooste_koostetta_ei_loytynyt);
     }
     $painikkeet = $this->get_koostenakymat()->nayta_painike_paluu_kokonaisuuksiin() . $this->get_koostenakymat()->nayta_painike_paluu_koosteisiin($kooste_id) . $nakymapainikkeet;
     $palauteolio->set_sisalto($koostekoodi);
     $palauteolio->set_linkkihtml($painikkeet . "<br/><br/>" . $linkit);
     /*$palauteolio->set_nayttotapa(Html_koodi::$sisaltoelem_fixed);*/
     $palauteolio->set_nayttotapa(Html_koodi::$sidenav_fixed);
     $palauteolio->set_valikkonaytto(false);
 }