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