Example #1
0
 /**
  * 
  * @param type $links
  * @param type $content
  * @param type $right_bar_content
  * @param type $number_of_col number of columns
  * @param bool $sidenav_fixed if true, the sidebar will be fixed
  * @return type
  */
 function create_sidenavs_and_content_row($links, $content, $right_bar_content, $number_of_col, $sidenav_fixed)
 {
     // Checks the number parameter:
     if (!is_numeric($number_of_col) || $number_of_col != 1 && $number_of_col != 2 && $number_of_col != 3) {
         $number_of_col = 2;
     }
     $right_nav = "";
     $range_1 = "xs";
     // lg/md/sm/xs
     $range_2 = "sm";
     // lg/md/sm/xs
     $range_3 = "lg";
     // lg/md/sm/xs
     $sidebarwidth_1 = 4;
     $sidebarwidth_2 = 3;
     $sidebarwidth_3 = 3;
     $main_width_1 = 12;
     // Bootstrap columns small screen
     $main_width_2 = 12 - $sidebarwidth_2;
     // Bootstrap columns bigger screen
     $main_width_3 = 12 - $sidebarwidth_3;
     // Bootstrap columns big screen
     $left_nav_attr_array = array(Attr::classs("col-" . $range_1 . "-" . $sidebarwidth_1 . " col-" . $range_2 . "-" . $sidebarwidth_2 . " " . " col-" . $range_3 . "-" . $sidebarwidth_3 . " " . "sidenav sidebar-offcanvas text-left"), Attr::id("sidenav-left"));
     if ($sidenav_fixed) {
         array_push($left_nav_attr_array, Attr::BS_data_spy("affix"));
     }
     $left_nav = Html::luo_div($links, $left_nav_attr_array);
     if ($number_of_col === 1) {
         $left_nav = "";
         $main_width_2 = 12;
     } else {
         if ($number_of_col === 3) {
             $right_nav = Html::luo_div($right_bar_content, array(Attr::classs("col-" . $range_1 . "-" . $sidebarwidth_1 . " col-" . $range_2 . "-" . $sidebarwidth_2 . " col-" . $range_3 . "-" . $sidebarwidth_3)));
             $main_width_2 -= 2;
             // Bootstrap columns bigger screen
             $main_width_1 -= 2;
             // Bootstrap columns small screen
         }
     }
     $main = Html::luo_div(Html::p(array(Attr::classs("pull-left visible-xs")), Html::button(array(Attr::classs("btn btn-warning btn-xs"), Attr::BS_data_toggle("offcanvas"), Attr::title(Painikkeet::$toggle_sidenav_title)), "<>")) . $content, array(Attr::classs("col-" . $range_1 . "-" . $main_width_1 . " " . "col-" . $range_2 . "-" . $main_width_2 . " " . "col-" . $range_3 . "-" . $main_width_3 . " " . "main_content text-left"), Attr::id("main_content")));
     $row = Html::luo_div(Html::luo_div($left_nav . $main . $right_nav, array(Attr::classs("row row-offcanvas " . "row-offcanvas-left"))), array(Attr::classs("container-fluid text-center")));
     return $row;
 }
 /**
  * Luo tehtävän painikkeet tarkastaen käyttäjän oikeudet. Palauttaa
  * painikkeiden html-koodin taulukossa, joka voi olla tyhjä.
  * 
  * Painikkeet liittyvät ratkaisun muokkaukseen, poistoon, oikeuksien
  * jakamiseen ja uuden kuvan lisäämiseen, joihin kaikkiin tarvitaan
  * peruskäyttäjää enemmän valtuuksia. Oikeuksien tarkistus vaatii
  * sen verran logiikkaa, ettei sitä oikein tunnu sopivalta tehdä
  * näkymissä.
  *
  * @param int $id_teht Sen tehtävän tunniste, jonka painikkeita haetaan.
  */
 function luo_tehtavapainikkeet($id_teht)
 {
     $tietokantaolio = $this->get_tietokantaolio();
     $omaid = $this->get_kayttaja()->get_id();
     $id_kokon = $this->get_parametriolio()->id_kokon;
     $parametriolio = $this->get_parametriolio();
     $painikkeet = array();
     $poistonappi = "";
     $muokkausnappi = "";
     $ratkaisunappi = "";
     /* Ratkaisujen näyttö */
     $uusi_ratkaisu_nappi = "";
     /* Uuden ratkaisun lisääminen */
     $uusi_kuva_painike = "";
     $jaa_oikeuksia_nappi = "";
     $nayta_koodi_nappi = "";
     // Haetaan ensin tehtävä:
     $tehtava = new Tehtava($id_teht, $tietokantaolio);
     if ($tehtava->olio_loytyi_tietokannasta) {
         // Lasketaan ratkaisut ja näytetään ratkaisupainike vain, jos
         // ratkaisuja on olemassa:
         $ratkaisut = $this->ratkaisukontrolleri->hae_ratkaisut($id_teht);
         $ratk_lkm = sizeof($ratkaisut);
         if ($ratk_lkm > 0) {
             // Ratkaisut näkyvät kaikille:
             $onsubmit_funktionimi = "hae_ratkaisut";
             $onsubmit_parametrit = array($tehtava->getId(), $id_kokon, $omaid);
             $form_maaritteet = array('method' => 'post', 'class' => 'rinnakkain', 'action' => "{$_SERVER['PHP_SELF']}?" . "id_teht=" . $tehtava->getId() . "&id_kokon=" . $id_kokon . "&kohde_kuva=" . Kuvat::$kohde_ratkaisu . "&" . Oliotyyppi::$naytettava_name . "=" . Palaute::$NAYTETTAVA_OLIOTYYPPI_RATKAISU);
             $input_maaritteet = array('name' => Toimintonimet::$tehtavatoiminto, 'value' => Painikkeet::$ratkaisu_nayta_ratkaisut_value, 'title' => Painikkeet::$ratkaisu_nayta_ratkaisut_title . " (" . $ratk_lkm . ")");
             $ratkaisunappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
         }
         //==================================================================
         $kohdeoikeudet = Henkilo::hae_kayttajan_kohdeoikeudet($tehtava->getHenkiloId(), $omaid, Oliotyyppi::$TEHTAVA, $tehtava->getId(), $tietokantaolio);
         // Muokkaus ja poisto tietysti sopivan korkeille henkilöille.
         // HUOMAA: jatkossa myös sopivasti muokkaajille!
         if ($kohdeoikeudet >= Lisavaltuudet::$SAA_MUOKATA_JA_POISTAA) {
             // POistopainike:
             $class = "rinnakkain";
             $id = "";
             $action = "{$_SERVER['PHP_SELF']}" . "?id_teht=" . $tehtava->getId() . "&id_kokon=" . $id_kokon . "&kohde_kuva=" . Kuvat::$kohde_tehtava;
             $name = Toimintonimet::$tehtavatoiminto;
             $value = Painikkeet::$tehtava_poista_value;
             $poistonappi = Html::luo_painikelomake($class, $id, $action, $name, $value);
             // Oikeuksia saa jakaa vain omistaja ja kunkku.
             if ($kohdeoikeudet + 0 === Lisavaltuudet::$KAIKKI_OIKEUDET + 0) {
                 // Oikeuksien eli lisävaltuuksien jakopainike:======================
                 $action_os = "oletus";
                 $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($id_kokon, $parametriolio->oppiaine_kokon, $parametriolio->kieli_id, $tehtava->getId(), Oliotyyppi::$TEHTAVA, $tehtava->getHenkiloId());
                 $jaa_oikeuksia_nappi = Kayttajanakymat::luo_jaa_lisaoikeuksia_painike($action_os, $action_kyselymuuttujat, $action_kyselyarvot);
                 //==================================================================
             }
         }
         // Muokkaus:
         if ($kohdeoikeudet >= Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA) {
             // Muokkauspainike:
             $class = "muokkauspainike";
             $id = "";
             /* HUOM! ÄLÄ JÄTÄ TYHJIÄ VÄLEJÄ =-MERKIN YMPÄRILLE!
              * AIHEUTTIVAT SEN, ETTÄ TEHTÄVÄNANTO EI NÄKYNYT! */
             $action = "{$_SERVER['PHP_SELF']}" . "?id_teht=" . $tehtava->getId() . "&id_kokon=" . $id_kokon . "&kohde_kuva=" . Kuvat::$kohde_tehtava;
             $name = Toimintonimet::$tehtavatoiminto;
             $value = Painikkeet::$tehtava_muokkaa_value;
             $muokkausnappi = Html::luo_painikelomake($class, $id, $action, $name, $value);
             /* Uuden kuvan lisäyspainike tehtävään*/
             $onsubmit_funktionimi = "nayta_kuvalomake";
             $onsubmit_parametrit = array($tehtava->getId());
             $form_maaritteet = array('method' => 'post', 'class' => 'rinnakkain', 'action' => "{$_SERVER['PHP_SELF']}?" . "id_kokon=" . $id_kokon . "&id_teht=" . $tehtava->getId() . "&uusi_kuva=true" . "&kohde_kuva=" . Kuvat::$kohde_tehtava);
             $input_maaritteet = array('name' => Toimintonimet::$tehtavatoiminto, 'value' => Painikkeet::$tehtava_lisaa_kuva_value, 'title' => Painikkeet::$tehtava_lisaa_kuva_title);
             try {
                 $uusi_kuva_painike = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
             } catch (Exception $poikkeus) {
                 $palaute .= "Virhe kuvanapin luomisessa: " . $poikkeus->getMessage();
             }
         }
         // Koodipainike, ellei ole piilotettu:
         if ($kohdeoikeudet >= Lisavaltuudet::$SAA_NAHDA_EI_MUOKATA_EI_POISTAA || $tehtava->getNakyvyys() + 0 === Nakyvyys::$JULKINEN) {
             // Koodia voivat kaikki vilkaista, jos vain näkyvissä:
             $nayta_koodi_nappi = Html::luo_button(Painikkeet::$NAYTA_KOODI_value, array(Attr::title(Painikkeet::$NAYTA_KOODI_title), Attr::onclick("hae_koodi", array($tehtava->get_id(), Oliotyyppi::$TEHTAVA))));
         }
         //============== Ratkaisun lisäyspainike ===========================
         // Uuden ratkaisun lisäysoikeudet (kohdeoikeudet ei oikein istu tähän):
         if ($this->get_kayttaja()->get_arvo(Henkilo::$sarakenimi_valtuudet) >= Valtuudet::$TEHTAVA_LISAYS) {
             // Uusi_ratkaisu_painike:
             try {
                 $onsubmit_funktionimi = "nayta_ratkaisulomake";
                 $onsubmit_parametrit = array($tehtava->getId());
                 /* Tehtävän id */
                 $form_maaritteet = array('method' => 'post', 'class' => 'rinnakkain', 'action' => "{$_SERVER['PHP_SELF']}?" . "id_teht=" . $tehtava->getId() . "&id_kokon=" . $id_kokon . "&uusi=1" . "&kohde_kuva=" . Kuvat::$kohde_ratkaisu);
                 $input_maaritteet = array('name' => Toimintonimet::$tehtavatoiminto, 'value' => Painikkeet::$ratkaisu_uusi_value);
                 $uusi_ratkaisu_nappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
             } catch (Exception $poikkeus) {
                 $sisalto .= "Uusi ratkaisu -painike: " . $poikkeus->getMessage();
             }
         }
     }
     $ehdokkaat = array($ratkaisunappi, $uusi_ratkaisu_nappi, $muokkausnappi, $nayta_koodi_nappi, $uusi_kuva_painike, $jaa_oikeuksia_nappi, $poistonappi);
     // Otetaan mukaan ne painikkeet, jotka eivät ole tyhjiä:
     foreach ($ehdokkaat as $nappi) {
         if (!empty($nappi)) {
             array_push($painikkeet, $nappi);
         }
     }
     return $painikkeet;
 }
 /**
  * Palauttaa html-lomakkeen, jonka avulla voidaan tallentaa uuden
  * kokonaisuuden tiedot tietokantaan tai muokata vanhoja. Lomakkeen html-id on
  * 'kokonaisuuslomake'.
  *
  * @param <type> $id_kokon
  * @param <type> $omaid
  * @param <type> $uusi
  * @param <type> $ilmoitus_kokon
  * @param Tietokantaolio $tietokantaolio
  * @param <type> $oppiaine_kokon
  * @param <type> $otsikko_kokon
  * @param <type> $tiivis_kokon
  * @param <type> $selitys_kokon
  * @param <type> $taso_kokon
  * @param <type> $jarjestysnro_kokon
  * @param <type> $laajennetun_id_kokon
  * @param <type> $ylakokonaisuuden_id_kokon
  * @param <type> $kieli_id
  * @param <type> $toiminnan_name_arvo
  * @param Kokonaisuuskontrolleri $kokonaisuuskontrolleri Tämä vähän
  * suurellinen, mutten äkkiä parempaa keinoa keksinyt (15.1.2015)
  * @param int $kaavakieli viittaa käytettävään matematiikan kaavakieleen
  * (28.11.2015)
  * @param Elementti $elementti on Elementti-luokan olio, johon tämä
  * kokonaisuus kuuluu, tai sitten Elementti::$MUUTTUJAA_EI_MAARITELTY,
  * ellei tulla koosteesta.
  * (20.2.2016)
  * @return <type>
  */
 function nayta_kokonaisuuslomake($id_kokon, $omaid, $uusi, $ilmoitus_kokon, $tietokantaolio, &$oppiaine_kokon, &$otsikko_kokon, &$tiivis_kokon, &$selitys_kokon, &$taso_kokon, &$jarjestysnro_kokon, &$laajennetun_id_kokon, &$ylakokonaisuuden_id_kokon, &$kieli_id, &$nakyvyys_kokon, $toiminnan_name_arvo, $kokonaisuuskontrolleri, $kaavakieli, $elementti, $elemryhma)
 {
     $mj = "";
     // Lomakkeen html-koodi.
     $otsikon_maxpituus = 150;
     $submitnappi = "";
     $perunappi = "";
     $uusi_kuva_tiivis = "";
     $uusi_kuva_seli = "";
     $tulo_koosteesta = false;
     // True, if coming from Kooste (Package).
     $kokonaisuus = "";
     // Tämä haetaan tietokannasta.
     /*$uusi_kuva_tiivis = "";
       $uusi_kuva_seli = "";*/
     $submit_kesken_nappi = "<input type='submit'" . "name='{$toiminnan_name_arvo}'" . "value='" . Painikkeet::$TALLENNA_KESKEN_KOKON_VALUE . "' " . "title='" . Painikkeet::$TALLENNA_KESKEN_KOKON_TITLE . "'/>";
     $esikatselunappi = "<button type='button' " . "onclick='nayta_kokonaisuuden_esikatselu(" . $id_kokon . ")'" . "title='" . Painikkeet::$ESIKATSELU_TITLE . "'/>" . Painikkeet::$ESIKATSELU_VALUE . "</button>";
     $elementtitiedot = "";
     // urliin lisättävät koosteen ja elementin idt
     if ($uusi) {
         $submitnappi = "<input type='submit'\n            name='{$toiminnan_name_arvo}'" . "value='" . Painikkeet::$TALLENNA_UUSI_KOKON_VALUE . "'/>";
         $perunappi = "<input type='submit'\n                    name='{$toiminnan_name_arvo}'" . "value='" . Painikkeet::$PERU_UUDEN_KOKON_TALLENNUS_VALUE . "'/>";
     } else {
         // Haetaan ajantasalla olevat tiedot tietokannasta. Aiemmin
         // tiedot tuotiin kiinteästi painikelomakkeeseen, mutta tällöin
         // tämän jälkeen olioon tehdyt muutokset eivät näkyneet, jos
         // alkoi tehdä muutoksia olioon.
         $kokonaisuus = new Kokonaisuusolio($id_kokon, $tietokantaolio);
         if ($kokonaisuus->olio_loytyi_tietokannasta) {
             $oppiaine_kokon = $kokonaisuus->getOppiaine();
             // Alla ovat tärkeitä, jotta esim. JS-koodi toimii, eikä
             // ala kehittämään mitään ylimääräistä muokatessa. Huom:
             // stripslash pilaa latex-koodin, eikä ilm tarpeellinen.
             $otsikko_kokon = htmlspecialchars($kokonaisuus->getOtsikko(), ENT_QUOTES, "UTF-8", true);
             $tiivis_kokon = htmlspecialchars($kokonaisuus->getTiivis(), ENT_QUOTES, "UTF-8", true);
             $selitys_kokon = htmlspecialchars($kokonaisuus->getSelitys(), ENT_QUOTES, "UTF-8", true);
             /*$otsikko_kokon = stripslashes($kokonaisuus->getOtsikko());
               $tiivis_kokon = stripslashes($kokonaisuus->getTiivis());
               $selitys_kokon = stripslashes($kokonaisuus->getSelitys());*/
             $taso_kokon = $kokonaisuus->getTaso();
             $jarjestysnro_kokon = $kokonaisuus->getJarjestysnro();
             $laajennetun_id_kokon = $kokonaisuus->getLaajennetun_id();
             $ylakokonaisuuden_id_kokon = $kokonaisuus->getYlakokonaisuuden_id();
             $nakyvyys_kokon = $kokonaisuus->getNakyvyys();
             $submitnappi = "<input type='submit'" . "name='{$toiminnan_name_arvo}'" . "value='" . Painikkeet::$TALLENNA_MUOKKAUS_KOKON_VALUE . "'" . "title='" . Painikkeet::$TALLENNA_MUOKKAUS_KOKON_TITLE . "'/>";
             $perunappi = "<input type='submit'\n                    name='{$toiminnan_name_arvo}'" . "value='" . Painikkeet::$PERU_KOKON_MUUTOSTEN_TALLENNUS_VALUE . "'/>";
             //==============================================================
             // Täällä katsotaan, onko käyttäjä tulossa koosteesta ja
             // mahdollistetaan kätevä paluu takaisin.=======================
             if ($elementti instanceof Elementti) {
                 $kooste_id = $elementti->get_arvo(Elementti::$sarakenimi_kooste_id);
                 $elem_id = $elementti->get_id();
                 //$koostenakymat = new Koostenakymat();
                 //$perunappi = $koostenakymat->
                 //        nayta_inputpainike_paluu_koosteeseen_no_form();
                 $elementtitiedot = "&" . Koostekontrolleri::$kooste_name_id . "=" . $kooste_id . "&" . Koostekontrolleri::$elementti_name_id . "=" . $elem_id;
                 $tulo_koosteesta = true;
             }
             if ($elemryhma instanceof Elementtiryhma) {
                 $elemryhma_id = $elemryhma->get_id();
                 $elementtitiedot .= "&" . Koostekontrolleri::$elemryhma_name_id . "=" . $elemryhma_id . "&";
                 $tulo_koosteesta = true;
             }
             //========= Kuvan lisäyspainikkeet: paluu vanhaan ideaan ===========
             /* Uuden kuvan lisäyspainike tiivistelmään*/
             $uusi_kuva_tiivis = "<input type='submit'" . "name='{$toiminnan_name_arvo}'" . "value='" . Painikkeet::$LISAA_KUVA_MANUAALI_TIIVIS_KOKON_VALUE . "'" . "title='" . Painikkeet::$LISAA_KUVA_MANUAALI_TIIVIS_KOKON_TITLE . "'/>";
             /* Uuden kuvan lisäyspainike selitykseen:*/
             $uusi_kuva_seli = "<input type='submit'" . "name='{$toiminnan_name_arvo}'" . "value='" . Painikkeet::$LISAA_KUVA_MANUAALI_SELITYS_KOKON_VALUE . "'" . "title='" . Painikkeet::$LISAA_KUVA_MANUAALI_SELITYS_KOKON_TITLE . "'/>";
             //==================================================================
         } else {
             $this->lisaa_virheilmoitus(Tekstit::$ilm_kokon_ei_loytynyt);
             return $this->tulosta_virheilmoitukset() . $perunappi;
         }
     }
     // End of päivitetään vanhaa.
     // NÄkyvyysvalikko: ====================================================
     $oletusarvo = $nakyvyys_kokon;
     $nakyvyydet = new Nakyvyys();
     $select_maaritteet = array(Attr::name(Kokonaisuuskontrolleri::$kokon_name_nakyvyys), Attr::title(Tekstit::$nakyvyys_valikko_otsikko_title));
     $option_maaritteet = array();
     $nakyvyysvalikko = $nakyvyydet->luo_pudotusvalikko($select_maaritteet, $option_maaritteet, $oletusarvo, Tekstit::$nakyvyys_valikko_otsikko);
     //======================================================================
     // Ilmoitus otetaan mukaan, jos ei tyhjä:
     if ($ilmoitus_kokon != "") {
         $ilmoitus_kokon = "<span class='kokonaisuuslomakeilmoitus'>" . $ilmoitus_kokon . "</span><br />";
     }
     $oppiainehtml = Tekstit::$oppiainevalikko_otsikko . ": <b>" . Oppiaineet::hae_oppiaineen_nimi($oppiaine_kokon) . "</b>";
     $koulutasohtml = Tekstit::$tasovalikko_otsikko . ": <b>" . Koulutasot::hae_koulutason_nimi($taso_kokon, false) . "</b>";
     // Kielivalintavalikko: VALINTA POISTETTU toimintavaikeuksien takia!
     //$kielivalintahtml = nayta_kielivalikko($kieli_id);
     $kielivalintahtml = Tekstit::$kielivalikko_otsikko . ": <b>" . Kielet::hae_kielen_nimi($kieli_id) . "</b>";
     // Ylempi kokonaisuustaso
     $ylakokonvalikko = $this->nayta_ylakokonaisuusvalikko($id_kokon, $tietokantaolio, $ylakokonaisuuden_id_kokon, $oppiaine_kokon, $kieli_id, $taso_kokon, $uusi, $omaid, $kokonaisuuskontrolleri);
     // Tekstinmuokkaus tiivistelmää varten:
     $muokattavan_elementin_id_tii = "tiivis_tekstiruutu";
     $alasvetovalikon_id = "merkit1_tiivis";
     $tekstityokaluolio = new Tekstityokalupalkki($muokattavan_elementin_id_tii, $alasvetovalikon_id);
     // Nykyään nämä toimii sekä tiivistelmälle että selitykselle.
     // Lomake osaa huomata, kunpaa ollaan muokkaamassa:
     $tekstimuokkauspainikkeet = $tekstityokaluolio->luo_painikkeet(Tekstityokalupalkki::$PERUSPAINIKKEET_JA_MATEMAATTISET, $kaavakieli);
     // Tekstinmuokkaus selitystä varten:
     $muokattavan_elementin_id_sel = "selitys_tekstiruutu";
     // Kaavakielivalikko:==================================================
     $kaavakielet = new Kaavakieli();
     $select_maaritteet = array(Attr::onchange("muuta_kaavakieli", array("this.value", Yleiset_arvot::$kaavakieli_name, $muokattavan_elementin_id_tii, $alasvetovalikon_id)));
     $option_maaritteet = array();
     $kaavakielivalikko = $kaavakielet->luo_pudotusvalikko($select_maaritteet, $option_maaritteet, $kaavakieli, Tekstit::$kaavakieli_otsikko);
     //=====================================================================
     if ($uusi) {
         // Ellei id-kokon-arvoa määritellä täällä, tulee sessiomuuttujasta vanha.
         $id_kokon = Kokonaisuusolio::$kokon_ei_maaritelty;
     }
     // Vanha ylakokon_id otetaan talteen, jotta lapsiasiat pysyvät
     // oikealla tolalla. Haetaan mahdollisimman tuoreet tiedot.
     $ylakokonaisuuden_id_vanha = $ylakokonaisuuden_id_kokon;
     if ($kokonaisuus instanceof Kokonaisuusolio) {
         $ylakokonaisuuden_id_vanha = $kokonaisuus->getYlakokonaisuuden_id();
     }
     /*lisaaTagit(elementin_id, elementin_tunnus, class_arvo, id_arvo*/
     // Sitten palat yhteen:
     $mj = "<form align='left' method='post' id='kokonaisuuslomake'" . "action='index.php?id_kokon=" . $id_kokon . "&ylakokonaisuuden_id_vanha=" . $ylakokonaisuuden_id_vanha . "&taso_kokon=" . $taso_kokon . "&kieli_id=" . $kieli_id . "&uusi=" . $uusi . $elementtitiedot . "'/>" . $ilmoitus_kokon . "<b>" . Tekstit::$kokonlomake_ohje . "</b>" . $esikatselunappi . "<table summary='uudet_tiedot'>" . "<tr><td>" . Tekstit::$kokonlomake_otsikko . ": </td><td><input type='text'\n            size='55' maxlength='{$otsikon_maxpituus}'" . "name='otsikko_kokon' value='{$otsikko_kokon}'" . "id='otsikkotekstikentta'" . "title='" . Tekstit::$kokonlomake_otsikkotitle . "'/>" . "</tr>" . "<tr><td></td>" . "<td>" . " " . $ylakokonvalikko . " " . $nakyvyysvalikko . "</td>" . "</tr>" . "<tr><td></td><td>" . $kaavakielivalikko . " " . $oppiainehtml . " " . $koulutasohtml . " " . $kielivalintahtml . "</td></tr>" . "<tr><td></td><td colspan='2'>" . $tekstimuokkauspainikkeet . "</td></tr>" . "<tr><td>" . Tekstit::$kokonlomake_tiivis . ":</td>" . "<td colspan='2'><textarea cols='80' rows='18' maxlength = '10000'\n            id='" . $muokattavan_elementin_id_tii . "' name='tiivis_kokon' \n            onfocus='kirjoituskentta_onfocus(\"tiivis_tekstiruutu\")'>" . $tiivis_kokon . "</textarea></td></tr>" . "<tr><td>" . Tekstit::$kokonlomake_selitys . ":</td>" . "<td colspan='2'><textarea cols='80' rows='9' maxlength = '10000'\n            id='" . $muokattavan_elementin_id_sel . "' name='selitys_kokon'\n            onfocus='kirjoituskentta_onfocus(\"selitys_tekstiruutu\")'>" . $selitys_kokon . "</textarea></td></tr>" . "<tr><td></td><td align='left'>" . $submitnappi . $submit_kesken_nappi . $uusi_kuva_tiivis . $uusi_kuva_seli . $perunappi . "</td></tr>" . "</table>" . "</form>";
     return $mj;
 }
