示例#1
0
/**
 * Toteuttaa
 * @param Parametrit $parametriolio
 * @return Palaute $palauteolio
 */
function toteuta_nayta_kuvalomake(&$parametriolio)
{
    $palauteolio = new Palaute();
    unset($_FILES['ladattu_kuva']);
    //Poistetaan entiset.
    $ilmoitus = $parametriolio->ilmoitus_kuva;
    $sisalto = "";
    // Alla on turhaa toistoa, mutten vielä jaksanut yhdistää. HUOM! Alla
    // parametri "$parametriolio->uusi" viittaa isäntäolioon, eikä kuvaan!
    if (!$parametriolio->uusi_kuva) {
        $sisalto .= nayta_kuvalomake_muokkaus($parametriolio->kohde_kuva, $parametriolio->get_omaid(), $parametriolio->uusi, $parametriolio->ilmoitus_kuva, $parametriolio->get_tietokantaolio(), $parametriolio->id_kuva, $parametriolio->id_kokon, $parametriolio->id_teht, $parametriolio->id_ratk, $parametriolio->kuvaotsikko_kuva, $parametriolio->kuvaselitys_kuva, $parametriolio->vuosi_kuva, $parametriolio->kk_kuva, $parametriolio->paiva_kuva, $parametriolio->nayttokokoindeksi_kuva);
    } else {
        $sisalto .= nayta_kuvalomake_uusi($parametriolio->kohde_kuva, $parametriolio->get_omaid(), $parametriolio->uusi, $parametriolio->ilmoitus_kuva, $parametriolio->get_tietokantaolio(), $parametriolio->id_kuva, $parametriolio->id_kokon, $parametriolio->id_teht, $parametriolio->id_ratk, $parametriolio->kuvaotsikko_kuva, $parametriolio->kuvaselitys_kuva, $parametriolio->vuosi_kuva, $parametriolio->kk_kuva, $parametriolio->paiva_kuva, $parametriolio->nayttokokoindeksi_kuva);
    }
    $palauteolio->set_sisalto($sisalto);
    $palauteolio->set_valikkonaytto(false);
    //
    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 lomakkeen näytön sekä muokkausta että uuden luomista varten.
  * @return Palaute $palauteolio
  */
 function toteuta_nayta_kokonaisuuslomake(&$palauteolio)
 {
     $parametriolio = $this->get_parametriolio();
     $palauteolio = new Palaute();
     $lomakkeen_naytto_ok = false;
     // Näytetäänkö lomaketta vai ei.
     $ilmoitus = "";
     $sisalto = "";
     // Tulossa koosteesta? Tarkistetaan:
     $elem_id = $parametriolio->elementti_id;
     $elem = Elementti::$MUUTTUJAA_EI_MAARITELTY;
     $elem_kandi = new Elementti($elem_id, $this->get_tietokantaolio());
     if ($elem_kandi->olio_loytyi_tietokannasta) {
         $elem = $elem_kandi;
     }
     $elemryhma_id = $parametriolio->elemryhma_id;
     $elemryhma = Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY;
     $elemryhma_kandi = new Elementtiryhma($elemryhma_id, $this->get_tietokantaolio());
     if ($elemryhma_kandi->olio_loytyi_tietokannasta) {
         $elemryhma = $elemryhma_kandi;
     }
     // Tätä tarvitaan, ellei muokkauslomakkeeseen syystä tai toisesta mennä:
     $perunappi = Html::luo_forminput_painike(array(), array(Attr::name(Toimintonimet::$kokonaisuustoiminto), Attr::value(Painikkeet::$PERU_KOKON_MUUTOSTEN_TALLENNUS_VALUE)));
     /* Näytetään lomake, jonka avulla voi luoda uuden kokonaisuuden: */
     $omaid = $parametriolio->get_omaid();
     if ($parametriolio->get_uusi()) {
         $ilmoitus = "";
         $palauteolio->set_valikkonaytto(false);
         $palauteolio->set_virhekoodi(Palaute::$VIRHEKOODI_KAIKKI_OK);
         $lomakkeen_naytto_ok = true;
     } else {
         // Vanhan muokkaus: tällöin lukitus on tärkeä!
         $id_muokattava = $parametriolio->id_kokon;
         $muokattava = new Kokonaisuusolio($id_muokattava, $this->get_tietokantaolio());
         if ($muokattava->olio_loytyi_tietokannasta) {
             $lukitusarvo = $muokattava->getLukitus();
             //===================== LUKITUS ================================
             // Jos lukitus päällä, ei päästetä muokkaamaan!
             if (is_numeric($lukitusarvo) && $lukitusarvo != Kokonaisuusolio::$LUKITUS_OFF && $lukitusarvo != $omaid) {
                 $ilmoitus = Tekstit::$virheilm_kokonaisuus_lukittu_muokkaus_eiok;
                 $sisalto = Tekstit::$virheilm_kokonaisuus_lukittu_muokkaus_eiok;
                 $sisalto .= $perunappi;
             } else {
                 // Kun ei lukittu vieraalle:
                 // Lukitaan kokonaisuus, ettei kukaan muu pääse samaan aikaan
                 // muokkaamaan samaa kokonaisuutta:
                 $lukon_tila = Kokonaisuusolio::$LUKITUS_ON;
                 $lukitus = $muokattava->aseta_kokonaisuuden_lukitus($omaid, $lukon_tila);
                 /* Ilmoitus, ellei lukitus jostakin syystä onnistunut: */
                 if ($lukitus != Kokonaisuusolio::$OPERAATIO_ONNISTUI) {
                     $ilmoitus = " " . Tekstit::$virheilm_kokonaisuuden_lukitus_eiok;
                     $sisalto = " " . Tekstit::$virheilm_kokonaisuuden_lukitus_eiok . "<br/>" . $muokattava->tulosta_virheilmoitukset() . "<br/> omaid=" . $omaid . ", nyk lukon tila=" . $lukitusarvo . " ja haluttu_lukon_tila=" . $lukon_tila;
                     $sisalto .= "<br/>" . $perunappi;
                 } else {
                     $lomakkeen_naytto_ok = true;
                 }
             }
             $sisalto = $sisalto . "<br/> " . $muokattava->tulosta_kaikki_ilmoitukset() . "<br/>";
         } else {
             // Oliota ei löytynyt tietokannasta:
             $sisalto = Tekstit::$ilm_kokon_ei_loytynyt . $perunappi;
         }
     }
     //======================================================================
     if ($lomakkeen_naytto_ok) {
         $sisalto = $this->kokonaisuusnakymat->nayta_kokonaisuuslomake($parametriolio->id_kokon, $omaid, $parametriolio->uusi, $parametriolio->ilmoitus_kokon, $parametriolio->get_tietokantaolio(), $parametriolio->oppiaine_kokon, $parametriolio->otsikko_kokon, $parametriolio->tiivis_kokon, $parametriolio->selitys_kokon, $parametriolio->taso_kokon, $parametriolio->jarjestysnro_kokon, $parametriolio->laajennetun_id_kokon, $parametriolio->ylakokonaisuuden_id_kokon, $parametriolio->kieli_id, $parametriolio->nakyvyys_kokon, Toimintonimet::$kokonaisuustoiminto, $this, $parametriolio->kaavakieli, $elem, $elemryhma);
     }
     $palauteolio->set_sisalto($sisalto);
     $palauteolio->set_valikkonaytto(false);
     $palauteolio->set_virhekoodi(Palaute::$VIRHEKOODI_KAIKKI_OK);
     $palauteolio->set_ilmoitus($ilmoitus);
     $palauteolio->set_nayttotapa(Html_koodi::$sisaltoelem_levea);
     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);
 }
