Ejemplo n.º 1
0
 /**
  * Palauttaa form-lomakkeen sisällä olevan input-elementin koodin. Parametrina
  * annetaan kummankin $maar_array. Jos $maar_array_form-taulukossa on
  * action-määritteellä arvo "oletus", "default" tai määrite puuttuu, 
  * annetaan arvoksi "{$_SERVER['PHP_SELF']}".
  * 
  * <p>Nämä pakotetaan joka tapauksessa riippumatta parametreista:
  * Form method="post" ja input type="submit"</p>
  * 
  * Helpoimmillaan painikkeen saa siis toimimaan antamalla parametreina yhden 
  * tyhjän taulukon ja toiseen ($maar_array_input) vain value- ja namemääritteet:
  * array(Maarite::value($painikkeen_nimi), Maarite::name($toimintonimi))
  * 
  * @param type $maar_array_form
  * @param type $maar_array_input
  * @return type
  */
 public static function luo_forminput_painike($maar_array_form, $maar_array_input)
 {
     Attr::lisaa_maarite(Attr::method("post"), $maar_array_form);
     Attr::lisaa_maarite(Attr::type("submit"), $maar_array_input);
     // Tarkastellaan action-määritettä:
     if (Attr::etsi_maarite("action", $maar_array_form) == Attr::$EI_LOYTYNYT || Attr::etsi_maarite("action", $maar_array_form) == "oletus" || Attr::etsi_maarite("action", $maar_array_form) == "default") {
         Attr::lisaa_maarite(Attr::action("{$_SERVER['PHP_SELF']}"), $maar_array_form);
     }
     $sisalto = Html::luo_input($maar_array_input);
     return Html::luo_elem_2os("form", $sisalto, $maar_array_form);
 }