Example #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;
 }
 /**
  * Palauttaa koostelinkit ja toimintapainikkeet html-koodina. Huomaa:
  * Parametrina annetaan vain sellaiset elementit, joihin käyttäjällä
  * ainakin katsomisoikeudet. Tosin muokkausoikeudet pitää täällä vielä
  * erikseen selvittää (jos mahd muokata). Viittausolioissa on valmiina 
  * numerointi, jolloin tulee samat kuin varsinaisessa sisällössä.
  * 
  * @param Kooste $kooste Kooste-luokan olio
  * @param array $elementit Elementti-luokan oliot
  * @param array $viittausoliot Oliot, joihin elementit viittaavat.
  * @param bool $wrapped Jos true, niin palautteen ympärille lisätään div,
  * muuten ei.
  * @return type
  */
 public function luo_koostelinkit($kooste, $elementit, $viittausoliot, $wrapped)
 {
     $html = "";
     $maxpituus = 22;
     // Linkin kirjainten maksimimäärä. Muu leikataan.
     /*======================== käyttäjän oikeudet ( ========*/
     //$koosteoikeudet = $kooste->hae_kayttajan_oikeudet($omaid);
     /*====================================================*/
     // Varmistetaan, että elementtejä ja olioita on yhtä paljon:
     if (sizeof($elementit) === sizeof($viittausoliot)) {
         for ($i = 0; $i < sizeof($elementit); $i++) {
             $painike_alas = "";
             $painike_ylos = "";
             $olio = $viittausoliot[$i];
             $elementti = $elementit[$i];
             $html_raaka = $olio->getOtsikkomerkinta() . " ";
             if ($olio instanceof Kokonaisuusolio) {
                 $html_raaka .= Yleismetodit::leikkaa_merkkijono($olio->getOtsikko(), $maxpituus);
             } else {
                 if ($olio instanceof Tehtava) {
                     $html_raaka .= Yleismetodit::leikkaa_merkkijono($olio->getOtsikko(), $maxpituus);
                 } else {
                     if ($olio instanceof Ratkaisu) {
                         $html_raaka .= Yleismetodit::leikkaa_merkkijono($olio->getVastaus(), $maxpituus);
                     }
                 }
             }
             $linkki = Html::luo_a_linkto("#elem" . $elementti->get_id(), $html_raaka . " " . $painike_alas . $painike_ylos, array(Attr::classs("koostelinkki")));
             $html .= Html::luo_div($linkki, array(Attr::title($elementti->hae_otsikko())));
         }
     } else {
         $html = Tekstit::$kooste_virheilm_linkeissa_erimaara_elem_ja_olioita;
     }
     if ($wrapped) {
         $html_wrapped = Html::luo_div($html, array(Attr::id(Koostenakymat::$kooste_otsikkolinkit_id)));
     } else {
         // Not wrapped..
         $html_wrapped = $html;
     }
     return $html_wrapped;
 }
 /**
  * Luo ratkaisun painikkeet tarkastaen käyttäjän oikeudet.
  * 
  * Huom: Käyttäjän id saadaan osoitteesta $this->get_parametriolio()->get_omaid().
  * Tämä on tärkeä tietää, koska sen perusteella annetaan toimenpidevaltuudet!
  * 
  * Palauttaa painikkeiden html-koodin taulukossa, joka voi olla tyhjä.
  * 
  * Painikkeet liittyvät ratkaisun muokkaukseen, poistoon, oikeuksien
  * jakamiseen ja uuden kuvan lisäämiseen, joihin kaikkiin tarvitaan
  * peruskäyttäjää enemmän valtuuksia. Oikeuksien tarkistus vaatii
  * sen verran logiikkaa, ettei sitä oikein tunnu sopivalta tehdä
  * näkymissä.
  *
  * @param int $id_ratk Sen ratkaisun tunniste, jonka painikkeita haetaan.
  */
 function luo_ratkaisupainikkeet($id_ratk)
 {
     $tietokantaolio = $this->get_tietokantaolio();
     $omaid = $this->get_parametriolio()->get_omaid();
     $id_kokon = $this->get_parametriolio()->id_kokon;
     $painikkeet = array();
     $poistonappi = "piip";
     $muokkausnappi = "";
     $uusi_kuva_painike = "";
     $jaa_oikeuksia_nappi = "";
     $nayta_koodi_nappi = "";
     // Haetaan ensin ratkaisu:
     $ratkaisu = new Ratkaisu($id_ratk, $tietokantaolio);
     if ($ratkaisu->olio_loytyi_tietokannasta) {
         //==================================================================
         $kohdeoikeudet = Henkilo::hae_kayttajan_kohdeoikeudet($ratkaisu->getHenkiloId(), $omaid, Oliotyyppi::$RATKAISU, $ratkaisu->getId(), $tietokantaolio);
         $this->lisaa_lihava_kommentti("kohdeoikeudet=" . $kohdeoikeudet . ", henkilo_id=" . $ratkaisu->getHenkiloId() . " ja omaid=" . $omaid);
         // Muokkaus ja poisto tietysti sopivan korkeille henkilöille.
         // HUOMAA: jatkossa myös sopivasti muokkaajille!
         if ($kohdeoikeudet >= Lisavaltuudet::$SAA_MUOKATA_JA_POISTAA) {
             // POistopainike:
             $class = "rinnakkain";
             $id = "";
             $action = "{$_SERVER['PHP_SELF']}" . "?id_ratk=" . $ratkaisu->getId() . "&id_teht=" . $ratkaisu->getTeht_id() . "&id_kokon=" . $id_kokon;
             $name = Toimintonimet::$tehtavatoiminto;
             $value = Painikkeet::$ratkaisu_poista_value;
             $poistonappi = Html::luo_painikelomake($class, $id, $action, $name, $value);
             array_push($painikkeet, $poistonappi);
             // Oikeuksia saa jakaa vain omistaja ja kunkku.
             if ($kohdeoikeudet === Lisavaltuudet::$KAIKKI_OIKEUDET) {
                 // Oikeuksien eli lisävaltuuksien jakopainike:======================
                 $action_os = "oletus";
                 $action_kyselymuuttujat = array("id_kokon", "oppiaine_kokon", "kieli_id", "id_teht", Kayttajakontrolleri::$lv_name_kohdeolio_id, Kayttajakontrolleri::$lv_name_kohdeoliotyyppi, Kayttajakontrolleri::$lv_name_omistaja_id);
                 $action_kyselyarvot = array($id_kokon, $this->get_parametriolio()->oppiaine_kokon, $this->get_parametriolio()->kieli_id, $ratkaisu->getTeht_id(), $ratkaisu->getId(), Oliotyyppi::$RATKAISU, $ratkaisu->getHenkiloId());
                 $jaa_oikeuksia_nappi = Kayttajanakymat::luo_jaa_lisaoikeuksia_painike($action_os, $action_kyselymuuttujat, $action_kyselyarvot);
                 array_push($painikkeet, $jaa_oikeuksia_nappi);
                 //==================================================================
             }
         }
         if ($kohdeoikeudet >= Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA) {
             // TArkistetaan urliin menevät tiedot:
             //$vastaus_turvallinen = urlencode($this->vastaus);
             //$ratkaisu_turvallinen = urlencode($this->ratkaisu);
             // Muokkauspainike:
             $class = "rinnakkain";
             $id = "";
             $action = "{$_SERVER['PHP_SELF']}" . "?id_ratk=" . $ratkaisu->getId() . "&id_teht=" . $ratkaisu->getTeht_id() . "&id_kokon=" . $id_kokon;
             //"&vastaus_ratk=".$vastaus_turvallinen.
             // "&ratkaisu_ratk=".$ratkaisu_turvallinen;
             $name = Toimintonimet::$tehtavatoiminto;
             $value = Painikkeet::$ratkaisu_muokkaa_value;
             $muokkausnappi = Html::luo_painikelomake($class, $id, $action, $name, $value);
             array_push($painikkeet, $muokkausnappi);
             /* Uuden kuvan lisäyspainike ratkaisuun*/
             $onsubmit_funktionimi = "nayta_kuvalomake";
             $onsubmit_parametrit = array($ratkaisu->getId());
             /* Ratkaisun id*/
             $form_maaritteet = array('method' => 'post', 'class' => 'rinnakkain', 'action' => "{$_SERVER['PHP_SELF']}?" . "id_kokon=" . $id_kokon . "&id_teht=" . $ratkaisu->getTeht_id() . "&id_ratk=" . $ratkaisu->getId() . "&kohde_kuva=" . Kuvat::$kohde_ratkaisu);
             $input_maaritteet = array('name' => Toimintonimet::$tehtavatoiminto, 'value' => Painikkeet::$ratkaisu_lisaa_kuva_value, 'title' => Painikkeet::$ratkaisu_lisaa_kuva_title);
             try {
                 $uusi_kuva_painike = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
                 array_push($painikkeet, $uusi_kuva_painike);
             } catch (Exception $poikkeus) {
                 $this->lisaa_virheilmoitus(Tekstit::$ratkaisu_virheilm_kuvanapin_luonti_eiok . $poikkeus->getMessage());
             }
         }
         if ($kohdeoikeudet >= Lisavaltuudet::$SAA_NAHDA_EI_MUOKATA_EI_POISTAA || $ratkaisu->getNakyvyys() + 0 === Nakyvyys::$JULKINEN) {
             // Koodia voivat kaikki vilkaista, jos vain näkyvissä:
             $nayta_koodi_nappi = Html::luo_button(Painikkeet::$NAYTA_KOODI_value, array(Attr::title(Painikkeet::$NAYTA_KOODI_title), Attr::onclick("hae_koodi", array($ratkaisu->get_id(), Oliotyyppi::$RATKAISU))));
             array_push($painikkeet, $nayta_koodi_nappi);
         }
     } else {
         $this->lisaa_virheilmoitus(Tekstit::$ratkaisu_ilm_ei_loytynyt);
     }
     return $painikkeet;
 }
 /**
  * Palauttaa painikkeiden html-koodin. 
  * @param int $kaavakieli matematiikassa käytettävä syöttökieli. Ks.
  * vakiot luokan alussa.
  * @return type
  */
 function luo_painikkeet($tarkennus, $kaavakieli)
 {
     /* Lisätään muutama painike tekstin muokkausta varten: */
     $lainausmerkki_yks = Tekstityokalupalkki::$tekstimuokkaus_lainausmerkkiVINO_yks;
     $lainausmerkki_kaks = Tekstityokalupalkki::$tekstimuokkaus_lainausmerkkiVINO_kaks;
     $kertomerkki = Tekstityokalupalkki::$tekstimuokkaus_kertomerkki;
     $miinusmerkki = Merkit::$miinusmerkki;
     $merkkivalikko_perusmerkit = $this->luo_merkkivalikko_jpmath($this->alasvetovalikon_id, $this->elementin_id);
     $tekstimuokkauspainikkeet = "<div class='tekstimuokkauspalkki' id='tekstimuokkauspalkki'>" . "<button type='button'" . "onclick='lisaaTagit(\"" . $this->elementin_id . "\",\"b\",\"\",\"\",\"\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_lihavointi_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_lihavointi . "</button>" . "<button type='button'" . "onclick='lisaaTagit(\"" . $this->elementin_id . "\",\"i\",\"\",\"\",\"\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_kursivointi_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_kursivointi . "</button>" . "<button type='button'" . "onclick='lisaaTagit(\"" . $this->elementin_id . "\",\"span\",\"korostus\",\"\",\"\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_korostus_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_korostus . "</button>" . "<button type='button'" . "onclick='lisaaTagit(\"" . $this->elementin_id . "\",\"u\",\"\",\"\",\"\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_alleviivaus_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_alleviivaus . "</button>" . "<button type='button'" . "onclick='lisaaTagit(\"" . $this->elementin_id . "\",\"sup\",\"\",\"\",\"\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_ylaindeksi_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_ylaindeksi . "</button>" . "<button type='button'" . "onclick='lisaaTagit(\"" . $this->elementin_id . "\",\"sub\",\"\",\"\",\"\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_alaindeksi_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_alaindeksi . "</button>" . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_xtoiseen, array(Attr::onclick('lisaaMerkki', array($this->elementin_id, "x<sup>2</sup>")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_xtoiseen_title))) . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_xkolmanteen, array(Attr::onclick('lisaaMerkki', array($this->elementin_id, "x<sup>3</sup>")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_xkolmanteen_title))) . "<button type='button'" . "onclick='lisaaMerkki(\"" . $this->elementin_id . "\",\"" . $kertomerkki . "\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_kertomerkki_title . "'>" . $kertomerkki . "</button>" . "<button type='button'" . "onclick='lisaaMerkki(\"" . $this->elementin_id . "\",\"" . Merkit::$miinusmerkki . "\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_miinusmerkki_title . "'>" . Merkit::$miinusmerkki . "</button>" . "<button type='button'" . "onclick='lisaaMerkki(\"" . $this->elementin_id . "\",\"" . Merkit::$likiarvo . "\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_likiarvo_title . "'>" . Merkit::$likiarvo . "</button>" . "<button type='button'" . "onclick='lisaaMerkki(\"" . $this->elementin_id . "\",\"" . Merkit::$tuplapystyviiva . "\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_tuplapystyviiva_title . "'>" . Merkit::$tuplapystyviiva . "</button>" . Html::luo_button(Merkit::$pystyviiva, array(Attr::onclick('lisaaMerkki', array($this->elementin_id, Merkit::$pystyviiva)), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_pystyviiva_title))) . "<button type='button'" . "onclick='lisaaSulut(\"" . $this->elementin_id . "\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_sulut_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_sulut . "</button>" . "<button type='button'" . "onclick='lisaaEriMerkkipari(\"" . $this->elementin_id . "\",\"[\",\"]\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_hakasulut_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_hakasulut . "</button>" . "<button type='button'" . "onclick='lisaaEriMerkkipari(\"" . $this->elementin_id . "\",\"{\",\"}\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_aaltosulut_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_aaltosulut . "</button>" . "<button type='button'" . "onclick='lisaaMerkkipari(\"" . $this->elementin_id . "\",\"" . Merkit::$lainausmerkki_yks . "\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_lainausmerkki_yks_title . "'>" . Merkit::$lainausmerkki_yks . "..." . Merkit::$lainausmerkki_yks . "</button>" . "<button type='button'" . "onclick='lisaaMerkkipari(\"" . $this->elementin_id . "\",\"" . $lainausmerkki_kaks . "\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_lainausmerkki_kaks_title . "'>" . Merkit::$lainausmerkki_kaks . "..." . Merkit::$lainausmerkki_kaks . "</button>";
     // Merkkivalikko:
     // Luodaan ensin vientipainike:
     $painike = $this->luo_merkin_vientipainike($this->alasvetovalikon_id, $this->elementin_id);
     // Sijoitetaan alasvetovalikko ja sen painike taulukkoon:
     $tekstimuokkauspainikkeet .= $merkkivalikko_perusmerkit . $painike;
     //$tekstimuokkauspainikkeet .= "<br />";
     $tekstimuokkauspainikkeet .= "<button type='button'" . "onclick='lisaaMerkki(\"" . $this->elementin_id . "\",\"<br />\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_rivinvaihto_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_rivinvaihto . "</button>" . "<button type='button'" . "onclick='lisaaTagit(\"" . $this->elementin_id . "\",\"p\",\"\",\"\",\"\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_kappale_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_kappale . "</button>" . "<button type='button'" . "onclick='lisaaLinkkitagit(\"" . $this->elementin_id . "\",\"\",\"\",\"\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_linkki_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_linkki . "</button>" . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_div, array(Attr::onclick('lisaaTagit', array($this->elementin_id, "div", "", "", "")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_div_title))) . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_span, array(Attr::onclick('lisaaTagit', array($this->elementin_id, "span", "", "", "")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_span_title))) . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_taulukko, array(Attr::onclick('lisaaTagit', array($this->elementin_id, "taulukko", "default centered centered_content", "", "")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_taulukko_title))) . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_taulukkorivi, array(Attr::onclick('lisaaTagit', array($this->elementin_id, "tr", "", "", "")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_taulukkorivi_title))) . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_taulukkosolu_td, array(Attr::onclick('lisaaTagit', array($this->elementin_id, "td", "", "", "")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_taulukkosolu_td_title))) . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_taulukkosolu_th, array(Attr::onclick('lisaaTagit', array($this->elementin_id, "th", "", "", "")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_taulukkosolu_th_title))) . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_ul, array(Attr::onclick('lisaaTagit', array($this->elementin_id, "ul", "", "", "")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_ul_title))) . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_ol, array(Attr::onclick('lisaaTagit', array($this->elementin_id, "ol", "", "", "")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_ol_title))) . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_li, array(Attr::onclick('lisaaTagit', array($this->elementin_id, "li", "", "", "")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_li_title))) . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_class, array(Attr::onclick('lisaaEriMerkkipari', array($this->elementin_id, "class=\\\"", "\\\"")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_class_title))) . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_id, array(Attr::onclick('lisaaEriMerkkipari', array($this->elementin_id, "id=\\\"", "\\\"")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_id_title))) . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_nowrap, array(Attr::onclick('lisaaMerkki', array($this->elementin_id, "style=\\\"white-space:nowrap;\\\"")), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_nowrap_title))) . "<button type='button'" . "onclick='lisaaTagit(\"" . $this->elementin_id . "\",\"script\",\"\",\"\",\"text/javascript\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_skripti_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_skripti . "</button>" . Html::luo_button(Tekstityokalupalkki::$tekstimuokkaus_button_value, array(Attr::onclick('lisaaEriMerkkipari', array($this->elementin_id, $this->luo_button_alkumerkkaus(), $this->muotoile(Tekstityokalupalkki::$tekstimuokkaus_button_loppumerkkaus))), Attr::title(Tekstityokalupalkki::$tekstimuokkaus_button_title))) . "<button type='button'" . "onclick='lisaaTagit(\"" . $this->elementin_id . "\",\"code\",\"\",\"\",\"\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_code_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_code . "</button>" . "<button type='button'" . "onclick='lisaaTagit(\"" . $this->elementin_id . "\",\"div\",\"koodi\",\"\",\"\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_koodi_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_koodi . "</button>" . "<button type='button'" . "onclick='muokkaaErikoiset(\"" . $this->elementin_id . "\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_erikoismerkit_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_erikoismerkit . "</button>" . "<button type='button'" . "onclick='lisaaTagit(\"" . $this->elementin_id . "\",\"span\",\"suure\",\"\",\"\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_suure_title . "'>" . Tekstityokalupalkki::$tekstimuokkaus_suure . "</button>" . "<button type='button'" . "onclick='lisaaTagit(\"" . $this->elementin_id . "\",\"span\",\"yksikko\",\"\",\"\")'" . "title='" . Tekstityokalupalkki::$tekstimuokkaus_yksikko . "'>" . Tekstityokalupalkki::$tekstimuokkaus_yksikko . "</button>" . "<br/>";
     //======================================================================
     //==================== KAAVAKAAVAKAAVAKAAVA ============================
     //======================================================================
     //======================================================================
     // Lisätään vielä kaavan lisäämiseen tarvittavat painikkeet, jos
     // valittu matemaattiset painikkeen:
     if ($tarkennus == Tekstityokalupalkki::$PERUSPAINIKKEET_JA_MATEMAATTISET) {
         $tekstimuokkauspainikkeet .= "<div style=" . $this->kaavapainikeryhmatyyli . ">" . $this->luo_kaavapainikkeet($kaavakieli) . "</div>";
         // Kaavapainikeryhmän loppu.
     }
     //============== Kaavapainikkeet loppu =================================
     $tekstimuokkauspainikkeet .= "</div>";
     return $tekstimuokkauspainikkeet;
 }
Example #8
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;
 }