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