Ejemplo n.º 2
0
 /**
  * Palauttaa kokonaisuuden html-koodin.
  * 
  * Huomaa, että täällä käsitellään aika paljon turvallisuusarkoja aiheita,
  * kuten esimerkiksi kokonaisuuden lukitus. Ois parempi ehkä sellaisen
  * olla aiemmin, mutta en vielä ole jaksanut muuttaa..
  *
  * @param Parametrit $parametriolio
  * @param Kokonaisuusolio $kokonaisuus
  * @param <type> $selitys_auki jos true, niin selitys näytetään, muuten ei.
  * @param type $id_prev Edellisen kokonaisuuden id.
  * @param type $id_next Seuraavan kokonaisuuden id.
  * @return string|\<type>
  */
 function tulosta_kokonaisuus($kokonaisuus, $parametriolio, $selitys_auki, $id_prev, $id_next)
 {
     $btn_type = Kokonaisuusnakymat::$btn_type_article;
     $btn_size = Kokonaisuusnakymat::$btn_size_article;
     $omaid = $parametriolio->get_omaid() + 0;
     $tietokantaolio = $parametriolio->get_tietokantaolio();
     $kayttajan_valtuudet = $parametriolio->get_valtuudet();
     // Luodaan tämä tehtävien lkm:n hakua varten. Vähän raskasta, mutta olkoon.
     $tehtavakontrolleri = new Tehtavakontrolleri($tietokantaolio, $parametriolio);
     $palaute = "";
     $selitys = "";
     $poistonappi = "";
     $muokkausnappi = "";
     $tehtavanappi = "";
     /* Tehtävien näyttö */
     $uusi_teht_nappi = "";
     /* Tästä luodaan uusi tehtävä. */
     $nayta_selitys_nappi = "";
     /* Näyttää selityksen. */
     $siirra_ylemmaksi_nappi = "";
     $siirra_alemmaksi_nappi = "";
     $jaa_oikeuksia_nappi = "";
     $nayta_jarj_luku = "";
     $korjausnappi = "";
     // Tämän avulla järjestysluvun voi korjata
     $nakyvyysmuutosnappi = "";
     $nayta_ed_nappi = $this->create_button_show_prev($id_prev);
     $nayta_seur_nappi = $this->create_button_show_next($id_next);
     /*======================== käyttäjän oikeudet ========================*/
     $kohdeoikeudet = Henkilo::hae_kayttajan_kohdeoikeudet($kokonaisuus->getHenkiloId(), $omaid, Oliotyyppi::$KOKONAISUUS, $kokonaisuus->get_id(), $tietokantaolio);
     /*====================================================================*/
     // Koodia voivat kaikki vilkaista, ellei ole piilotettu:
     if ($kohdeoikeudet >= Lisavaltuudet::$SAA_NAHDA_EI_MUOKATA_EI_POISTAA || $kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$JULKINEN) {
         $nayta_koodi_nappi = Html::luo_button(Painikkeet::$NAYTA_KOODI_value, array(Attr::title(Painikkeet::$NAYTA_KOODI_title), Attr::onclick("hae_koodi", array($kokonaisuus->get_id(), Oliotyyppi::$KOKONAISUUS)), Attr::classs("btn btn-" . $btn_type . " btn-" . $btn_size . " article")));
     } else {
         $nayta_koodi_nappi = "";
     }
     /* Kuvan lisäyspainikkeet: */
     $uusi_kuva_tiivis = "";
     $uusi_kuva_seli = "";
     // Alla jostakin syystä !empty($kokonaisuus->getSelitys()) ei toiminut!
     if ($kokonaisuus->getSelitys() != "") {
         $onsubmit_parametrit = array($kokonaisuus->get_id());
         /* Tämän avulla löytyvät */
         $form_maaritteet = array('method' => 'post', 'class' => 'rinnakkain', 'action' => "{$_SERVER['PHP_SELF']}?" . "id_kokon=" . $kokonaisuus->get_id());
         if ($selitys_auki) {
             $title = Painikkeet::$SULJE_SELITYS_title;
             $onsubmit_funktionimi = "sulje_selitys";
             $input_maaritteet = array('name' => Toimintonimet::$kokonaisuustoiminto, 'value' => Painikkeet::$SULJE_SELITYS_value, 'title' => $title, 'class' => "btn btn-" . $btn_type . " btn-" . $btn_size . " article");
         } else {
             $title = Painikkeet::$NAYTA_SELITYS_title;
             $onsubmit_funktionimi = "nayta_selitys";
             $input_maaritteet = array('name' => Toimintonimet::$kokonaisuustoiminto, 'value' => Painikkeet::$NAYTA_SELITYS_value, 'title' => $title, 'class' => "btn btn-" . $btn_type . " btn-" . $btn_size . " article");
         }
         $nayta_selitys_nappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
     }
     // Haetaan kokonaisuuden tehtävien lkm:
     $teht_lkm = sizeof($tehtavakontrolleri->hae_tehtavat());
     // Tehtävät näkyvät kaikille, jos niitä on:
     if ($teht_lkm > 0) {
         $onsubmit_funktionimi = "nayta_tehtavat";
         $onsubmit_parametrit = array($kokonaisuus->get_id());
         /* Tämän avulla löytyvät */
         $form_maaritteet = array('method' => 'post', 'class' => 'article', 'action' => "{$_SERVER['PHP_SELF']}?" . "id_kokon=" . $kokonaisuus->get_id() . "&" . Oliotyyppi::$naytettava_name . "=" . Palaute::$NAYTETTAVA_OLIOTYYPPI_TEHTAVA);
         $title = Painikkeet::$tehtava_nayta_tehtavat_title . " (" . $teht_lkm . ")";
         $input_maaritteet = array('name' => Toimintonimet::$tehtavatoiminto, 'value' => Painikkeet::$tehtava_nayta_tehtavat_value, 'title' => $title, 'class' => "btn btn-" . $btn_type . " btn-" . $btn_size);
         $tehtavanappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
     }
     /** 
      * Muokkaus ja poisto tietysti kunkulle ja kokonaisuuden tekijälle. 
      * Vain heille on myös luvallista jakaa lisäoikeuksia olioon.
      
      <p>Jos kokonaisuus lukittu toisen toimesta, ei sitä voida poistaa
      eikä muokata. Uusia tehtäviä voi kuitenkin lisätä,
      koska siinä mahdollinen samanaikaisuus ei haittaa.</p>
     
      <p>Uusia tehtäviä voi lisätä valtuusarvot >= "tehtävien_lisäys".</p>
     
      Kokonaisuuksien poisto sallitaan turvallisuussyistä vain
      lapsettomille kokonaisuuksille.
     */
     if ($kohdeoikeudet == Lisavaltuudet::$KAIKKI_OIKEUDET) {
         // Oikeuksien eli lisävaltuuksien jakopainike:======================
         $action_os = "oLetUs";
         // Testaan samalla kirjainkoon vaikutusta.
         $action_kyselymuuttujat = array("id_kokon", "oppiaine_kokon", "kieli_id", Kayttajakontrolleri::$lv_name_kohdeolio_id, Kayttajakontrolleri::$lv_name_kohdeoliotyyppi, Kayttajakontrolleri::$lv_name_omistaja_id);
         $action_kyselyarvot = array($kokonaisuus->get_id(), $kokonaisuus->getOppiaine(), $kokonaisuus->getKieli(), $kokonaisuus->get_id(), Oliotyyppi::$KOKONAISUUS, $kokonaisuus->getHenkiloId());
         $jaa_oikeuksia_nappi = Kayttajanakymat::luo_jaa_lisaoikeuksia_painike($action_os, $action_kyselymuuttujat, $action_kyselyarvot);
         //==================================================================
     }
     if ($kohdeoikeudet >= Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA) {
         //====================== LUKITUKSEN HUOMIOINTI =====================
         // Muokkaus- ja poistonapit lukitsemattomalle tai omalle.
         if (!$this->lukitus_estaa_muokkauksen($kokonaisuus, $omaid)) {
             // Muokkauspainike:
             $elementti = Elementti::$MUUTTUJAA_EI_MAARITELTY;
             $elemryhma = Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY;
             $muokkausnappi = $this->luo_muokkauspainike($kokonaisuus, $elementti, $elemryhma);
             //=============================================================
             if ($kohdeoikeudet >= Lisavaltuudet::$SAA_MUOKATA_JA_POISTAA) {
                 // Poisto vain lapsettomille ja tehtävättömille:
                 if ($kokonaisuus->getOn_lapsia() == 0) {
                     $tehtavat = Tehtava::hae_kokonaisuuden_tehtavat($kokonaisuus->get_id(), $parametriolio->get_tietokantaolio());
                     // Ellei tehtäviä löydy, voidaan poistaa:
                     if (empty($tehtavat)) {
                         // POistopainike:
                         $poistonappi = Html::luo_forminput_painike(array(Attr::classs("article"), Attr::action("{$_SERVER['PHP_SELF']}?id_kokon=" . $kokonaisuus->get_id())), array(Attr::classs("btn btn-" . $btn_type . " btn-" . $btn_size), Attr::name("toiminta"), Attr::value(Painikkeet::$POISTA_KOKON_VALUE)));
                         if ($kokonaisuus->getLukitus() == $omaid) {
                             $poistonappi .= "<span style='color: green; font-weight:bold'>" . Tekstit::$ilm_kokon_omalukitus_paalla . "<br/></span>";
                         }
                     }
                 }
             }
             //=============================================================
             // Julkista/piilota-painike:
             if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$JULKINEN) {
                 $value = Painikkeet::$PIILOTA_KOKON_value;
                 $title = Painikkeet::$PIILOTA_KOKON_title;
             } else {
                 $value = Painikkeet::$JULKISTA_KOKON_value;
                 $title = Painikkeet::$JULKISTA_KOKON_title;
             }
             $onsubmit_funktionimi = "";
             // Tulevaa varten.
             $onsubmit_parametrit = "";
             // Ei ole vielä.
             $form_maaritteet = array("class" => "article", "method" => "post", "action" => "{$_SERVER['PHP_SELF']}?id_kokon=" . $kokonaisuus->get_id() . "&oppiaine_kokon=" . $kokonaisuus->getOppiaine() . "&kieli_id=" . $kokonaisuus->getKieli());
             $input_maaritteet = array("class" => "btn btn-" . $btn_type . " btn-" . $btn_size, "value" => $value, "title" => $title, "name" => Toimintonimet::$kokonaisuustoiminto);
             try {
                 $nakyvyysmuutosnappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
             } catch (Exception $poikkeus) {
                 $nakyvyysmuutosnappi = $poikkeus->getMessage();
             }
             //=============================================================
             // Järjestyksen muutosnapit (jos mielekästä):
             $siirra_ylemmaksi_nappi = "";
             if ($kokonaisuus->getEdellisenId_taso() != Kokonaisuusolio::$kokon_edellista_ei_ole) {
                 $onsubmit_funktionimi = "";
                 // Tulevaa varten.
                 $onsubmit_parametrit = "";
                 // Ei ole vielä.
                 $form_maaritteet = array("class" => "article", "method" => "post", "action" => "{$_SERVER['PHP_SELF']}?id_kokon=" . $kokonaisuus->get_id() . "&oppiaine_kokon=" . $kokonaisuus->getOppiaine() . "&kieli_id=" . $kokonaisuus->getKieli() . "&ed_id_kokon=" . $kokonaisuus->getEdellisenId_taso() . "&siirto_ylos=true");
                 $input_maaritteet = array("value" => Painikkeet::$SIIRRA_YLEMMAKSI_KOKON_value, "title" => Painikkeet::$SIIRRA_YLEMMAKSI_KOKON_title, "name" => Toimintonimet::$kokonaisuustoiminto, "class" => "btn btn-" . $btn_type . " btn-" . $btn_size);
                 try {
                     $siirra_ylemmaksi_nappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
                 } catch (Exception $poikkeus) {
                     $siirra_ylemmaksi_nappi = $poikkeus->getMessage();
                 }
             }
             // Alaspäin siirto:
             $siirra_alemmaksi_nappi = "";
             if ($kokonaisuus->getSeuraavanId_taso() != Kokonaisuusolio::$kokon_seuraavaa_ei_ole) {
                 $onsubmit_funktionimi = "";
                 // Tulevaa varten.
                 $onsubmit_parametrit = "";
                 // Ei ole vielä.
                 $form_maaritteet = array("class" => "article", "method" => "post", "action" => "{$_SERVER['PHP_SELF']}?id_kokon=" . $kokonaisuus->get_id() . "&oppiaine_kokon=" . $kokonaisuus->getOppiaine() . "&kieli_id=" . $kokonaisuus->getKieli() . "&seur_id_kokon=" . $kokonaisuus->getSeuraavanId_taso() . "&siirto_ylos=0");
                 $input_maaritteet = array("value" => Painikkeet::$SIIRRA_ALEMMAKSI_KOKON_value, "title" => Painikkeet::$SIIRRA_ALEMMAKSI_KOKON_title, "name" => Toimintonimet::$kokonaisuustoiminto, "class" => "btn btn-" . $btn_type . " btn-" . $btn_size);
                 try {
                     $siirra_alemmaksi_nappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
                 } catch (Exception $poikkeus) {
                     $siirra_alemmaksi_nappi = $poikkeus->getMessage();
                 }
             }
             // Tämä liittyy vanhan järjestysnumeron korjaukseen (kun monilla
             // kokonaisuuksilla oli sama järjestysnumero -1). Nykyään
             // tekniikka on muuttunut, eikä sitä yleensä tarvita.
             if ($kokonaisuus->getJarjestysnro() == -1) {
                 $nayta_jarj_luku = " jarjestysnro: " . $kokonaisuus->getJarjestysnro();
                 $class = "rinnakkain";
                 $id = "";
                 $action = "{$_SERVER['PHP_SELF']}?id_kokon=" . $kokonaisuus->get_id() . "&oppiaine_kokon=" . $kokonaisuus->getOppiaine() . "&kieli_id=" . $kokonaisuus->getKieli();
                 $name = Toimintonimet::$kokonaisuustoiminto;
                 $value = "Korjaa jarjestysnro";
                 $korjausnappi = Html::luo_painikelomake($class, $id, $action, $name, $value);
             }
             /**************************************************************/
         } else {
             if ($kokonaisuus->lukitus != Kokonaisuusolio::$LUKITUS_OFF) {
                 $poistonappi = "<span style='color: red; font-weight:bold'>" . Tekstit::$ilm_kokon_lukitus_paalla . "<br/></span>";
             }
         }
         /* Uuden kuvan lisäyspainike tiivistelmään*/
         $onsubmit_funktionimi = "nayta_kuvalomake";
         $onsubmit_parametrit = array($kokonaisuus->get_id());
         /* Kokonaisuuden id*/
         $form_maaritteet = array('method' => 'post', 'class' => 'article', 'action' => "{$_SERVER['PHP_SELF']}?" . "id_kokon=" . $kokonaisuus->get_id() . "&" . "kohde_kuva=" . Kuvat::$kohde_kokonaisuus_tiivistelma);
         $input_maaritteet = array('name' => Toimintonimet::$kokonaisuustoiminto, 'value' => Painikkeet::$LISAA_KUVA_TIIVIS_KOKON_VALUE, 'title' => Painikkeet::$LISAA_KUVA_TIIVIS_KOKON_TITLE, "class" => "btn btn-" . $btn_type . " btn-" . $btn_size);
         try {
             $uusi_kuva_tiivis = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
         } catch (Exception $poikkeus) {
             $palaute .= "Virhe kuvanapin luomisessa: " . $poikkeus->getMessage();
         }
         /* Uuden kuvan lisäyspainike selitykseen:*/
         $onsubmit_funktionimi = "nayta_kuvalomake";
         $onsubmit_parametrit = array($kokonaisuus->get_id());
         /* Kokonaisuuden id*/
         $form_maaritteet = array('method' => 'post', 'class' => 'article', 'action' => "{$_SERVER['PHP_SELF']}?" . "id_kokon=" . $kokonaisuus->get_id() . "&" . "kohde_kuva=" . Kuvat::$kohde_kokonaisuus_selitys);
         $input_maaritteet = array('name' => Toimintonimet::$kokonaisuustoiminto, 'value' => Painikkeet::$LISAA_KUVA_SELITYS_KOKON_VALUE, 'title' => Painikkeet::$LISAA_KUVA_SELITYS_KOKON_TITLE, "class" => "btn btn-" . $btn_type . " btn-" . $btn_size);
         try {
             $uusi_kuva_seli = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
         } catch (Exception $poikkeus) {
             $palaute .= "Virhe kuvanapin luomisessa: " . $poikkeus->getMessage();
         }
     }
     // Hallinnan / muokkaaajan / luojan osuus päättyy
     // Tehtävien lisääminen sopivasti oikeutetuille:
     if ($kayttajan_valtuudet >= Valtuudet::$TEHTAVA_LISAYS) {
         $elementti = Elementti::$MUUTTUJAA_EI_MAARITELTY;
         $elemryhma = Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY;
         $uusi_teht_nappi = $this->luo_uusi_teht_painike($kokonaisuus, $elementti, $elemryhma);
     }
     // TEhtävien lisäyspainikekoodi loppuu.
     /* haetaan mahdolliset kuvat */
     $kuvahtml_tiivis = $kokonaisuus->hae_kuvat(Kuvat::$kohde_kokonaisuus_tiivistelma, $omaid, $tietokantaolio, false);
     /* kokolaisuuksien hierarkia: html-otsikkotasot. */
     $class_arvo = "kokonaisuus";
     $painikkeet_ylla = $nayta_ed_nappi . $siirra_ylemmaksi_nappi . $siirra_alemmaksi_nappi . $tehtavanappi . $uusi_teht_nappi . $muokkausnappi . $korjausnappi . $nakyvyysmuutosnappi . $jaa_oikeuksia_nappi . $nayta_seur_nappi;
     $painikkeet_alla = $nayta_koodi_nappi . $uusi_kuva_tiivis . $uusi_kuva_seli . $nayta_selitys_nappi . $poistonappi;
     $otsikko = "<div class = " . $class_arvo . " id=" . $kokonaisuus->get_id() . ">" . "<h" . ($kokonaisuus->getOtsikkotaso() + 1) . ">" . $kokonaisuus->getOtsikkomerkinta() . " " . $kokonaisuus->getOtsikko() . " " . "</h" . ($kokonaisuus->getOtsikkotaso() + 1) . ">";
     /* Haetaan vielä tarvittaessa selitys: */
     if ($selitys_auki) {
         /* haetaan mahdolliset kuvat */
         $kuvahtml_selitys = $kokonaisuus->hae_kuvat(Kuvat::$kohde_kokonaisuus_selitys, $omaid, $tietokantaolio, false);
         $selitysotsikko = "<div class='selitysotsikko'>" . Tekstit::$otsikko_selitys . "</div>";
         /* Muotoillaan selitys: */
         $selitys_muokattu = muotoile_merkit($kokonaisuus->getSelitys());
         // Pikkukaavat ensin, jotta kursiivin poisto onnistuu ennen
         // sulkujen käsittelyä.
         $selitys_muokattu = Kaavaeditori::muotoile_pikkukaavat($selitys_muokattu);
         // Sitten normaalikaavat:
         $selitys_muokattu = Kaavaeditori::muotoile_kaavat($selitys_muokattu);
         $selitys = $selitysotsikko . $kuvahtml_selitys . $selitys_muokattu;
     }
     /* Muotoillaan tiivistelmän merkit ja kaavat: */
     $tiivistelma = muotoile_merkit($kokonaisuus->getTiivis());
     $tiivistelma = Kaavaeditori::muotoile_pikkukaavat($tiivistelma);
     $tiivistelma = Kaavaeditori::muotoile_kaavat($tiivistelma);
     $tiivistelma = $kuvahtml_tiivis . $tiivistelma . "<br />";
     /* Ja sitten vain palaset pakettiin: HUOM! Täällä katsotaan, ettei
      * piilotetun sisältö näy. 
      */
     $piilotushuomautus = "<div class='piilotushuomautus'>" . Tekstit::$ilm_kokon_piilotettu_paitsi_ots . "</div>";
     $yksityisilmoitus = "<div class='yksityisilmoitus'>" . Tekstit::$ilm_kokon_yksityinen . "</div>";
     $vainkoosteilmoitus = "<div class='koosteilmoitus'>" . Tekstit::$ilm_kokon_vain_kooste . "</div>";
     /**
      * Tänne mennään, kun kokonaisuus näytetään,
      * oli se sitten piilossa tahi ei.
      */
     if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$JULKINEN || $kokonaisuus->getHenkiloId() == $omaid || $kayttajan_valtuudet + 0 === Valtuudet::$HALLINTA) {
         $normaali_kokonaisuus = Html::div(array(Attr::classs("kokon_ylanapit")), $painikkeet_ylla) . $otsikko;
         // Jos kokonaisuus on muilta piilossa, lisätään viesti:
         if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$VAIN_OTSIKKO) {
             $normaali_kokonaisuus .= $piilotushuomautus . $tiivistelma;
         } else {
             if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$YKSITYINEN) {
                 $normaali_kokonaisuus .= $yksityisilmoitus . $tiivistelma;
             } else {
                 if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$VAIN_KOOSTEESSA) {
                     $normaali_kokonaisuus .= $vainkoosteilmoitus . $tiivistelma;
                 } else {
                     $normaali_kokonaisuus .= $tiivistelma;
                 }
             }
         }
         $normaali_kokonaisuus .= Html::div(array(Attr::classs("kokon_alanapit")), $painikkeet_alla);
         /* Lisätään vielä div selitystä varten: */
         if ($selitys_auki) {
             $normaali_kokonaisuus .= "<div class='selitys' id='selitys" . $kokonaisuus->get_id() . "'>" . $selitys . "</div>";
         }
         $normaali_kokonaisuus .= "</div>";
         /* Kokonaisuus loppuu. */
         $palaute = $normaali_kokonaisuus;
     } else {
         if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$VAIN_OTSIKKO) {
             $class_arvo = "kokonaisuus";
             $otsikko = "<div class = " . $class_arvo . " id=" . $kokonaisuus->get_id() . ">" . "<h" . ($kokonaisuus->getOtsikkotaso() + 1) . ">" . $kokonaisuus->getOtsikkomerkinta() . " " . $kokonaisuus->getOtsikko() . " " . "</h" . ($kokonaisuus->getOtsikkotaso() + 1) . ">";
             $palaute = $nayta_ed_nappi . $siirra_ylemmaksi_nappi . $siirra_alemmaksi_nappi . $nayta_koodi_nappi . $nakyvyysmuutosnappi . $nayta_seur_nappi . $otsikko;
             $palaute .= $piilotushuomautus;
             $palaute .= "</div>";
             /* Kokonaisuus loppuu. */
         } else {
             // Kun jonkun toisen yksityinen / vain koosteessa, eikä hallintavaltuuksia:
             $palaute = "";
         }
     }
     return $palaute;
 }