示例#5
0
 /**
  * Näyttää kaikkien nykyiseen kieleen (kaikki tasot ja oppiaineet) liittyvien
  * kokonaisuuksien otsikoiden, joista klikkaamalla pääsee tarkastelemaan 
  * kokonaisuutta. 
  * 
  * Näytetään julkiset ja omat yksityiset kokonaisuudet. Tulevaisuudessa
  * voi lisätä tarvittaessa mahdollisuuden antaa oikeuksia muille.
  * 
  * IDEA: toisen koosteen kloonaaminen voisi olla sallittavaa. Tällöin voi 
  * kloonista tehdä omanlaisen, mutta toisen tekemä jää ennalleen.
  * 
  * @param Palaute $palauteolio
  */
 public function toteuta_nayta_koosteet(&$palauteolio)
 {
     $koosteet = array();
     $omaid = $this->get_kayttaja()->get_id();
     $kieli = $this->get_parametriolio()->kieli_id;
     $oppiaine = $this->get_parametriolio()->oppiaine_kokon;
     $taso = $this->get_parametriolio()->taso_kokon;
     // Järjestäminen ei oikein onnistu täällä erikoisen nimenrakennuksen
     // takia (kielien, tasojen ja oppiaineiden nimet mukana, joita ei ole
     // tietokannassa).
     $hakulause = "SELECT kt.id from " . Kooste::$taulunimi . " AS kt" . " JOIN " . Henkilo::$taulunimi . " AS hlot" . " ON kt." . Kooste::$sarakenimi_henkilo_id . "=hlot.id" . " WHERE kt." . Kooste::$sarakenimi_nakyvyys . "=" . Nakyvyys::$JULKINEN . " OR kt." . Kooste::$sarakenimi_henkilo_id . "=" . $omaid . " ORDER BY hlot." . Henkilo::$sarakenimi_sukunimi . "," . " kt." . Kooste::$sarakenimi_organisaatio;
     $osumat = $this->get_tietokantaolio()->tee_omahaku_oliotaulukkopalautteella($hakulause);
     foreach ($osumat as $kooste_tk_olio) {
         $kooste = new Kooste($kooste_tk_olio->id, $this->get_tietokantaolio());
         // Jos löytyi tietokannasta, lisätään koosteisiin:
         if ($kooste->olio_loytyi_tietokannasta) {
             array_push($koosteet, $kooste);
         }
     }
     //============ luodaan koosterivit (yksi rivi - yksi kooste): ==========
     $rivit = array();
     foreach ($koosteet as $kooste) {
         if ($kooste instanceof Kooste) {
             $nayttopainike = "";
             $muokkauspainike = "";
             $poistopainike = "";
             $tekija_id = $kooste->get_arvo(Kooste::$sarakenimi_henkilo_id);
             $tekija = new Henkilo($tekija_id, $this->get_tietokantaolio());
             $org = $kooste->get_arvo(Kooste::$sarakenimi_organisaatio);
             if (!empty($org)) {
                 $org .= "_";
             }
             $nimike = $tekija->get_arvo(Henkilo::$sarakenimi_sukunimi) . "_" . $org . Kielet::hae_kielen_nimi_lyhennos($kooste->get_arvo(Kooste::$sarakenimi_kieli)) . "_" . strtoupper(Oppiaineet::hae_oppiaineen_nimi2($kooste->get_arvo(Kooste::$sarakenimi_oppiaine))) . "_" . Koulutasot::hae_koulutason_nimi($kooste->get_arvo(Kooste::$sarakenimi_taso), false) . "_" . $kooste->get_arvo(Kooste::$sarakenimi_nimi) . " ";
             //========= Näyttöpainike ====================================
             $nayttopainike = $this->koostenakymat->luo_koosteen_nayttopainike($kooste);
             //========= Muokkauspainike ja Poistopainike vain tietyille ====
             // Täällä tarkistetaan oikeudet eka:
             $user = $this->get_kayttaja();
             if ($user->olio_loytyi_tietokannasta) {
                 if ($tekija_id + 0 === $user->get_id() + 0 || $user->get_arvo(Henkilo::$sarakenimi_valtuudet) + 0 === Valtuudet::$HALLINTA) {
                     $muokkauspainike = $this->koostenakymat->luo_koosteen_muokkauspainike($kooste);
                     $poistopainike = $this->koostenakymat->luo_koosteen_poistopainike($kooste);
                 }
             }
             if ($kooste->getNakyvyys() + 0 === Nakyvyys::$JULKINEN) {
                 $on_julkinen = true;
             } else {
                 $on_julkinen = false;
             }
             $rivi = $this->koostenakymat->luo_koosterivi($nimike, $nayttopainike, $muokkauspainike, $poistopainike, $on_julkinen);
             array_push($rivit, $rivi);
             //==============================================================
         }
     }
     $tuloste = $this->koostenakymat->nayta_koosteet($rivit);
     //======================================================================
     // Luodaan paluu-painike:
     $paluupainike = $this->koostenakymat->create_button_gobacktoarticles();
     // Luodaan Uusi kooste -painike, jos käyttäjä kirjautunut ja hänellä
     // koostevaltuudet:
     $uusikoostepainike = "";
     if (Henkilo::on_kirjautunut($omaid, $this->get_tietokantaolio())) {
         if ($this->get_kayttaja()->get_arvo(Henkilo::$sarakenimi_valtuudet) >= Valtuudet::$KOOSTE_LISAYS) {
             $uusikoostepainike = $this->koostenakymat->create_button_new_summary();
         }
     }
     $palauteolio->set_sisalto($tuloste);
     $palauteolio->set_linkkihtml($paluupainike . $uusikoostepainike);
     $palauteolio->set_nayttotapa(Html_koodi::$sidenav_fixed);
     $palauteolio->set_valikkonaytto(false);
 }