/** * 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; }