/** * 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; }
/** * Palauttaa uude tehtävän lisäyspainikkeen 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. Samalla tavalla toimii elemryhma-parametri suhteessa * elementtiryhmään. * * Jos kyse on normaalista painikkeesta kokonaisuusoliossa, annetaan * toiseksi parametriksi arvo Elementti::$MUUTTUJAA_EI_MAARITELTY ja kolmanneksi * Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY. Muuten * arvona on Elementti-luokan olio, joka sisältää ensimmäisenä parametrina * annetun kokonaisuuden, tai Elementtiryhma-luokan olio. * * @param Kokonaisuusolio $kokonaisuus * @param Elementti $elementti * @param Elementtiryhma $elemryhma * @return string */ private function luo_uusi_teht_painike($kokonaisuus, $elementti, $elemryhma) { // Painikkeet kokonaisuuksien yhteydessä: $btn_type = Kokonaisuusnakymat::$btn_type_article; $btn_size = Kokonaisuusnakymat::$btn_size_article; $uusi_teht_nappi = ""; $onsubmit_funktionimi = "nayta_tehtavalomake"; $onsubmit_parametrit = array($kokonaisuus->get_id()); /* Tarpeen?*/ $koostetiedot = ""; 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); // Painikkeet koosteen yhteydessä: $btn_type = Koostenakymat::$btn_type_summary; $btn_size = Koostenakymat::$btn_size_summary; } if ($elemryhma instanceof Elementtiryhma) { $koostetiedot .= "&" . Koostekontrolleri::$elemryhma_name_id . "=" . $elemryhma->get_id(); } $form_maaritteet = array('method' => 'post', 'class' => 'article', 'action' => "index.php?" . "id_kokon=" . $kokonaisuus->get_id() . "&uusi=true" . $koostetiedot); $input_maaritteet = array('name' => Toimintonimet::$tehtavatoiminto, 'value' => Painikkeet::$tehtava_uusi_value, "class" => "btn btn-" . $btn_type . " btn-" . $btn_size); try { $uusi_teht_nappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet); } catch (Exception $poikkeus) { $this->lisaa_virheilmoitus("Virhe tehtavanapin luomisessa: " . $poikkeus->getMessage()); } return $uusi_teht_nappi; }
/** * Hakee elementtiryhmän elementit ja palauttaa ne xml-muodossa. * @param type $omaid * @param Koostekontrolleri $koostekontrolleri */ function hae_elementtiryhman_elementit($omaid, $koostekontrolleri, $koodaus) { $nyk_kooste = $koostekontrolleri->get_olio(); $parametriolio = $koostekontrolleri->get_parametriolio(); $tietokantaolio = $koostekontrolleri->get_tietokantaolio(); // Haetaan elementtiryhmä: $elemryhma = new Elementtiryhma($parametriolio->elemryhma_id, $tietokantaolio); if ($elemryhma->olio_loytyi_tietokannasta) { $elementit = $elemryhma->hae_elementit(); $viittausoliot_ok = array(); $elementit_ok = array(); $divi_mukaan = false; $all_elements = false; return muotoile_elemryhmaelem_xml($elemryhma, $koostekontrolleri, $nyk_kooste, $omaid, $elementit, $divi_mukaan, $all_elements, $viittausoliot_ok, $elementit_ok, $koodaus); } else { return "Error in ajax_kyselyt.php/hae_elementtiryhman_elementit()"; } }
/** * 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; }
/** * Tallentaa uuden elementtiryhmän linkkeineen. * @param Palaute $palauteolio */ public function toteuta_tallenna_uusi_elementtiryhma(&$palauteolio) { $param = $this->get_parametriolio(); $tietokantaolio = $this->get_tietokantaolio(); $id = Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY; $uusi = new Elementtiryhma($id, $this->get_tietokantaolio()); // Sijoitetaan saadut arvot oliolle: $uusi->set_arvo($this->get_parametriolio()->kooste_id, Elementtiryhma::$sarakenimi_kooste_id); $uusi->set_arvo($this->get_parametriolio()->elemryhma_nimi, Elementtiryhma::$sarakenimi_nimi); $uusi->set_arvo($this->get_parametriolio()->elemryhma_selitys, Elementtiryhma::$sarakenimi_selitys); $uusi->set_arvo($this->get_parametriolio()->elemryhma_tunnus, Elementtiryhma::$sarakenimi_tunnus); $tallennus = $uusi->tallenna_uusi(); if ($tallennus === Elementtiryhma::$OPERAATIO_ONNISTUI) { // Tallennetaan sitten elementit, jotka valittu tähän elementtiryhmään: $elem_valinnat = $param->elemryhma_elementtivalinnat; // $virheilm = ""; $laskuri = 0; foreach ($elem_valinnat as $id) { $ei_maar_id = Elementtiryhmalinkki::$MUUTTUJAA_EI_MAARITELTY; $uusilinkki = new Elementtiryhmalinkki($ei_maar_id, $tietokantaolio); $uusilinkki->set_arvo($id, Elementtiryhmalinkki::$sarakenimi_elementti_id); $uusilinkki->set_arvo($uusi->get_id(), Elementtiryhmalinkki::$sarakenimi_elementtiryhma_id); $tallennus_linkki = $uusilinkki->tallenna_uusi(); if ($tallennus_linkki === Elementtiryhmalinkki::$OPERAATIO_ONNISTUI) { $laskuri++; } else { $virheilm .= "<br/>" . $uusilinkki->tulosta_virheilmoitukset(); } } if ($laskuri === sizeof($elem_valinnat)) { $this->toteuta_nayta($palauteolio); $palauteolio->set_virhekoodi(Palaute::$VIRHEKOODI_KAIKKI_OK); $palauteolio->set_ilmoitus(Tekstit::$elementtiryhma_ilm_tallennus_ok . " " . $laskuri . " " . Tekstit::$elementtiryhma_ilm_elemlinkkia_tallennettu); } else { $this->toteuta_nayta_ryhmittelylomake($palauteolio); $palauteolio->set_virhekoodi(Palaute::$VIRHEKOODI_TALLENNUS); $palauteolio->set_ilmoitus(Tekstit::$elementtiryhma_virheilm_elementtilinkkien_tallennus . $virheilm); } } else { // Elementtiryhmän tallennus ei onnistunut $this->toteuta_nayta_ryhmittelylomake($palauteolio); $palauteolio->set_virhekoodi(Palaute::$VIRHEKOODI_TALLENNUS); $palauteolio->set_ilmoitus(Tekstit::$elementtiryhma_virheilm_tallennus . $uusi->tulosta_virheilmoitukset()); } }