Ejemplo n.º 3
0
 /**
  * Palauttaa tehtävän muokkauspainikkeen html-koodin. Täällä ei
  * tarkistella käyttöoikeuksia, vaan se tehdään kutsuvassa osassa.
  * 
  * Elementti-luokan olio annetaan toisena parametrina, jos muokkaukseen mennään
  * koosteesta. Tällöin annetaan mahdollisuus palata koosteeseen takaisin
  * muokkauksen jälkeen.
  * 
  * Jos kyse on normaalista painikkeesta tehtävässä, annetaan
  * toiseksi parametriksi arvo Elementti::$MUUTTUJAA_EI_MAARITELTY.
  * 
  * Samoin jos uusi ratkaisu lisätään elementtiryhmästä käsin, palataan
  * takaisin samaan ryhmään. Muuten parametrin arvo on 
  * Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY.
  * 
  * @param Tehtava $tehtava
  * @param Elementti $elementti
  * @param Elementtiryhma $elementtiryhma
  * @return string
  */
 public function luo_ratkaisun_lisayspainike($tehtava, $elementti, $elementtiryhma)
 {
     // Muokkaus koosteesta käsin:
     $koostetiedot = "";
     if ($elementtiryhma instanceof Elementtiryhma) {
         $koostetiedot = "&" . Koostekontrolleri::$elemryhma_name_id . "=" . $elementtiryhma->get_id();
     }
     if ($elementti instanceof Elementti) {
         $koostetiedot .= "&" . Koostekontrolleri::$kooste_name_id . "=" . $elementti->get_arvo(Elementti::$sarakenimi_kooste_id) . "&" . Koostekontrolleri::$elementti_name_id . "=" . $elementti->get_arvo(Elementti::$SARAKENIMI_ID);
     }
     $form_maaritteet = array(Attr::action(Attr::muotoile_action_arvo("index.php", array(Tehtavakontrolleri::$tehtava_name_id, "uusi"), array($tehtava->get_id(), "true")) . $koostetiedot), Attr::classs("summary"));
     $input_maaritteet = array(Attr::name(Toimintonimet::$tehtavatoiminto), Attr::value(Painikkeet::$ratkaisu_uusi_value), Attr::classs("btn btn-" . Koostenakymat::$btn_type_summary . " btn-" . Koostenakymat::$btn_size_summary));
     $uusitehtpainike = Html::luo_forminput_painike($form_maaritteet, $input_maaritteet);
     return $uusitehtpainike;
 }
