/**
  * Toteuttaa yhden kokonaisuuden näytön. Näyttää joko yhden kokonaisuudet tai
  * sitten kaikki käyttäjän valinnan mukaan.
  *
  * @return Palaute $palauteolio
  */
 function toteuta_nayta(&$palauteolio)
 {
     $parametriolio = $this->get_parametriolio();
     $kokonnakymat = $this->kokonaisuusnakymat;
     // VARmistetaan ensin, että klikattu kokonaisuus on "auki":
     $sessiomuuttujanimi = Parametrit::linkkisessiomuuttujan_nimi($parametriolio->id_kokon);
     $_SESSION[$sessiomuuttujanimi] = Kokonaisuusolio::$LINKKI_AUKI;
     // Liitetään parametriolioon tieto siitä, jos näyttö pitää tehdä
     // pelkän urlin perusteella (linkistä tulo, ks index.php loppuosa):
     if ($palauteolio->naytto_urlin_mukaan()) {
         $parametriolio->set_naytto_urlin_mukaan(true);
         // Tämä haetaan tietokannasta, jos id kunnollinen:
         $kokon = $this->get_olio();
         // Jos löytyi, asetetaan kieli, taso ja oppiaine, jottei tarvita
         // urlissa. Muussa tapauksessa näytetään ensimmäinen sopiva
         // kokonaisuus (ks. metodi hae_kokonaisuushtml()).
         if ($kokon instanceof Kokonaisuusolio && $kokon->olio_loytyi_tietokannasta) {
             aseta_kieli_taso_ja_oppiaine($kokon->getKieli(), $kokon->getOppiaine(), $kokon->getTaso(), $parametriolio);
             // Kielen vaihto ei muuten onnistunut, joten piti täällä tehdä.
             Kielet::kaanna($parametriolio->get_kieli_id());
         }
     }
     // Uuden kokonaisuuden luova nappi vain, jos käyttäjällä riittävät valtuudet:
     if ($parametriolio->get_valtuudet() >= Valtuudet::$MUOKKAUS) {
         $painike = $kokonnakymat->create_new_article_button();
     } else {
         // Muuten ei näytetä painiketta:
         $painike = "";
     }
     if ($parametriolio->get_kokonaisuuksien_nayttotapa() == Kokonaisuuksien_nayttotavat::$kokonaisuudet_nayta_kaikki_arvo) {
         $this->toteuta_nayta_kokonaisuudet_kaikki($palauteolio);
     } else {
         $sisalto = $this->hae_kokonaisuushtml($parametriolio);
         //Haetaan linkit:
         $linkit = $this->hae_kokonaisuuslinkit($parametriolio, true);
         $palauteolio = new Palaute();
         $palauteolio->set_sisalto($sisalto);
         $palauteolio->set_valikkonaytto(true);
         $palauteolio->nayta_kiintolinkit();
         $palauteolio->set_linkkihtml($linkit);
         $palauteolio->set_kokonaisuudet($parametriolio->kokonaisuusoliot);
         $palauteolio->set_uusi_kokon_painike($painike);
     }
     $palauteolio->set_naytettava_oliotyyppi(Palaute::$NAYTETTAVA_OLIOTYYPPI_KOKONAISUUS);
     // Onnistumista ei varsinaisesti tarkisteta, mutta olkoon täällä näin.
     $palauteolio->set_virhekoodi(Palaute::$VIRHEKOODI_KAIKKI_OK);
     return $palauteolio;
 }