/**
  * 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;
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
/**
 * 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);
 }
Example #7
0
/**
 * 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);
 }
Example #11
0
 /**
  * @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();
 }
Example #12
0
/**
 * 
 * @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&auml;hetys ei onnistunut tai " . "kirjoitit vanhan salasanan!\n                    Yrit&auml; 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;
}
Example #14
0
 /**
  * @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;
 }