Ejemplo n.º 4
0
 /**
  * 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;
 }
Ejemplo n.º 5
0
 /**
  * Palauttaa koodi, joka luo lomakkeen, jonka avulla voi muokata omaa
  * salasanaa ja muita tietoja. 
  * 
  * @param Parametrit $parametriolio 
  * @param type $uusi jos true, niin kyseessä uuden henkilön luominen.
  * @return type
  */
 function nayta_henkilotietolomake(&$parametriolio, $uusi)
 {
     /*$puh = $parametriolio->puhelin;
       $os = $parametriolio->osoite;
       $asuinmaa = $parametriolio->asuinmaa;
       $kieli = $parametriolio->kieli_henkilo;*/
     $tahti_molemmissa = "*";
     $tahti_vain_uudessa = "";
     $otsikko = Html::luo_b(Kayttajatekstit::henkilolomakeotsikko_muokkaus(), array());
     $tallennuspainike = Html::luo_input(array(Attr::type("submit"), Attr::name(Toimintonimet::$henkilotietotoiminto), Attr::value(Kayttajatekstit::$nappi_tallenna_tietomuutokset_value), Attr::title(Kayttajatekstit::$nappi_tallenna_tietomuutokset_title), Attr::classs("rinnakkain")));
     if ($uusi) {
         $etun = $parametriolio->etun;
         $sukun = $parametriolio->sukun;
         $lempin = $parametriolio->lempin;
         $komm = $parametriolio->komm;
         $uusktunnus = $parametriolio->uusktunnus;
         $eosoite = $parametriolio->eosoite;
         $name = Toimintonimet::$henkilotietotoiminto;
         $tahti_vain_uudessa = "*";
         $tallennuspainike = Html::luo_input(array(Attr::type("submit"), Attr::name(Toimintonimet::$henkilotietotoiminto), Attr::value(Kayttajatekstit::$nappi_henkilo_tallenna_uusi_value), Attr::title(Kayttajatekstit::$nappi_henkilo_tallenna_uusi_title), Attr::classs("rinnakkain")));
         $otsikko = Kayttajatekstit::henkilolomakeotsikko_uusi();
     } else {
         // Haetaan tiedot tietokannasta:
         $user = new Henkilo($parametriolio->get_omaid(), $parametriolio->get_tietokantaolio());
         if ($user->olio_loytyi_tietokannasta) {
             $etun = $user->get_arvo(Henkilo::$sarakenimi_etunimi);
             $sukun = $user->get_arvo(Henkilo::$sarakenimi_sukunimi);
             $lempin = $user->get_arvo(Henkilo::$sarakenimi_lempinimi);
             $komm = $user->get_arvo(Henkilo::$sarakenimi_kommentti);
             $uusktunnus = $parametriolio->uusktunnus;
             $eosoite = $user->get_arvo(Henkilo::$sarakenimi_eosoite);
             $name = Toimintonimet::$henkilotietotoiminto;
         } else {
             $this->lisaa_virheilmoitus(Tekstit::$virheilm_henkiloa_ei_loytynyt);
         }
     }
     $otsikko .= Html::luo_p(Kayttajatekstit::henkilolomake_nakyvyysselitys(), array(Attr::style("font-size: 80%")));
     $mj = $otsikko;
     // Ilmoitukset:
     $mj .= Html::luo_div($parametriolio->ilmoitus_kokon, array(Attr::id(Kayttajanakymat::$id_henkilotietolomakeilmoitukset), Attr::classs("korostus")));
     $mj .= Html::luo_table(Html::luo_tablerivi(Html::luo_tablesolu("*" . Kayttajatekstit::$lomakekentta_etunimi, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("text"), Attr::name(Kayttajakontrolleri::$name_etunimi), Attr::value($etun), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu("*" . Kayttajatekstit::$lomakekentta_sukunimi, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("text"), Attr::name(Kayttajakontrolleri::$name_sukunimi), Attr::value($sukun), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu(Kayttajatekstit::$lomakekentta_lempinimi, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("text"), Attr::name(Kayttajakontrolleri::$name_lempinimi), Attr::value($lempin), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu(Kayttajatekstit::$lomakekentta_kuvaus_itsesta, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("text"), Attr::name(Kayttajakontrolleri::$name_kommentti), Attr::value($komm), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu("*" . Kayttajatekstit::$lomakekentta_email, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("text"), Attr::name(Kayttajakontrolleri::$name_eosoite), Attr::value($eosoite), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu($tahti_vain_uudessa . Kayttajatekstit::$lomakekentta_kayttajatunnus, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("text"), Attr::name(Kayttajakontrolleri::$name_uusikayttajatunnus), Attr::value(""), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu($tahti_vain_uudessa . Kayttajatekstit::$lomakekentta_salasana, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("password"), Attr::name(Kayttajakontrolleri::$name_uusisalasana), Attr::value(""), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu($tahti_vain_uudessa . Kayttajatekstit::$lomakekentta_salasana_vahvistus, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("password"), Attr::name(Kayttajakontrolleri::$name_salasanavahvistus), Attr::value(""), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu("", array()) . Html::luo_tablesolu($tallennuspainike . Html::luo_input(array(Attr::type("submit"), Attr::name(Toimintonimet::$henkilotietotoiminto), Attr::value(Kayttajatekstit::$nappi_poistu_tiedoista_value), Attr::title(Kayttajatekstit::$nappi_poistu_tiedoista_title), Attr::classs("rinnakkain"))), array()), array()), array(Attr::summary("Muokkaustiedot"), Attr::align("center")));
     $lomake = Html::luo_form($mj, array(Attr::action("index.php"), Attr::method("post"), Attr::classs("tietolomake_rajaton")));
     return $lomake;
 }