示例#1
0
 /**
  * Toteuttaa yhden koosteen näyttämisen normaalitavalla. Tulostusnäkymä
  * on erikseen.
  * 
  * 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(&$palauteolio)
 {
     $html = "";
     $nakymapainikkeet = "";
     // tulostusnäkymä ja ratkaisujen näyttö
     $muokkauspainike = "";
     $muokkauspainikedivi = "";
     $elemryhmapainikkeet = "";
     $ryhmittelypainike = "";
     // Elementtien ryhmittely esim. koealueittain.
     $kooste = $this->get_olio();
     $linkit = "";
     $painikkeet = "";
     $koostekoodi = "";
     $omaid = $this->get_parametriolio()->get_omaid() + 0;
     $param = $this->get_parametriolio();
     $tietokantaolio = $this->get_tietokantaolio();
     if ($kooste instanceof Kooste) {
         $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_koosteen_muokkauspainike($kooste);
             $ryhmittelypainike = $this->koostenakymat->luo_koosteen_ryhmittelypainike($kooste);
         }
         // Jos riittävät oikeudet, näytetään ja muuten ei.
         if ($kohdeoikeudet_kooste >= Lisavaltuudet::$SAA_NAHDA_EI_MUOKATA_EI_POISTAA) {
             // Check of existing element group id:
             $elemryhma = Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY;
             $elemryhma_id = $param->elemryhma_id;
             if ($elemryhma_id != Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY) {
                 $elemryhma_cand = new Elementtiryhma($elemryhma_id, $tietokantaolio);
                 if ($elemryhma_cand->olio_loytyi_tietokannasta) {
                     $elemryhma = $elemryhma_cand;
                 }
             }
             $nakymapainikkeet = " " . $this->koostenakymat->luo_tulostusnayttopainike($kooste, $elemryhma) . " " . $this->koostenakymat->luo_koosteen_ratkaisunayttopainikkeet("elemtehtavan_ratkaisut");
             // Luodaan sitten mahdolliset elementtiryhmäpainikkeet
             // toiminnon mukaisin oikeustarkistuksin (koostenäkymissä..):
             $elemryhmat = $kooste->hae_elementtiryhmat();
             $ajax = false;
             // Ei ajaxia (linkkiongelma)
             $elemryhmapainikkeet = $this->koostenakymat->luo_elemryhmapainiketaulukko($elemryhmat, $kooste, $kohdeoikeudet_kooste, $ajax);
             //=============================================================
             // Kerätään ne elementit ja oliot, jotka näytetään käyttäjälle.
             // Sisältö saadaan metodista "luo_koosteen_elementtiosa".
             $elementit = $kooste->hae_elementit();
             $divi_mukaan = true;
             $all_elements = true;
             $html = $this->luo_koosteen_elementtiosa($kooste, $omaid, $elementit, $divi_mukaan, $all_elements, $viittausoliot_ok, $elementit_ok);
             $muokkauspainikedivi = Html::luo_div($muokkauspainike . " " . $ryhmittelypainike, array(Attr::classs("keskitys"), Attr::id("koostepainikerivi")));
         } else {
             // Ellei oikeuksia koosteen katselemiseen.
             $html = Html::luo_otsikko(Tekstit::$kooste_ilm_nayttoon_ei_oikeuksia, array(), 4);
         }
         $koostekoodi = $this->koostenakymat->nayta($muokkauspainikedivi . $elemryhmapainikkeet . $html, $kooste);
         $kooste_id = $kooste->get_id();
         // Nykyinen kooste.
         // Linkit:
         $wrapped = true;
         $linkit = $this->luo_koostelinkit($kooste, $elementit_ok, $viittausoliot_ok, $wrapped);
     }
     $kooste_id = Kooste::$MUUTTUJAA_EI_MAARITELTY;
     $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_naytettava_oliotyyppi(Palaute::$NAYTETTAVA_OLIOTYYPPI_KOOSTE);
     $palauteolio->set_nayttotapa(Html_koodi::$sidenav_fixed);
     $palauteolio->set_valikkonaytto(false);
 }