/** * Toteuttaa nimenmukaisen toiminnon. * @return Palauteolio $palauteolio */ public function toteuta_poista_PK() { $uusi = true; // false aiheutti vaikeasti huomattavan virheen. Ei // ollut tallennuskelpoinen.. if ($this->nyk_pikakommentti->on_tallennuskelpoinen($uusi)) { $palaute = $this->nyk_pikakommentti->poista(); if ($palaute == Pikakommentti::$OPERAATIO_ONNISTUI) { $ilmoitus = Pikakommenttitekstit::$ilmoitus_pikakommentin_poisto_ok; } else { $ilmoitus = Pikakommenttitekstit::$virheilmoitus_pikakommentin_poisto_eiok; } } else { $ilmoitus = $this->nyk_pikakommentti->tulosta_virheilmoitukset(); } $this->palauteolio->set_ilmoitus($ilmoitus); return $this->palauteolio; }
/** * Toteuttaa nimenmukaisen toiminnon. * @return Palauteolio $palauteolio */ public function toteuta_poista_lajiluokka() { $poistettava = new Lajiluokka($this->tietokantaolio, $this->parametriolio->id_lj); if ($poistettava instanceof Lajiluokka) { if ($poistettava->olio_loytyi_tietokannasta) { $palaute = $poistettava->poista(); if ($palaute === Lajiluokka::$OPERAATIO_ONNISTUI) { $ilmoitus = Bongaustekstit::$lajiluokan_poisto_ok; $this->palauteolio->set_operaatio_onnistui(true); } else { $ilmoitus = Bongaustekstit::$lajiluokka_virheilmoitus_poisto_eiok . " " . $palaute; $this->palauteolio->set_operaatio_onnistui(false); } } else { $ilmoitus = Bongaustekstit::$lajiluokka_virheilmoitus_poisto_eiok . " " . $poistettava->tulosta_virheilmoitukset(); $this->palauteolio->set_operaatio_onnistui(false); } } else { $ilmoitus = Bongaustekstit::$lajiluokka_virheilmoitus_poisto_eiok_lajiluokkaa_ei_loyt; $this->palauteolio->set_operaatio_onnistui(false); } $this->palauteolio->set_ilmoitus($ilmoitus); return $this->palauteolio; }
/** * Toteuttaa kuvan poistovahvistuksen näyttämisen. Mukaan haetaan ja näytetään * poistettava kuva. * * @param Parametrit $parametriolio * @return Palaute $palauteolio */ function toteuta_nayta_poistovahvistus($parametriolio) { $id_kokon = $parametriolio->id_kokon; $id_teht = $parametriolio->id_teht; $kohde = $parametriolio->kohde_kuva; $kohde_id = $parametriolio->id_kohde_kuva; $kuva_id = $parametriolio->id_kuva; $tietokantaolio = $parametriolio->get_tietokantaolio(); $html = ""; /* Palautettava koodi */ $palauteolio = new Palaute(); $ilmoitus = ""; /******************** Painikkeet *****************************/ $peru_nappi = ""; $poistovahvistus_nappi = ""; /* Uuden kuvan lisäyspainike tehtävään*/ $onsubmit_funktionimi = "nayta_kuvan_poistovahvistus"; $onsubmit_parametrit = array($kohde, $kuva_id); /* Kuvan id*/ /* Muotoillaan muuttujan name-arvo kohteen mukaan: */ $id_name = ""; if ($kohde == Kuvat::$kohde_kokonaisuus_tiivistelma || $kohde == Kuvat::$kohde_kokonaisuus_selitys) { $id_name = "id_kokon"; } else { if ($kohde == Kuvat::$kohde_tehtava) { $id_name = "id_teht"; } else { if ($kohde == Kuvat::$kohde_ratkaisu) { $id_name = "id_ratk"; } else { $id_name = "id_tuntematon"; } } } $form_maaritteet = array('method' => 'post', 'class' => 'rinnakkain', 'action' => "{$_SERVER['PHP_SELF']}?" . "&id_kuva=" . $kuva_id . "&id_kokon=" . $id_kokon . "&id_teht=" . $id_teht . "&" . $id_name . "=" . $kohde_id . "&kohde_kuva=" . $kohde); $input_maaritteet = array('name' => Toimintonimet::$kuvatoiminto, 'value' => Painikkeet::$PERU_POISTO_KUVA_VALUE); try { $peru_nappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet); } catch (Exception $poikkeus) { $ilmoitus = "Virhe poiston perumisnapin luomisessa: " . $poikkeus->getMessage(); } /* Poiston vahvistusnappi menee melkein samoilla muuttujilla: */ $input_maaritteet = array('name' => Toimintonimet::$kuvatoiminto, 'value' => Painikkeet::$POISTOVAHVISTUS_KUVA_VALUE); try { $poistovahvistus_nappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet); } catch (Exception $poikkeus) { $ilmoitus .= "Virhe poistonapin luomisessa: " . $poikkeus->getMessage(); } /******************** Painikkeet *****************************/ /* Haetaan poistettava kuva: */ $taulunimi = "kuvat"; $sarakenimi = "id"; $hakuarvo = $kuva_id; $hakutulosolio = $tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo); if ($hakutulosolio == Tietokantaolio::$HAKU_PALAUTTI_TYHJAN) { $ilmoitus .= "<br/>" . Tekstit::$ilm_kuva_poisto_kuvaa_ei_loytynyt; $html .= Tekstit::$ilm_kuva_poisto_kuvaa_ei_loytynyt; $html .= "<br/>" . $peru_nappi; } else { $kuva = new Kuva($hakutulosolio, $tietokantaolio); $html .= "<h2>" . Tekstit::$ilm_kuva_poistovahvistus . "</h2>"; $html .= $kuva->nayta_pelkka_kuva(Kuvat::$latauskansion_osoite); $html .= $poistovahvistus_nappi . $peru_nappi; } $palauteolio->set_sisalto($html); $palauteolio->set_ilmoitus($ilmoitus); return $palauteolio; }
/** * Toteuttaa : * @param Parametrit $parametriolio * @return Palaute $palauteolio */ function toteuta_($parametriolio) { $palauteolio = new Palaute(); $palauteolio->set_valikkonaytto(false); $palauteolio->set_sisalto($sisalto); $palauteolio->set_ilmoitus($ilmoitus); return $palauteolio; }
/** * Toteuttaa bongauskuva-albumeiden näyttämisen. * @param Parametrit $parametriolio * @return Palaute $palauteolio */ static function toteuta_bongausalbumeiden_naytto($parametriolio) { $palauteolio = new Palaute(); $sisalto = bongaus_hae_albumit($parametriolio->omaid, $parametriolio->tietokantaolio); $palauteolio->set_sisalto($sisalto); $palauteolio->set_ilmoitus(""); return $palauteolio; }
/** * Näyttää poistovarmistuksen tehtävän poistosta. * * @param Palaute $palauteolio */ function toteuta_nayta_poistovarmistus(&$palauteolio) { $parametriolio = $this->get_parametriolio(); $id_kokon = $parametriolio->id_kokon; $id_teht = $parametriolio->id_teht; $tietokantaolio = $parametriolio->get_tietokantaolio(); /* Painikkeet: */ $class = "rinnakkain"; $id = ""; $action = "{$_SERVER['PHP_SELF']}" . "?id_teht=" . $id_teht . "&id_kokon=" . $id_kokon; $name = Toimintonimet::$tehtavatoiminto; $value = Painikkeet::$tehtava_poistovahvistus_value; $oknappi = Html::luo_painikelomake($class, $id, $action, $name, $value); $class = "rinnakkain"; $id = ""; $action = "{$_SERVER['PHP_SELF']}?id_teht=" . $id_teht . "&id_kokon=" . $id_kokon; $name = Toimintonimet::$tehtavatoiminto; $value = Painikkeet::$tehtava_peru_poisto_value; $perunappi = Html::luo_painikelomake($class, $id, $action, $name, $value); /* Haetaan poistettavan tiedot: */ $poistettava = new Tehtava($id_teht, $tietokantaolio); if ($poistettava->olio_loytyi_tietokannasta) { $varmistus = "<h2>" . Tekstit::$tehtava_ilm_poistovahvistus . $poistettava->getOtsikko() . "'?</h2>"; $varmistus .= $oknappi . $perunappi; } else { $varmistus = "<h2>" . Tekstit::$tehtava_virheilm_poistettavaa_ei_loytynyt . "</h2>" . $perunappi; } $palauteolio->set_sisalto($varmistus); $palauteolio->set_valikkonaytto(false); }
/** * Palauttaa suoritustilaston taulukkoon muotoiltuna. * @param Parametrit $parametriolio * @return Palaute Palauttaa Palaute-luokan esiintymän. / */ function hae_suoritustilasto($parametriolio) { $tietokantaolio = $parametriolio->tietokantaolio; $omaid = $parametriolio->omaid; $palauteolio = new Palaute(); // Painikkeita: $muokkausnappi = ""; // Määritellään myöhemmin $poistonappi = ""; // Määritellään myöhemmin $paluunappi = ""; // Paluunappi perusnäkymään: $class = "rinnakkain"; $id = "paluunappi"; $action = "muistio.php"; $name = Muistiotoimintonimet::$perustoiminto; $value = Muistiopainikkeet::$paluu_perussuoritusnakymaan; $paluunappi = Html::luo_painikelomake($class, $id, $action, $name, $value); // Paluunappi lajitarkennusnäkymään: $class = "rinnakkain"; $id = "paluunappi"; $action = "muistio.php"; $name = Muistiotoimintonimet::$perustoiminto; $value = Muistiopainikkeet::$paluu_tilastot_lajeittain_nakymaan; $paluunappi2 = Html::luo_painikelomake($class, $id, $action, $name, $value); $otsikko = ""; if ($parametriolio->vain_omat_suoritukset) { $otsikko = $_SESSION['tiedot']->etunimi . " " . $_SESSION['tiedot']->sukunimi . ", "; } $otsikko .= Lajitarkennukset::hae_lajitarkennuksen_kuvaus($parametriolio->lajitarkennus); $otsikko .= $paluunappi2 . $paluunappi; if ($parametriolio->vain_omat_suoritukset) { $mj = "<table id = 'tulostaulu'>\n <tr><td id='kuukm' colspan='4'>{$otsikko}</td></tr>\n <tr>\n <th>Aika</th>\n <th>Kuvaus</th>\n <th>Pvm</th>\n <th>Toiminnot</th>\n </tr>"; } else { $mj = "<table id = 'tulostaulu'>\n <tr><td id='kuukm' colspan='5'>{$otsikko}</td></tr>\n <tr>\n <th>Aika</th>\n <th>Kuvaus</th>\n <th>Pvm</th>\n <th>Nimi</th>\n <th>Toiminnot</th>\n </tr>"; } // Tarkistetaan, haetaanko kaikki vaiko vain omat: if ($parametriolio->vain_omat_suoritukset) { $hakulause = "SELECT * FROM suoritukset\n WHERE (lajitarkennus= " . $parametriolio->lajitarkennus . " AND henkilo_id = " . $omaid . ")\n ORDER by kestotunnit, kestomin, kestosek;"; } else { $hakulause = "SELECT * FROM suoritukset\n WHERE lajitarkennus= '" . $parametriolio->lajitarkennus . "' " . "ORDER by kestotunnit, kestomin, kestosek;"; //ORDER by henkilo_id, kestotunnit, kestomin, kestosek;" } $osumaoliot = $tietokantaolio->tee_OMAhaku_oliotaulukkopalautteella($hakulause); if (empty($osumaoliot)) { $mj .= "<tr><td colspan=5>" . Muistiotekstit::$suorituksia_ei_loytynyt . "</td></tr>"; } else { $laskuri = 0; foreach ($osumaoliot as $suoritus) { // Painikkeet: $class = "rinnakkain"; $id = "muokkausnappi"; $action = "muistio.php?" . URL_muuttujat::$suoritus_id . "=" . $suoritus->id . "&" . URL_muuttujat::$valinnat . "=" . $suoritus->id . "&" . URL_muuttujat::$lajitarkennus . "=" . $suoritus->lajitarkennus . "&" . URL_muuttujat::$paluunakyma . "=" . Muistio_yleisia_arvoja::$nakyma_tulostilasto; $name = Muistiotoimintonimet::$perustoiminto; $value = Muistiopainikkeet::$muokkausnappikomento_lyhyt; $muokkausnappi = Html::luo_painikelomake($class, $id, $action, $name, $value); $id = "poistonappi"; $value = Muistiopainikkeet::$poistonappikomento_lyhyt; $poistonappi = Html::luo_painikelomake($class, $id, $action, $name, $value); // Haetaan henkilön nimi: $nimi = hae_henkilon_nimi($suoritus->henkilo_id, false, $parametriolio->tietokantaolio); // Muotoillaan aika: $aika = muotoile_suorituksen_kesto($suoritus->kestotunnit, $suoritus->kestomin, $suoritus->kestosek, $suoritus->kesto); if ($laskuri % 2 != 0) { $mj .= "<tr class='parillinen_rivi'>"; } else { $mj .= "<tr>"; } // Nämä tulevat kaikkiin: $mj .= "<td>{$aika}</td>" . "<td>{$suoritus->kuvaus}</td>" . "<td class='aikasolu'>" . anna_viikonp_suomeksi($suoritus->paiva, $suoritus->kk, $suoritus->vuosi, true) . " " . $suoritus->paiva . "." . $suoritus->kk . "." . $suoritus->vuosi . "</td>"; // Lisätään nimi, jos näytetään kaikki: if ($parametriolio->vain_omat_suoritukset == false) { $mj .= "<td>{$nimi}</td>"; } // Toiminnot tulevat kaikkiin omiin ja adminille: if ($suoritus->henkilo_id == $parametriolio->omaid || $parametriolio->get_kayttajan_valtuudet() == Valtuudet::$HALLINTA) { $mj .= "<td>" . $muokkausnappi . $poistonappi . "</td>"; } else { $mj .= "<td></td>"; } // Lopuksi suljetaan taulukon rivi: $mj .= "</tr>"; $laskuri++; } } $mj .= "</table>"; $palauteolio->set_sisalto($mj); $palauteolio->set_nayta_kiintolinkit(false); return $palauteolio; }
/** * Toteuttaa kokonaisuuden muokkauksen tallentamisen. Erityisesti käyttäjän * tekemät muutokset kokonaisuuteen kulkevat aina tämän metodin kautta, * lukuunottamatta näkyvyyttä ja lukitusta. * * Huomaa, ettei lukitusta tai käyttöoikeuksia tarkisteta täällä. Ne * tarkistetaan Kayttajakontrolleri-luokan metodeilla kokonaisuuden * tulostuksen (ruudulle) yhteydessä, jolloin vain asianmukaisille * käyttäjille annetaan painikkeet muokkausta tai poistoa varten. * * Joitakin ominaisuuksia ei voi muuttaa täällä: * luomishetki_sek - ei muuteta * ed_muutos_sek - automaattinen * näkyvyys - arvoja ei aseteta täällä (oma metodi Kokonaisuusoliossa) * on_lapsia - arvoja ei aseteta täällä (oma metodi Kokonaisuusoliossa) * lukitus - arvoja ei aseteta täällä (oma metodi Kokonaisuusoliossa) * jarjestysluku - arvoja ei aseteta täällä (oma metodi Kokonaisuuskontrollerissa) * kieli_id - arvoa ei aseteta täällä. * taso - ei muuteta * oppiaine - ei muuteta. * * Lukitus poistetaan oliolta onnistuneen operaation päätteeksi. * * @param Palaute $palauteolio */ function toteuta_tallenna_muokkaus(&$palauteolio) { $parametriolio = $this->get_parametriolio(); $ilmoitus = ""; // Tarkistuksessa putsataan vain riskimerkit. $parametriolio->set_uusi(false); $omaid = $parametriolio->get_omaid(); $otsikko_kokon = $parametriolio->get_otsikko_kokon(); $tiivis_kokon = $parametriolio->get_tiivis_kokon(); $selitys_kokon = $parametriolio->get_selitys_kokon(); $laajennetun_id_kokon = $parametriolio->get_laajennetun_id_kokon(); $ylakokonaisuuden_id_kokon = $parametriolio->get_ylakokonaisuuden_id_kokon(); $nakyvyys_kokon = $parametriolio->nakyvyys_kokon; $muutettavan_kokon_id = $parametriolio->id_kokon; $virhekoodi = Palaute::$VIRHEKOODI_KAIKKI_OK; // Haetaan kokonaisuuden omistaja, jotta voidaan tarkistaa: $vanha_kokon = $this->get_olio(); if ($vanha_kokon instanceof Kokonaisuusolio && $vanha_kokon->olio_loytyi_tietokannasta) { $muutettavan_kokon_luojan_id = $vanha_kokon->getHenkiloId(); } else { $muutettavan_kokon_luojan_id = Kokonaisuusolio::$MUUTTUJAA_EI_MAARITELTY; } //============== Tarkistetaan, onko käyttäjä vielä oikeasti online // ja valtuudet kunnossa: ====== $kohdeoikeudet = Henkilo::hae_kayttajan_kohdeoikeudet($muutettavan_kokon_luojan_id, $omaid, Oliotyyppi::$KOKONAISUUS, $muutettavan_kokon_id, $this->get_tietokantaolio()); /*====================================================================*/ //====================================================================== // Muokattava aolio: $muokattava = new Kokonaisuusolio($muutettavan_kokon_id, $this->get_tietokantaolio()); if ($kohdeoikeudet >= Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA) { if ($muokattava->olio_loytyi_tietokannasta) { $palauteolio->set_virhekoodi($virhekoodi); // Lisätään kokonaisuudelle saadut mahdollisesti muutettavat parametrit // (vain ne, joita ylipäätään voidaan muuttaa): $muokattava->set_arvo($otsikko_kokon, Kokonaisuusolio::$sarakenimi_otsikko); $muokattava->set_arvo($tiivis_kokon, Kokonaisuusolio::$sarakenimi_tiivis); $muokattava->set_arvo($selitys_kokon, Kokonaisuusolio::$sarakenimi_selitys); $muokattava->set_arvo($laajennetun_id_kokon, Kokonaisuusolio::$sarakenimi_laajennetun_id); $muokattava->set_arvo($ylakokonaisuuden_id_kokon, Kokonaisuusolio::$sarakenimi_ylakokonaisuuden_id); $muokattava->set_arvo($nakyvyys_kokon, Kokonaisuusolio::$sarakenimi_nakyvyys); // Tallennus tietokantaan: $palaute = $muokattava->tallenna_muutokset(); // Jos tiedoissa on vikaa, esim. tyhjä otsikko: if ($palaute != Kokonaisuusolio::$OPERAATIO_ONNISTUI) { $this->get_parametriolio()->set_ilmoitus_kokon($muokattava->tulosta_virheilmoitukset()); $this->lisaa_virheilmoitus($muokattava->tulosta_virheilmoitukset()); $this->toteuta_nayta_kokonaisuuslomake($palauteolio); $palauteolio->set_virhekoodi(Palaute::$VIRHEKOODI_YLEINEN); $ilmoitus .= Tekstit::$ilm_kokon_muokkaustallennus_eiok; } else { // Kaikki kunnossa. $ilmoitus = " "; /* Poistetaan kokonaisuuden lukitus: */ $lukon_tila = Kokonaisuusolio::$LUKITUS_OFF; $lukituksen_avaus = $muokattava->aseta_kokonaisuuden_lukitus($parametriolio->get_omaid(), $lukon_tila); /* Ilmoitus, ellei lukitus jostakin syystä onnistunut: */ if ($lukituksen_avaus != Kokonaisuusolio::$OPERAATIO_ONNISTUI) { $ilmoitus .= " " . Tekstit::$virheilm_kokonaisuuden_lukituksen_avaus_eiok . $muokattava->tulosta_virheilmoitukset(); $virhekoodi = Palaute::$VIRHEKOODI_LUKITUS_KOKONAISUUDET; } else { $ilmoitus = Tekstit::$ilm_kokon_muokkaustallennus_ok; //Aktiivisuusmerkintä: $aktiivisuuspalaute = paivita_aktiivisuus($omaid, $this->get_tietokantaolio(), time(), Aktiivisuus::$KOKONAISUUDEN_MUUTOSTEN_TALLENNUS); if (!$aktiivisuuspalaute) { $this->lisaa_virheilmoitus(Tekstit::$virheilm_aktiivisuuden_tallennus_eiok); } else { $onnistuminen = Palaute::$VIRHEKOODI_KAIKKI_OK; } } // Huom: täällä hämäävästi käyttöön tulee uusi palauteolio, jolloin // esim aiemmat virhekoodin asetukset eivät voimassa. if ($parametriolio->tallennuskesken) { $parametriolio->uusi = false; $this->toteuta_nayta_kokonaisuuslomake($palauteolio); } else { // Otetaan selville, tuleekö käyttäjä koosteesta vai // kokonaisuuksista ja näytetään vastaava juttu: $parametriolio = $this->get_parametriolio(); $elem_id = $parametriolio->elementti_id; $elemryhma_id = $parametriolio->elemryhma_id; // Tarkistetaan, mistä ollaan tulossa ja minne menossa: $koostekontrolleri = new Koostekontrolleri($this->get_tietokantaolio(), $parametriolio); if ($elemryhma_id != Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY) { $koostekontrolleri->toteuta_nayta_elementtiryhma($palauteolio); $palauteolio->set_muokatun_id($elem_id); } else { if ($elem_id != Elementti::$MUUTTUJAA_EI_MAARITELTY) { $koostekontrolleri->toteuta_nayta($palauteolio); $palauteolio->set_muokatun_id($elem_id); } else { $this->toteuta_nayta($palauteolio); $palauteolio->set_muokatun_id($muutettavan_kokon_id); } } } // Tämän pitää olla vasta täällä (ks. ylempi kommentti). $palauteolio->set_virhekoodi(Palaute::$VIRHEKOODI_KAIKKI_OK); // Lisätään mahdollinen lukitusvirhekoodi if ($virhekoodi != Palaute::$VIRHEKOODI_KAIKKI_OK) { $palauteolio->set_virhekoodi($virhekoodi); $ilmoitus .= Tekstit::$ilm_kokon_muokkaustallennus_eiok . ": " . $virhekoodi; } } } else { $this->lisaa_virheilmoitus(Tekstit::$ilm_kokon_ei_loytynyt); } } else { // Kun sessio loppunut tai muuten väärä muokkaaja: $this->lisaa_virheilmoitus(Tekstit::$virheilm_kokon_muok_ei_valtuuksia); $this->toteuta_nayta($palauteolio); } $palauteolio->set_ilmoitus($ilmoitus . "<br/>" . $this->tulosta_virheilmoitukset()); return $palauteolio; }
/** * * @param Palaute $palauteolio */ public function toteuta_nayta_poistovarmistus(&$palauteolio) { $poistettava = $this->get_olio(); if ($poistettava instanceof Kooste) { $sisalto = $this->koostenakymat->nayta_poistovahvistuskysely($poistettava); $palauteolio->set_sisalto($sisalto); } }
/** * Näyttää kurssitietolomakkeen uuden luomista tai vanhan muokkausta varten. * @param Palaute $palauteolio Vakio palauteolio näkymätietojen säilyttämiseen. */ public function toteuta_nayta_kurssitietolomake(&$palauteolio) { $param = $this->get_parametriolio(); $lang_id = $param->kieli_id; // Jos kysymyksessä uusi, ei olio ole tietokannassa, muuten on. $courseInfo = new Kurssitieto($param->kurssitieto_id, $param->get_tietokantaolio()); $sisalto = $this->palautusnakymat->show_courseInfo_form($lang_id, $courseInfo); $palauteolio->set_sisalto($sisalto); }
/** * @param Palaute $palauteolio */ public function __construct($palauteolio) { $this->kielivalikko = $palauteolio->get_valikkonaytto(); $this->sisalto = $palauteolio->get_sisalto(); $this->ilmoitus = $palauteolio->get_ilmoitus(); $this->tiedot = $palauteolio->get_tiedot(); $this->linkit = $palauteolio->get_linkkihtml(); $this->oikea_palkki_naytto = $palauteolio->get_oikean_palkin_naytto(); $this->oikea_palkki_sisalto = $palauteolio->get_oikean_palkin_html(); $this->otsikko = $palauteolio->get_otsikko(); $this->title = $palauteolio->get_title(); $this->onload_metodinimi = $palauteolio->get_onload_metodinimi(); $this->onload_parametritaulukko = $palauteolio->get_onload_metodiparametritaulukko(); }
/** * * @param Palaute $palauteolio * @param Parametrit $parametriolio * @param Koostekontrolleri $koostekontrolleri * @param Tehtavakontrolleri $tehtavakontrolleri * @param Ratkaisukontrolleri $ratkaisukontrolleri * @param Kokonaisuuskontrolleri $kokonaisuuskontrolleri */ function nayta_urlin_mukaan(&$palauteolio, &$parametriolio, &$koostekontrolleri, &$tehtavakontrolleri, &$ratkaisukontrolleri, &$kokonaisuuskontrolleri) { $palauteolio->set_oma(Yleiset_arvot::$toimintaa_ei_maaritelty); $palauteolio->set_naytto_urlin_mukaan(true); // Mietittävää: kielen, oppiaineen ja tason määritykset voisi laittaa // toteuta-metodeiden sisälle, jottei niitä tarvita roskaamaan urlia. // Lähinnä koosteiden kohdalla pitää // miettiä, koska tällä hetkellä kaikki näkyy kaikille, eli siis // niiden näkyvyyttä ei ole rajoitettu kielen, oppiaineen tai tason // perusteella. Mahdollisesti kielen perusteella näin voisi tehdäkin, // vaikka muut jättäisi ennalleen. // Huomaa myös, että urlissa voi olla pelkästään kielen, aineen ja // tason arvot, jolloin pitäisi osata näyttää ensimmäinen vastaava // kokonaisuus. // Otetaan kuitenkin parametrinolion arvo mukaan [, jos se on jokin muu // oletus "kokonaisuus"] (esim kun urlin perusteella tullaan): //if($parametriolio->naytettava != Palaute::$NAYTETTAVA_OLIOTYYPPI_KOKONAISUUS){ $palauteolio->set_naytettava_oliotyyppi(Oliotyyppi::muunna_palauteolion_arvoksi($parametriolio->naytettava)); //} // Alla pitäisi riittää palauteolion arvo. Se ohjaa nykyisin // näytettävää oliota. Muu-arvo (vähän kuin ei-määr) viittaa siihen, // ettei url määritä näytettävää oliota, joten pitää "arvata" se muuten. if ($palauteolio->get_naytettava_oliotyyppi() != Palaute::$NAYTETTAVA_OLIOTYYPPI_MUU) { if ($palauteolio->get_naytettava_oliotyyppi() === Palaute::$NAYTETTAVA_OLIOTYYPPI_TEHTAVA) { $tehtavakontrolleri->toteuta_nayta_tehtavat($palauteolio); } else { if ($palauteolio->get_naytettava_oliotyyppi() === Palaute::$NAYTETTAVA_OLIOTYYPPI_RATKAISU) { $ratkaisukontrolleri->toteuta_nayta($palauteolio); } else { if ($palauteolio->get_naytettava_oliotyyppi() === Palaute::$NAYTETTAVA_OLIOTYYPPI_KOOSTE) { // Haetaan kooste kieltä, tasoa ja oppiainetta varten: $kooste = $koostekontrolleri->get_olio(); if ($kooste->olio_loytyi_tietokannasta) { $kieli = $kooste->get_arvo(Kooste::$sarakenimi_kieli); $oppiaine = $kooste->get_arvo(Kooste::$sarakenimi_oppiaine); $taso = $kooste->get_arvo(Kooste::$sarakenimi_taso); // Kokonaisuusarvot ohjaavat eniten sovellusta: aseta_kieli_taso_ja_oppiaine($kieli, $oppiaine, $taso, $parametriolio); Kielet::kaanna($kieli); $koostekontrolleri->toteuta_nayta($palauteolio); } else { $koostekontrolleri->toteuta_nayta_koosteet($palauteolio); $palauteolio->set_ilmoitus(Tekstit::$kooste_koostetta_ei_ole_tai_ei_voida_nayttaa); } } else { if ($palauteolio->get_naytettava_oliotyyppi() === Palaute::$NAYTETTAVA_OLIOTYYPPI_KOOSTE_TULOSTUS) { $koostekontrolleri->toteuta_nayta_tulostus($palauteolio); } else { if ($palauteolio->get_naytettava_oliotyyppi() === Palaute::$NAYTETTAVA_OLIOTYYPPI_KOOSTE_ELEMRYHMA) { // Haetaan kooste kieltä, tasoa ja oppiainetta varten: $kooste = $koostekontrolleri->get_olio(); if ($kooste->olio_loytyi_tietokannasta) { $kieli = $kooste->get_arvo(Kooste::$sarakenimi_kieli); $oppiaine = $kooste->get_arvo(Kooste::$sarakenimi_oppiaine); $taso = $kooste->get_arvo(Kooste::$sarakenimi_taso); // Kokonaisuusarvot ohjaavat eniten sovellusta: aseta_kieli_taso_ja_oppiaine($kieli, $oppiaine, $taso, $parametriolio); Kielet::kaanna($kieli); $koostekontrolleri->toteuta_nayta($palauteolio); } else { $koostekontrolleri->toteuta_nayta_koosteet($palauteolio); $palauteolio->set_ilmoitus(Tekstit::$kooste_koostetta_ei_ole_tai_ei_voida_nayttaa); } } else { // default: $kokonaisuuskontrolleri->toteuta_nayta($palauteolio); } } } } } //====================================================================== //====================================================================== // Kun näytettävää oliota ei urlissa, tarkistetaan mahdolliset // id-arvot. Jos jokin määritelty, mennään sinne sitten! } else { // Tarkistetaan, onko kooste-id:tä: if ($parametriolio->kooste_id != Kooste::$MUUTTUJAA_EI_MAARITELTY || $parametriolio->elemryhma_id != Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY) { $nayta_kooste = true; if ($parametriolio->elemryhma_id != Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY) { $nayta_kooste = false; } // Haetaan kooste kieltä, tasoa ja oppiainetta varten: // Huomaa, että ei välttämättä Kooste-olio! $kooste = $koostekontrolleri->get_olio(); if ($kooste instanceof Kooste && $kooste->olio_loytyi_tietokannasta) { $kieli = $kooste->get_arvo(Kooste::$sarakenimi_kieli); $oppiaine = $kooste->get_arvo(Kooste::$sarakenimi_oppiaine); $taso = $kooste->get_arvo(Kooste::$sarakenimi_taso); // Kokonaisuusarvot ohjaavat eniten sovellusta: aseta_kieli_taso_ja_oppiaine($kieli, $oppiaine, $taso, $parametriolio); Kielet::kaanna($kieli); // NÄytetään joko kooste tai elementtiryhmä: if ($nayta_kooste) { $koostekontrolleri->toteuta_nayta($palauteolio); } else { $koostekontrolleri->toteuta_nayta_elementtiryhma($palauteolio); } } else { $koostekontrolleri->toteuta_nayta_koosteet($palauteolio); $palauteolio->set_ilmoitus(Tekstit::$kooste_koostetta_ei_ole_tai_ei_voida_nayttaa); } // Huomaa järjestys: ensin tarkistetaan ratkaisu, sitten teht ja // vasta lopuksi kokonaisuus (jonka id tahtoo kummitella muistissa). } else { if ($parametriolio->id_teht != Tehtava::$MUUTTUJAA_EI_MAARITELTY) { // Näytetään yksi tehtävä: $tehtavakontrolleri->toteuta_nayta($palauteolio); } else { if ($parametriolio->id_ratk != Ratkaisu::$MUUTTUJAA_EI_MAARITELTY) { $ratkaisukontrolleri->toteuta_nayta($palauteolio); } else { if ($parametriolio->id_kokon != Kokonaisuusolio::$kokon_ei_maaritelty) { $kokonaisuuskontrolleri->toteuta_nayta($palauteolio); // Ellei näytettävää oliota, viedään oppiaineen mukaisesti: } else { if ($parametriolio->oppiaine_kokon != Kokonaisuusolio::$MUUTTUJAA_EI_MAARITELTY) { $kokonaisuuskontrolleri->toteuta_nayta($palauteolio); } else { $kokonaisuuskontrolleri->toteuta_nayta($palauteolio); } } } } } } }
/** * * @param Parametrit $parametriolio * @return Palaute $palauteolio */ function toteuta_salasanan_vaihto($parametriolio) { $palauteolio = new Palaute(); $uussalasana = $parametriolio->uussalasana; $salavahvistus = $parametriolio->salavahvistus; $tietokantaolio = $parametriolio->tietokantaolio; $henkilo_id = $parametriolio->henkilo_id; $poistu_valtuuksista = Painikkeet::$poistu_valtuuksista; $muuta_valtuuksia_value = Painikkeet::$muuta_valtuuksia; $muuta_salasana_value = Painikkeet::$muuta_sanasana_value; $kelpoisuus = tarkista_uusi_salasana($uussalasana, $salavahvistus); if ($kelpoisuus == Yleisarvoja::$tarkistetut_tiedot_ok) { $uussalasana = md5($uussalasana); $tallennus = tallenna_salasanamuutos($parametriolio->henkilo_id, $uussalasana, $tietokantaolio); if ($tallennus == Tietokantaolio::$HAKU_ONNISTUI) { //paivita_sessiohenkilotiedot($omaid, $tietokantaolio); $ilmoitus = Tekstit::$kuningastoiminnot_salasana_vaihdettu; $sisaltoteksti = nayta_valtuuslomake($tietokantaolio, $muuta_valtuuksia_value, $muuta_salasana_value, $poistu_valtuuksista); } else { // Jos tallennus epäonnistui: $ilmoitus = "Tietojen lähetys ei onnistunut tai " . "kirjoitit vanhan salasanan!\n Yritä uudestaan!"; $sisaltoteksti = nayta_salasanalomake($henkilo_id, $ilmoitus); } } else { //Jos tiedoissa jokin virhe: $ilmoitus = $kelpoisuus; //Virheilmoitus $sisaltoteksti = nayta_salasanalomake($henkilo_id, $ilmoitus); } $palauteolio->set_ilmoitus($ilmoitus); $palauteolio->set_sisalto($sisaltoteksti); return $palauteolio; }
/** * @param Parametrit $parametriolio * @param Palaute $palauteolio * @return html Palauttaa sivun täydellisen html:n. */ function nayta_etusivu($parametriolio, $palauteolio, $nayttotapa) { $valtuudet = $parametriolio->get_valtuudet(); $ylapalkkipainikkeet = $palauteolio->get_ylapalkkipainikkeet(); $sisalto = $palauteolio->get_sisalto(); $ilmoitus = $palauteolio->get_ilmoitus(); $linkit = $palauteolio->get_linkkihtml(); $aika = Aika::anna_nyk_viikonp_suomeksi() . " " . date("d.m.Y"); $aikailmoitus = "Tänään on " . $aika . " "; // Kieli: $lang_id = $parametriolio->kieli_id; // Tulostetaan etusivun html-koodi: $otsikkoteksti = Palautustekstit::heading1($lang_id); // Vain katselu on mahdollista ilman kirjautumista: if ($valtuudet > Valtuudet::$KATSELU) { $kirjautuminen = Html::span(array(Attr::style("font-size:70%")), " " . $_SESSION['tiedot']->etunimi . " ") . Html::luo_forminput_painike(array(Attr::classs("navbar-form inline-block")), array(Attr::classs("btn btn-default btn-md"), Attr::name("toiminta"), Attr::value(Painikkeet::$KIRJAUDU_ULOS_VALUE))); } else { $kirjautuminen = Html::a(array(Attr::title(Tekstit::$linkit_tunnistautuminen)), Html::span(array(Attr::classs("glyphicon glyphicon-log-in login-painike")), ""), "../kokonaisuudet/tunnistus.php?target=submit"); } $ylapalkkipainikkeet .= $kirjautuminen; // Näyttötavan vaikutus: if ($nayttotapa === Palautusnakymat::$show_1col) { $number_of_col = 1; } else { if ($nayttotapa === Palautusnakymat::$show_2col) { $number_of_col = 2; } else { $number_of_col = 1; } } $links = $linkit; $content = $sisalto; $header_content = $otsikkoteksti; $etusivu = '<!DOCTYPE html>' . '<html>' . $this->create_head() . '<body onload="kaynnista_metodit(2)"> <div id="ilmoitus">' . $ilmoitus . '</div> ' . $this->create_nav($header_content, $ylapalkkipainikkeet) . ' ' . $this->create_sidenavs_and_content_row($links, $content, $number_of_col) . ' ' . $this->create_footer($aikailmoitus, "") . ' </body> </html>'; return $etusivu; }