示例#1
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;
}
 /**
  * Palauttaa koosteessa näytettävän kokonaisuuden tulostusta varten optimoidun
  * html-koodin.
  *
  * @param Elementti $elementti Olio, joka viittaa kokonaisuuteen, jonka
  * näkymää parhaillaan puuhaillaan.
  * @param Kokonaisuusolio $kokonaisuus
  * @param Parametrit $parametriolio
  * @param int $kohdeoikeudet Käyttäjän oikeudet tähän olioon.
  * @param <type> $selitys_auki jos true, niin selitys näytetään, muuten ei.
  * @return <type>
  */
 function luo_koostenakyma_tulostus($elementti, $kokonaisuus, $parametriolio, $selitys_auki, $kohdeoikeudet)
 {
     $omaid = $parametriolio->get_omaid();
     $tietokantaolio = $parametriolio->get_tietokantaolio();
     $kayttajan_valtuudet = $parametriolio->get_valtuudet();
     $palaute = "";
     $selitys = "";
     $nayta_selitys_nappi = "";
     /* Näyttää selityksen. */
     $siirra_ylemmaksi_nappi = "";
     $siirra_alemmaksi_nappi = "";
     // Alla jostakin syystä !empty($kokonaisuus->getSelitys()) ei toiminut!
     if ($kokonaisuus->getSelitys() != "") {
         $onsubmit_parametrit = array($kokonaisuus->get_id());
         /* Tämän avulla löytyvät */
         $form_maaritteet = array('method' => 'post', 'class' => 'rinnakkain', 'action' => "{$_SERVER['PHP_SELF']}?" . "id_kokon=" . $kokonaisuus->get_id());
         if ($selitys_auki) {
             $title = Painikkeet::$SULJE_SELITYS_title;
             $onsubmit_funktionimi = "sulje_selitys";
             $input_maaritteet = array('name' => Toimintonimet::$kokonaisuustoiminto, 'value' => Painikkeet::$SULJE_SELITYS_value, 'title' => $title);
         } else {
             $title = Painikkeet::$NAYTA_SELITYS_title;
             $onsubmit_funktionimi = "nayta_selitys";
             $input_maaritteet = array('name' => Toimintonimet::$kokonaisuustoiminto, 'value' => Painikkeet::$NAYTA_SELITYS_value, 'title' => $title);
         }
         $nayta_selitys_nappi = Html::luo_submit_painike_onsubmit_toiminnolla($onsubmit_funktionimi, $onsubmit_parametrit, $form_maaritteet, $input_maaritteet);
     }
     if ($kohdeoikeudet >= Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA) {
         // Järjestyksen muutosnapit (jos mielekästä):
         /*$siirra_ylemmaksi_nappi = "";
                     if($kokonaisuus->getEdellisenId_taso() != Kokonaisuusolio::$kokon_edellista_ei_ole){
                         $onsubmit_funktionimi = ""; // Tulevaa varten.
                         $onsubmit_parametrit = "";  // Ei ole vielä.
                         $form_maaritteet =
                             array("class" => "rinnakkain",
                                 "method"=>"post",
                                "action"=>"{$_SERVER['PHP_SELF']}?id_kokon=".$kokonaisuus->get_id().
                                             "&oppiaine_kokon=".$kokonaisuus->getOppiaine().
                                             "&kieli_id=".$kokonaisuus->getKieli().
                                             "&ed_id_kokon=".$kokonaisuus->getEdellisenId_taso().
                                             "&siirto_ylos=true");
                         $input_maaritteet =
                             array("value" => Painikkeet::$SIIRRA_YLEMMAKSI_KOKON_value,
                                 "title" => Painikkeet::$SIIRRA_YLEMMAKSI_KOKON_title,
                                 "name"=>Toimintonimet::$kokonaisuustoiminto);
         
                         try{
                             $siirra_ylemmaksi_nappi =
                             Html::luo_submit_painike_onsubmit_toiminnolla(
                                                         $onsubmit_funktionimi,
                                                         $onsubmit_parametrit,
                                                         $form_maaritteet,
                                                         $input_maaritteet);
                         }
                         catch (Exception $poikkeus){
                             $siirra_ylemmaksi_nappi = $poikkeus->getMessage();
                         }
                     }
         
         
                     // Alaspäin siirto:
                     $siirra_alemmaksi_nappi = "";
                     if($kokonaisuus->getSeuraavanId_taso() != Kokonaisuusolio::$kokon_seuraavaa_ei_ole){
                         $onsubmit_funktionimi = ""; // Tulevaa varten.
                         $onsubmit_parametrit = "";  // Ei ole vielä.
                         $form_maaritteet =
                             array("class" => "rinnakkain",
                                 "method"=>"post",
                                "action"=>"{$_SERVER['PHP_SELF']}?id_kokon=".$kokonaisuus->get_id().
                                             "&oppiaine_kokon=".$kokonaisuus->getOppiaine().
                                             "&kieli_id=".$kokonaisuus->getKieli().
                                             "&seur_id_kokon=".$kokonaisuus->getSeuraavanId_taso().
                                             "&siirto_ylos=0");
                         $input_maaritteet =
                             array("value" => Painikkeet::$SIIRRA_ALEMMAKSI_KOKON_value,
                                 "title" => Painikkeet::$SIIRRA_ALEMMAKSI_KOKON_title,
                                 "name"=>Toimintonimet::$kokonaisuustoiminto,);
         
                         try{
                             $siirra_alemmaksi_nappi =
                             Html::luo_submit_painike_onsubmit_toiminnolla(
                                                         $onsubmit_funktionimi,
                                                         $onsubmit_parametrit,
                                                         $form_maaritteet,
                                                         $input_maaritteet);
                         }
                         catch (Exception $poikkeus){
                             $siirra_alemmaksi_nappi = $poikkeus->getMessage();
                         }
                     }*/
     }
     // Tehtävien lisääminen sopivasti oikeutetuille:
     if ($kayttajan_valtuudet >= Valtuudet::$TEHTAVA_LISAYS) {
         /* Uuden tehtävän luontipainike *
                     $onsubmit_funktionimi= "nayta_tehtavalomake";
                     $onsubmit_parametrit = array($kokonaisuus->get_id());    /* Tarpeen?*
         
                     $form_maaritteet = array('method'=>'post',
                                             'class'=>'rinnakkain',
                                               'action'=>"{$_SERVER['PHP_SELF']}?".
                                               "id_kokon=".$kokonaisuus->get_id().
                                               "&uusi=true");
         
                     $input_maaritteet = array('name'=>Toimintonimet::$tehtavatoiminto,
                                         'value'=>Painikkeet::$tehtava_uusi_value);
         
                     try{
                         $uusi_teht_nappi =
                             Html::luo_submit_painike_onsubmit_toiminnolla(
                                                             $onsubmit_funktionimi,
                                                             $onsubmit_parametrit,
                                                             $form_maaritteet,
                                                             $input_maaritteet);
                     }
                     catch (Exception $poikkeus){
                         $palaute .= "Virhe tehtavanapin luomisessa: ".
                                         $poikkeus->getMessage();
                     }*/
     }
     // TEhtävien lisäyspainikekoodi loppuu.
     /* haetaan mahdolliset kuvat */
     $kuvahtml_tiivis = $kokonaisuus->hae_kuvat(Kuvat::$kohde_kokonaisuus_tiivistelma, $omaid, $tietokantaolio, false);
     /* Kaikki kokonaisuudet ovat samanlaisia tasosta riippumatta */
     $class_arvo = "elementti_kokon";
     $otsikko = "<div class = " . $class_arvo . " id='elem" . $elementti->get_id() . "'>" . "<h3>" . $kokonaisuus->getOtsikkomerkinta() . $kokonaisuus->getOtsikko() . " " . $siirra_ylemmaksi_nappi . $siirra_alemmaksi_nappi . "</h3>";
     /* Haetaan vielä tarvittaessa selitys: */
     if ($selitys_auki && $kokonaisuus->getSelitys() != "") {
         /* haetaan mahdolliset kuvat */
         $kuvahtml_selitys = $kokonaisuus->hae_kuvat(Kuvat::$kohde_kokonaisuus_selitys, $omaid, $tietokantaolio, false);
         $selitysotsikko = "<div class='selitysotsikko'>" . Tekstit::$otsikko_selitys . "</div>";
         /* Muotoillaan selitys: */
         $selitys_muokattu = muotoile_merkit($kokonaisuus->getSelitys());
         // Pikkukaavat ensin, jotta kursiivin poisto onnistuu ennen
         // sulkujen käsittelyä.
         $selitys_muokattu = Kaavaeditori::muotoile_pikkukaavat($selitys_muokattu);
         // Sitten normaalikaavat:
         $selitys_muokattu = Kaavaeditori::muotoile_kaavat($selitys_muokattu);
         $selitys = $selitysotsikko . $kuvahtml_selitys . $selitys_muokattu;
     }
     /* Muotoillaan tiivistelmän merkit ja kaavat: */
     $tiivistelma = muotoile_merkit($kokonaisuus->getTiivis());
     $tiivistelma = Kaavaeditori::muotoile_pikkukaavat($tiivistelma);
     $tiivistelma = Kaavaeditori::muotoile_kaavat($tiivistelma);
     $tiivistelma = $kuvahtml_tiivis . $tiivistelma . "<br />";
     /* Ja sitten vain palaset pakettiin: HUOM! Täällä katsotaan, ettei
      * piilotetun sisältö näy. 
      */
     $piilotushuomautus = "<div class='piilotushuomautus'>" . Tekstit::$ilm_kokon_piilotettu_paitsi_ots . "</div>";
     $yksityisilmoitus = "<div class='yksityisilmoitus'>" . Tekstit::$ilm_kokon_yksityinen . "</div>";
     $vainkoosteilmoitus = "<div class='koosteilmoitus'>" . Tekstit::$ilm_kokon_vain_kooste . "</div>";
     /**
      * Tänne mennään, kun kokonaisuus näytetään,
      * oli se sitten piilossa tahi ei.
      */
     if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$VAIN_KOOSTEESSA || $kohdeoikeudet >= Lisavaltuudet::$SAA_NAHDA_EI_MUOKATA_EI_POISTAA) {
         $normaali_kokonaisuus = $otsikko;
         // Jos kokonaisuus on muilta piilossa, lisätään viesti:
         if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$VAIN_OTSIKKO) {
             $normaali_kokonaisuus .= $piilotushuomautus . $tiivistelma;
         } else {
             if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$YKSITYINEN) {
                 $normaali_kokonaisuus .= $tiivistelma;
             } else {
                 if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$VAIN_KOOSTEESSA) {
                     $normaali_kokonaisuus .= $tiivistelma;
                 } else {
                     $normaali_kokonaisuus .= $tiivistelma;
                 }
             }
         }
         /* $normaali_kokonaisuus .=
            " ".$nayta_selitys_nappi;*/
         /* Lisätään vielä div selitystä varten: */
         if ($selitys_auki && $kokonaisuus->getSelitys() != "") {
             $normaali_kokonaisuus .= "<div class='selitys' id='selitys" . $kokonaisuus->get_id() . "'>" . $selitys . "</div>";
         }
         $normaali_kokonaisuus .= "</div>";
         /* Kokonaisuus loppuu. */
         $palaute = $normaali_kokonaisuus;
     } else {
         if ($kokonaisuus->getNakyvyys() + 0 === Nakyvyys::$VAIN_OTSIKKO) {
             $class_arvo = "elementti_kokon";
             $otsikko = "<div class = " . $class_arvo . " id='elem" . $elementti->get_id() . "'>" . "<h3>" . $kokonaisuus->getOtsikko() . " " . $siirra_ylemmaksi_nappi . $siirra_alemmaksi_nappi . "</h3>";
             $palaute = $otsikko;
             $palaute .= $piilotushuomautus;
             $palaute .= "</div>";
             /* Kokonaisuus loppuu. */
         } else {
             // Kun jonkun toisen yksityinen / vain koosteessa, eikä hallintavaltuuksia:
             $palaute = "";
         }
     }
     return $palaute;
 }
/**
 * Toteuttaa :
 * @param Parametrit $parametriolio
 * @return Palaute $palauteolio
 */
function toteuta_nayta_valtuustaulukko($parametriolio)
{
    $palauteolio = new Palaute();
    $ilmoitus = Tekstit::$ilm_nayta_valtuudet;
    $sisalto = nayta_valtuuslomake($parametriolio->get_tietokantaolio());
    $palauteolio->set_sisalto($sisalto);
    $palauteolio->set_ilmoitus($ilmoitus);
    return $palauteolio;
}
/**
 * Palauttaa havaintolomakkeen html-koodina.
 *
 * @param <type> $tallennuskommentti kertoo mikä laji tallennettiin viimeksi.
 * @param bool $onKopio auttaa siihen, että luotuun havaintoon osataan palata
 * sekä kopioinnin että tavallisen uuden luonnin yhteydessä.
 * @param Parametrit $parametriolio
 * @return <type>
 */
function nayta_havaintolomake(&$parametriolio)
{
    $ylaluokka_id_lj = $parametriolio->ylaluokka_id_lj;
    $id_hav = $parametriolio->id_hav;
    // Tarvitaan muokkauksessa!
    $lajiluokka_id_hav = $parametriolio->lajiluokka_id_hav;
    $paiva_hav = $parametriolio->paiva_hav;
    $kk_hav = $parametriolio->kk_hav;
    $vuosi_hav = $parametriolio->vuosi_hav;
    $paikka_hav = $parametriolio->paikka_hav;
    $kommentti_hav = $parametriolio->kommentti_hav;
    $kieli_kuv = $parametriolio->kieli_kuv;
    $uusi = $parametriolio->get_uusi_hav();
    $tietokantaolio = $parametriolio->get_tietokantaolio();
    // $tallennuskommentti kertoo mikä laji tallennettiin viimeksi.
    $tallennuskommentti = $parametriolio->get_tallennuspalaute();
    $onKopio = $parametriolio->get_on_kopio();
    $submitnappi = "";
    $poistunappi = "";
    $uusi_laji_nappi = "";
    // painike, josta saadaan näkyviin monta lajia kerralla:
    $maar_array = array(Maarite::type("submit"), Maarite::value(Bongauspainikkeet::$NAYTA_MONEN_HAVAINNON_VALINTA_VALUE), Maarite::title(Bongauspainikkeet::$NAYTA_MONEN_HAVAINNON_VALINTA_TITLE), Maarite::name(Bongaustoimintonimet::$havaintotoiminto));
    $monta_lajia_kerralla = Html::luo_input($maar_array);
    $type = "submit";
    $class = "rinnakkain";
    $id = "";
    $onclick = "";
    $name = Bongaustoimintonimet::$havaintotoiminto;
    $value = Bongauspainikkeet::$PERUMINEN_HAVAINTO_VALUE;
    $poistunappi = Html::luo_painike_ilman_formia($type, $class, $id, $name, $value, $onclick);
    $type = "submit";
    $class = "rinnakkain";
    $id = "";
    $onclick = "";
    $name = Bongaustoimintonimet::$lajiluokkatoiminto;
    $value = Bongauspainikkeet::$UUSI_LAJILUOKKA_VALUE;
    $uusi_laji_nappi = Html::luo_painike_ilman_formia($type, $class, $id, $name, $value, $onclick);
    if ($uusi) {
        $suurin_havaintoid = hae_suurin_id($tietokantaolio, "bhavainnot");
        // Luotavan id on todennäköisesti yhtä suurempi kuin äsken laskettu:
        $uuden_id = $suurin_havaintoid + 1;
        // Otetaan arvo ylös:
        $parametriolio->set_naytettavan_id_hav($uuden_id);
        $url_jatke_seur = "?id_hav=" . $uuden_id . "#havainto" . $uuden_id;
        if ($suurin_havaintoid == -1) {
            $url_jatke_seur = "";
        }
        $url_id = $url_jatke_seur;
        //
        $havaintolomakeohje = Bongaustekstit::$havaintolomake_uusi_ohje;
        // Painike
        $type = "submit";
        $class = "rinnakkain";
        $id = "";
        $onclick = "";
        $name = Bongaustoimintonimet::$havaintotoiminto;
        $value = Bongauspainikkeet::$TALLENNA_UUSI_HAVAINTO_VALUE;
        $submitnappi = Html::luo_painike_ilman_formia($type, $class, $id, $name, $value, $onclick);
    } else {
        $parametriolio->set_naytettavan_id_hav($id_hav);
        $url_jatke_nyk = "#havainto" . $id_hav;
        $url_id = "?id_hav=" . $id_hav . $url_jatke_nyk;
        // Näin löytyy päivitettävä havainto!
        $havaintolomakeohje = Bongaustekstit::$havaintolomakemuokkaus_ohje;
        // Painike
        $type = "submit";
        $class = "rinnakkain";
        $id = "";
        $onclick = "";
        $name = Bongaustoimintonimet::$havaintotoiminto;
        $value = Bongauspainikkeet::$TALLENNA_MUOKKAUS_HAVAINTO_VALUE;
        $submitnappi = Html::luo_painike_ilman_formia($type, $class, $id, $name, $value, $onclick);
    }
    // Lajivalikko:
    // Jos yläluokkaa ei ola määritelty (=-1), etsitään sen luokan id, jonka
    // suomenkielisen kuvauksen nimi on "Linnut":
    if ($ylaluokka_id_lj == -1) {
        $taulunimi = "bkuvaukset";
        $sarakenimi = "nimi";
        $hakuarvo = "Linnut";
        $kuvausolio = $tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo);
        if ($kuvausolio != Bongausasetuksia::$tietokantahaku_ei_loytynyt) {
            $ylaluokka_id_lj = $kuvausolio->lajiluokka_id;
        }
    }
    $otsikko = "";
    $lajivalikko = nayta_lajivalikko($lajiluokka_id_hav, $tietokantaolio, $ylaluokka_id_lj, $kieli_kuv, $otsikko);
    /*************************************************************************/
    $maavalikkohtml = "";
    try {
        $arvot = Maat::hae_maa_arvot();
        $nimet = Maat::hae_maakuvaukset();
        $name_arvo = Maat::$tietokannan_sarakenimi;
        $oletusvalinta_arvo = $parametriolio->maa_hav;
        $otsikko = Maat::$valikko_otsikko;
        $onchange_metodinimi = "kirjoita_maa";
        $onchange_metodiparametrit_array = array();
        $maavalikkohtml .= Html::luo_pudotusvalikko_onChange($arvot, $nimet, $name_arvo, $oletusvalinta_arvo, $otsikko, $onchange_metodinimi, $onchange_metodiparametrit_array);
    } catch (Exception $poikkeus) {
        $maavalikkohtml = "Virhe maavalikossa! (" . $poikkeus->getMessage() . ")";
    }
    /*************************************************************************/
    $naytettava_valinta = $parametriolio->varmuus_hav;
    $varmuusvalikko = Varmuus::muodosta_valikkohtml(false, $naytettava_valinta);
    // kommentin muotoilu:
    if (!empty($tallennuskommentti)) {
        $tallennuskommentti = $tallennuskommentti . "<br/>";
    }
    $mj = "<form align='center' method='post'\n                    action='index.php" . $url_id . "'>" . "<table summary='uudet_tiedot' id=" . Bongausasetuksia::$havaintolomakkeen_id . ">" . "<tr><td colspan=2><b><span id=" . Bongausasetuksia::$havaintolomake_tallennustiedote_id . ">\n            " . $tallennuskommentti . "</span>" . $havaintolomakeohje . "</b></td></tr>" . "<tr>\n        <td align='left' colspan=2><button id='b1' type='button'\n        onclick='nayta_ed_vko()'>\n            " . Bongauspainikkeet::$ed_vko . "</button>\n            <button id='b2'type='button' onclick='nayta_ed()'>\n            " . Bongauspainikkeet::$ed_paiva . "</button>\n            <button id='b3'type='button'\n            onclick='nayta_seur()'>\n            " . Bongauspainikkeet::$seur_paiva . "\n            </button>\n            <button id='b4' type='button' onclick='nayta_seur_vko()'>\n            " . Bongauspainikkeet::$seur_vko . "</button></td>" . "<tr>" . "<td align='left'>*" . Bongaustekstit::$paiva . ": </td><td align='left'>\n        <input id='paiva' type='text'\n        name='paiva_hav' value='{$paiva_hav}' size='4' maxlength='2'\n        onchange='nayta_pvm()' onkeyup='nayta_pvm()' />\n        *" . Bongaustekstit::$kk . ": <input id='kk' type='text' " . "name='kk_hav' value='{$kk_hav}' size='4' maxlength='2'\n        onchange='nayta_pvm()' onkeyup='nayta_pvm()'/>\n        *" . Bongaustekstit::$vuosi . ": <input id='vuosi' type='text' " . "name='vuosi_hav' value='{$vuosi_hav}' size='4' maxlength='4'\n        onchange='nayta_pvm()' onkeyup='nayta_pvm()'/>\n        <span id='pvm_naytto'></span></td>" . "</tr>" . "<tr>" . Html::luo_tablerivi(Html::luo_tablesolu("", "") . Html::luo_tablesolu($monta_lajia_kerralla, array(Maarite::align("left"))), "") . "<td align='left'>*" . Bongaustekstit::$laji . ": </td><td align='left'\n            id= " . Bongausasetuksia::$havaintolomake_lajivalintarivi_id . ">\n        <span id = " . Bongausasetuksia::$havaintolomake_lajivalikko_id . ">" . $lajivalikko . "</span><span id = " . Bongausasetuksia::$havaintolomake_lajivalikkopainike_id . ">" . $uusi_laji_nappi . "</span>" . "<span id = " . Bongausasetuksia::$havaintolomake_lajivalintaohje_id . ">(" . Bongaustekstit::$havaintolomake_laji_puuttuu_ohje . ")</span></td>\n        </tr>" . "<tr><td align='left'>*" . Bongaustekstit::$paikka . ": </td><td align='left'>\n        <input type='text' size='43' name='paikka_hav' value='{$paikka_hav}'/>\n        " . $maavalikkohtml . "</td></tr>" . "<tr><td>" . Varmuus::$valikko_otsikko . ":</td><td align='left'>" . $varmuusvalikko . "</td></tr>" . "<tr><td align='left'>" . Bongaustekstit::$kommentti . ":</td>\n        <td align='left'><textarea cols='50'\n        rows='6'name='kommentti_hav'>{$kommentti_hav}" . "</textarea></td></tr>" . "<tr><td></td><td align='left'>" . $submitnappi . $poistunappi . "</td></tr>" . "</table>" . "</form>";
    // Palautetaan lomake ja näytetään js-päivämäärä;.
    return $mj . "<script type='text/javascript'>\n                            nayta_pvm();\n                            </script>";
}
 /**
  * Palauttaa html-linkkejä, jotka vievät kyseiseen tehtävään. Nämä
  * on tarkoitus sijoittaa tehtäväsivulle, jotta tehtävien selaaminen helpottuu.
  * 
  * @param Parametrit $parametriolio
  * @return <type>
  */
 function hae_tehtavalinkit($parametriolio)
 {
     $tehtavalinkki_html = "";
     $id_kokon = $parametriolio->id_kokon;
     /* Haetaan tehtävät: */
     $tietokantaolio = $parametriolio->get_tietokantaolio();
     $tehtavat = $this->hae_tehtavat();
     if (empty($tehtavat)) {
         // Jos muutat tätä, ota huomioon myös vastaanottava metodi.
         $tehtavalinkki_html = Tekstit::$tehtava_ilm_ei_loytynyt;
     } else {
         $laskuri = 1;
         // Kertoo tehtävän juoksevan numeron (juokseva nro).
         $pituus = 25;
         // Linkin suurin pituus (ylimenevä osa katkaistaan)
         foreach ($tehtavat as $tehtava) {
             /*$tehtavalinkki_html .= "<a href='index.php".
                   "?id_kokon=".$id_kokon.
                   "&kieli_id=".$parametriolio->kieli_id.
                   "&taso_kokon=".$parametriolio->taso_kokon.
                   "&oppiaine_kokon=".$parametriolio->oppiaine_kokon.
                   "&id_teht=".$tehtava->getId().
                   "&".Oliotyyppi::$naytettava_name."=".
                   Palaute::$NAYTETTAVA_OLIOTYYPPI_TEHTAVA.
                   "#tehtava".$tehtava->getId()."' ".
               "title='".$tehtava->getOtsikko()."'>".
               $laskuri.". ".
                   Yleismetodit::leikkaa_merkkijono($tehtava->getOtsikko(), $pituus).
               "</a>";*/
             $tehtavalinkki_html .= "<a href='index.php" . "?id_teht=" . $tehtava->getId() . "#tehtava" . $tehtava->getId() . "' " . "title='" . $tehtava->getOtsikko() . "'>" . $laskuri . ". " . Yleismetodit::leikkaa_merkkijono($tehtava->getOtsikko(), $pituus) . "</a>";
             $laskuri++;
         }
     }
     return $tehtavalinkki_html;
 }
示例#6
0
 /**
  * @param string $id_raaka Id value of the element (like teht_43)
  * @param Parametrit $parametriolio
  * @param Tehtavanakymat $tehtavanakymat
  * @param Kokonaisuusnakymat $kokonnakymat
  */
 function show_element_preview($id_raaka, $parametriolio, $tehtavanakymat, $kokonnakymat)
 {
     $tietokantaolio = $parametriolio->get_tietokantaolio();
     $omaid = $parametriolio->get_omaid();
     // Let's find out the type of element:
     $type = Elementti::irrota_elem_olion_tyyppi($id_raaka);
     // Let's find out the id of the original object:
     $id = Elementti::irrota_elem_olion_id($id_raaka);
     if ($type === Oliotyyppi::$TEHTAVA) {
         // Luodaan uusi Tehtäväolio tietojen perusteella:
         $teht = new Tehtava($id, $tietokantaolio);
         $html = $tehtavanakymat->tulosta_esikatselu($omaid, $teht);
     } else {
         if ($type === Oliotyyppi::$KOKONAISUUS) {
             $kokon = new Kokonaisuusolio($id, $tietokantaolio);
             $html = $kokonnakymat->tulosta_esikatselu($kokon, $parametriolio);
         } else {
             $html = "Unknown type=" . $type . " and id=" . $id;
         }
     }
     //echo $output = str_replace(array("\r\n", "\r", "\n"), "", $html);
     return $html;
 }
 /**
  * Näyttää linkit liittyen kokonaisuuksiin. Jos kokonaisuusvektori on tyhjä
  * tai ei ole määritelty, palautetaan tyhjä merkkijono. 
  *
  * Kuhunkin linkkiin liittyy session-muuttuja, joka määrittelee, näytetäänkö
  * linkin jälkeläiset. Muuttujan nimi on kokonaisuuden id ja arvona "auki" tai
  * "kiinni". Huomaa, että arvo liittyy nimenomaan jälkeläisten näyttämiseen,
  * ei kyseisen kokonaisuuden näyttämiseen! 
  *
  *
  * @param Parametrit $parametriolio
  * @param bool $nayta_kiintolinkit
  * @return <type>
  */
 function hae_kokonaisuuslinkit($parametriolio, $nayta_kiintolinkit)
 {
     $kokonaisuudet = $parametriolio->kokonaisuusoliot;
     $id_kokon = $parametriolio->id_kokon;
     // Klikattu / aukaistava kokonaisuus
     $linkki_html = "";
     $tietokantaolio = $parametriolio->get_tietokantaolio();
     $on_kirjautunut = Henkilo::on_kirjautunut($parametriolio->get_omaid(), $tietokantaolio);
     if ($nayta_kiintolinkit) {
         //$linkki_html .=
         //     Html::luo_a_linkto('../index.php',
         //                         Tekstit::$linkki_kokon_etusivu,
         //                         array());
     }
     // Jos tullaan sivun ulkopuolisesta linkistä (siis urlin kautta), pitää
     // aukaista kaikki kokonaisuudet, jotka ovat näytettävän kokonaisuuden
     // yläpuolella, jotta koko linkkipuu on näkyvissä näytettävään kokonai-
     // suuteen asti.
     if ($parametriolio->naytto_urlin_mukaan()) {
         $id_avattava = $id_kokon;
         $kokon_avattava = new Kokonaisuusolio($id_avattava, $tietokantaolio);
         $ylakokon_id_avattava = $kokon_avattava->getYlakokonaisuuden_id();
         do {
             if ($kokon_avattava instanceof Kokonaisuusolio) {
                 $muuttujanimi = Parametrit::linkkisessiomuuttujan_nimi($kokon_avattava->get_id());
                 $_SESSION[$muuttujanimi] = Kokonaisuusolio::$LINKKI_AUKI;
                 // Haetaan yläkokonaisuus:
                 $kokon_avattava = new Kokonaisuusolio($ylakokon_id_avattava, $tietokantaolio);
                 // Ja uusi yläkokon_id
                 $ylakokon_id_avattava = $kokon_avattava->getYlakokonaisuuden_id();
             }
         } while ($kokon_avattava->olio_loytyi_tietokannasta);
     }
     if (isset($kokonaisuudet) && is_array($kokonaisuudet)) {
         if (!empty($kokonaisuudet)) {
             $linkki_html .= "<table>";
             $rajataso = 0;
             $piilotus_kaynnissa = false;
             // Näytetäänkö linkit vai ei.
             foreach ($kokonaisuudet as $kokon) {
                 if ($kokon instanceof Kokonaisuusolio) {
                     $taso = $kokon->getOtsikkotaso();
                     if ($taso > 8) {
                         $taso = 8;
                         /* Enempää tasoja ei ole tyyleissä */
                     }
                     // Tarkistetaan tässä, ollaanko tultu pois piilotettavien
                     // alilinkkien joukosta
                     if ($piilotus_kaynnissa && $kokon->getOtsikkotaso() <= $rajataso) {
                         $piilotus_kaynnissa = false;
                     }
                     // Muotoillaan linkkielementin alkutagi=====================
                     // Linkkielementin alkutagin alku:
                     $linkki_id = "linkki" . $kokon->get_id();
                     $rivin_alku = "<tr class='linkkielementti'" . "id='" . $linkki_id . "'";
                     // Session-muuttuja sanelee näyttämisen.
                     // HUOM! Linkki_kiinni/linkki_auki vaikuttaa lapsilinkkeihin, ei
                     // varsinaisen linkin näkymiseen! Tämän avulla muistetaan
                     // puurakenne.
                     // Idea: kokonaisuuslista käydään läpi. Jokaisen kohdalla
                     // tarkistetaan onko auki. Jos kiinni, käydään läpi alilinkit
                     // ja poistetaan näkyvistä. Samalla tarkistetaan sessio-
                     // muuttuja ja asetetaan ei-määritellyt kiinni-oleviksi,
                     // jolloin linkistö on avatessa mahdollisimman kiinni.
                     $linkkielem_style = " ";
                     $muuttujanimi = Parametrit::linkkisessiomuuttujan_nimi($kokon->get_id());
                     // Eka kerralla ja ryhmän vaihdon yhteydessä suljetaan
                     // kaikki linkit. Poikkeus: kun tullaan linkin kautta,
                     // on järkevää avata kyseisen kokonaisuuden aliotsikot.
                     // Kokonaisuusryhmän_vaihto on oletusarvoisesti false.
                     if (!isset($_SESSION[$muuttujanimi]) || $parametriolio->kokonaisuusryhman_vaihto) {
                         $_SESSION[$muuttujanimi] = Kokonaisuusolio::$LINKKI_KIINNI;
                         // Käsitellään tässä tulo linkin kautta, jolloin
                         // määritellään sessioarvo näytettävän alikoko-
                         // suudelle:
                         if ($parametriolio->naytto_urlin_mukaan() && $id_kokon == $kokon->getYlakokonaisuuden_id()) {
                             // Linkki kiinni -> näkyy vain yksi taso alemma.
                             // (tämä ei kyllä sitä rajoita, mutta asettaa
                             // plussan oikein)
                             $_SESSION[$muuttujanimi] = Kokonaisuusolio::$LINKKI_KIINNI;
                         } else {
                             // Eka taso näytetään aina, mutta muita ei.
                             if ($taso > 1) {
                                 $linkkielem_style = " style='display:none;'";
                             }
                         }
                     } else {
                         if ($piilotus_kaynnissa) {
                             $linkkielem_style = " style='display:none;'";
                         } else {
                             if (!$piilotus_kaynnissa && $kokon->on_naytettavia_lapsia($parametriolio->get_omaid()) && $_SESSION[$muuttujanimi] == Kokonaisuusolio::$LINKKI_KIINNI) {
                                 $piilotus_kaynnissa = true;
                                 // Rajataso muutetaan tämän tasoksi, jolloin
                                 // tiedetään, milloin tullaan ylemmäksi taas.
                                 $rajataso = $kokon->getOtsikkotaso();
                             } else {
                                 //Ellei lapsia tai linkki auki -> näytetään seuraava
                                 // Ei lisätä tyyliä
                             }
                         }
                     }
                     // Linkkielementin alkutagin loppuosa:
                     $rivin_alku .= $linkkielem_style . ">";
                     //==========================================================
                     // Plus lisätään, jos kokonaisuudella on jälkeläisiä ja
                     // linkki on kiinni.
                     if ($kokon->on_naytettavia_lapsia($parametriolio->get_omaid()) && $_SESSION[$muuttujanimi] == Kokonaisuusolio::$LINKKI_KIINNI) {
                         $plus = "+ ";
                     } else {
                         if ($kokon->on_naytettavia_lapsia($parametriolio->get_omaid()) && $_SESSION[$muuttujanimi] == Kokonaisuusolio::$LINKKI_AUKI) {
                             $plus = "− ";
                         } else {
                             $plus = "";
                         }
                     }
                     $risuaita_id = "";
                     if ($parametriolio->get_kokonaisuuksien_nayttotapa() == Kokonaisuuksien_nayttotavat::$kokonaisuudet_nayta_kaikki_arvo) {
                         $risuaita_id = "#" . $kokon->get_id();
                     }
                     // Jos näytetään pelkästään tämä kokonaisuus, merkitään
                     // se linkeissä eri ulkonäöllä, ellei ole kyseessä
                     // kokonaisuusryhmän vaihto:
                     if ($parametriolio->get_kokonaisuuksien_nayttotapa() == Kokonaisuuksien_nayttotavat::$kokonaisuudet_nayta_yksi_kerrallaan_arvo && !$parametriolio->kokonaisuusryhman_vaihto && $kokon->get_id() == $id_kokon) {
                         $valitun_id = "id='valittu_kokon'";
                     } else {
                         $valitun_id = "";
                     }
                     $etumerkin_html = "<td class='linkin_etumerkki'" . "id='etumerkki" . $kokon->get_id() . "'" . "onmouseover='hiiri_paalla(this)'" . "onmouseout='hiiri_pois_paalta(this)'" . "onclick='vaihda_etumerkki(this.id," . $kokon->get_id() . ",\"kokonaisuudet\")'>{$plus}</td>";
                     /* Otsikon klikkaaminen avaa aliotsikot (jos on). */
                     if (!empty($plus)) {
                         $onclick = " onclick='aukaise_aliotsikot(" . $kokon->get_id() . ")'";
                     } else {
                         $onclick = "";
                     }
                     $linkin_alku = "<td class='linkkisolu'><a class='taso" . $taso . "' " . $valitun_id . $onclick . " href=index.php" . "?id_kokon=" . $kokon->get_id() . $risuaita_id . ">";
                     $linkin_loppu = "</a></td>";
                     $rivin_loppu = "</tr>";
                     // Linkkielementin lopputagi
                     // Otsikkonumeroita ei näytetä tietyn tason jälkeen:
                     if ($taso > Kokonaisuusolio::$max_otsikkonron_nayttotaso) {
                         $otsikkonro = "";
                     } else {
                         $otsikkonro = $kokon->getOtsikkomerkinta() . " ";
                     }
                     // Julkiset näytetään ilman mukinoita:
                     if ($kokon->getNakyvyys() + 0 === Nakyvyys::$JULKINEN) {
                         $linkki_html .= $rivin_alku;
                         $linkki_html .= $etumerkin_html . $linkin_alku;
                         $linkki_html .= $otsikkonro;
                         $linkki_html .= $kokon->getOtsikko();
                         $linkki_html .= $linkin_loppu;
                         $linkki_html .= $rivin_loppu;
                     } else {
                         if ($kokon->getNakyvyys() + 0 === Nakyvyys::$VAIN_OTSIKKO) {
                             $linkki_html .= $rivin_alku;
                             $linkki_html .= $etumerkin_html . $linkin_alku;
                             $linkki_html .= "<span class='piilotettu'>";
                             $linkki_html .= $otsikkonro;
                             $linkki_html .= $kokon->getOtsikko();
                             $linkki_html .= "</span>";
                             $linkki_html .= $linkin_loppu;
                             $linkki_html .= $rivin_loppu;
                         } else {
                             if ($on_kirjautunut) {
                                 // Jos näkyvyys ei ole julkinen, tarkistetaan olion
                                 // kohdeoikeudet. Tätä ei tehdä julkisille, jottei
                                 // hidasta menoa liikaa:
                                 /*======================== käyttäjän oikeudet ====*/
                                 $kohdeoikeudet = Henkilo::hae_kayttajan_kohdeoikeudet($kokon->getHenkiloId(), $this->get_parametriolio()->get_omaid(), Oliotyyppi::$KOKONAISUUS, $kokon->get_id(), $tietokantaolio);
                                 /*===============================================*/
                                 // Jos on vähintään muokkausoikeudet, näytetään
                                 // linkki sopivasti muotoiltuna:
                                 if ($kohdeoikeudet >= Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA) {
                                     if ($kokon->getNakyvyys() + 0 === Nakyvyys::$YKSITYINEN) {
                                         $class_arvo = "yksityinen";
                                     } else {
                                         if ($kokon->getNakyvyys() + 0 === Nakyvyys::$VAIN_KOOSTEESSA) {
                                             $class_arvo = "vain_koosteessa";
                                         } else {
                                             $class_arvo = "tuntematon";
                                         }
                                     }
                                     $linkki_html .= $rivin_alku;
                                     $linkki_html .= $etumerkin_html . $linkin_alku;
                                     $linkki_html .= "<span class='" . $class_arvo . "'>";
                                     $linkki_html .= $otsikkonro;
                                     $linkki_html .= $kokon->getOtsikko();
                                     $linkki_html .= "</span>";
                                     $linkki_html .= $linkin_loppu;
                                     $linkki_html .= $rivin_loppu;
                                 }
                             } else {
                                 // Ei näytetä linkkiä!
                             }
                         }
                     }
                 }
             }
             $linkki_html .= "</table>";
         }
     }
     return $linkki_html;
 }
示例#8
0
 /**
  *
  * @param Array $actionosoite action
  * @param Array $actionkyselynimet (action=actionosoite?nimi1=arvo1&nimi2=arvo2 jne)
  * @param Array $actionkyselyarvot
  * @param string $url_jatke urlin loppuun tuleva juttu, esim '#id_arvo'
  * @param Parametrit $parametriolio 
  * @return <type> 
  */
 public static function nayta_kuvalomake($actionosoite, $actionkyselynimet, $actionkyselyarvot, $url_jatke, &$parametriolio)
 {
     $omaid = $parametriolio->omaid;
     $uusi = $parametriolio->uusi_kuva;
     $ilmoitus_kuva = $parametriolio->ilmoitus_kuva;
     $tietokantaolio = $parametriolio->tietokantaolio;
     $kuvaotsikko_kuva = $parametriolio->kuvaotsikko_kuva;
     $kuvaselitys_kuva = $parametriolio->kuvaselitys_kuva;
     $vuosi_kuva = $parametriolio->vuosi_kuva;
     $kk_kuva = $parametriolio->kk_kuva;
     $paiva_kuva = $parametriolio->paiva_kuva;
     $kuvatoimintonimi = $parametriolio->kuvatoimintonimi;
     $nakyvyys_kuva = $parametriolio->nakyvyys_kuva;
     $mj = "";
     // Lomakkeen html-koodi.
     //
     // Ilmoitus otetaan mukaan, jos ei tyhjä:
     if ($ilmoitus_kuva != "") {
         $ilmoitus_kuva = "<span class='lomakeilmoitus'>" . $ilmoitus_kuva . "</span><br />";
     }
     if ($uusi) {
         $submitnappi = "<input type='submit'\n            name='{$kuvatoimintonimi}'" . "value='" . Kuva::$tallenna_uusi_kuva_value . "'/>";
     } else {
         $hakulause = "SELECT * from kuvat " . " WHERE id = " . $parametriolio->id_kuva;
         $osumataulukko = $parametriolio->get_tietokantaolio()->tee_OMAhaku_oliotaulukkopalautteella($hakulause);
         // Luodaan kuvaolio:
         if (!empty($osumataulukko)) {
             $tk_kuva = $osumataulukko[0];
             $kuvaolio = new Kuva($tk_kuva, Kuva::$KUVAT_ALBUMIT);
         }
         $nakyvyys_kuva = $kuvaolio->getNakyvyys();
         $submitnappi = "<input type='submit'\n            name='{$kuvatoimintonimi}'" . "value='" . Kuva::$tallenna_muokkaus_kuva_value . "'/>";
         /*$perunappi = "<input type='button' name='toiminta'".
           "onClick = 'viestin_peruutus()' value = 'Poistu tallentamatta'/>";*/
     }
     $perunappi = "<input type='submit'\n                    name='{$kuvatoimintonimi}'" . "value='" . Kuva::$peruminen_kuva_value . "'/>";
     if ($uusi) {
         // Oletuksena uusi kuva julkinen:
         $nakyvyys_kuva = Nakyvyys_kuva::$JULKINEN;
         $latauskoodi = "<div>" . "<span class='korostus'>" . $ilmoitus_kuva . "</span>" . "Kirjoita tai hae kuvaosoite:<br/>" . "<input type='hidden' name='MAX_FILE_SIZE' \n                            value=" . Kuva::$MAX_FILE_SIZE . " />" . "<input type='file' name='ladattu_kuva' size='80'/>" . "</div>";
     } else {
         $latauskoodi = "<span class='korostus'>" . $ilmoitus_kuva . "</span>";
     }
     /* Muotoillaan action-lauseke: id_kuva, id_lj, id_hav*/
     $vain_arvo = false;
     // Halutaan "action="-juttu alkuun.
     $actionkoodi = luo_action_koodi($actionosoite, $actionkyselynimet, $actionkyselyarvot, $vain_arvo, $url_jatke);
     // Näkyvyysvalikko: ===================================================
     $nakyvyydet = new Nakyvyys_kuva();
     $select_maaritteet = array(Maarite::name("nakyvyys_kuva"));
     $option_maaritteet = array();
     $otsikko = "";
     $nakyvyysvalikko = $nakyvyydet->luo_pudotusvalikko($select_maaritteet, $option_maaritteet, $nakyvyys_kuva, $otsikko);
     //=====================================================================
     $mj = "<form align='left' method='post' id='kuvalomake_kapea'" . $actionkoodi . "enctype='multipart/form-data'/>" . $latauskoodi . "<b>Kirjoita kuvan tiedot ja tallenna!</b><br/>" . "<table summary='uudet_tiedot'>" . "<tr>" . "<td>Kuvaotsikko: </td><td><input type='text' size='60' maxlength='200'" . "name='kuvaotsikko_kuva' value='{$kuvaotsikko_kuva}' /></td></tr>" . "<tr><td></td>" . "<td align='left'>\n                <button id='b1' type='button' onclick='nayta_ed_vko()'\n                title='Edellinen viikko'>\n                &lt;&lt;\n                </button>\n\n                <button id='b2'type='button' onclick='nayta_ed()'\n                title='Edellinen p&auml;iv&auml;'>\n                &lt;\n                </button>\n\n                <button id='b5' type='button' onclick='nayta_nyk_pvm()'\n                title='N&auml;ytt&auml;&auml; nykyisen" . " p&auml;iv&auml;m&auml;&auml;r&auml;n'>\n                T&auml;m&auml; p&auml;iv&auml;\n                </button>\n\n                <button id='b6' type='button' onclick='tyhjenna_pvm()'\n                title='Tyhjent&auml;&auml; p&auml;iv&auml;m&auml;&auml;r&auml;n'>\n                Tyhjenn&auml;\n                </button>\n\n                <button id='b3'type='button' onclick='nayta_seur()'\n                title='Seuraava p&auml;iv&auml;'>\n                &gt;\n                </button>\n\n                <button id='b4' type='button' onclick='nayta_seur_vko()'\n                title='Seuraava viikko'>\n                &gt;&gt;\n                </button> " . " <span id='pvm_naytto'></span>\n            </td>" . "</tr>" . "<tr><td></td><td>\n            Vuosi (xxxx): <input id='vuosi' type='text'" . "size='4' maxlength='4'" . "name='vuosi_kuva' value='{$vuosi_kuva}' title='Vuosi, jolloin" . "kuva on otettu (voi arvioida tai j&auml;tt&auml;&auml; tyhj&auml;ksi)'" . "onchange='nayta_pvm()' onkeyup='nayta_pvm()'/>\n\n            Kk (1-12): <input id='kk' type='text' size='2' maxlength='2'" . "name='kk_kuva' value='{$kk_kuva}' title='Kuukausi, jolloin" . "kuva on otettu (voi j&auml;tt&auml;&auml; tyhj&auml;ksi)'" . "onchange='nayta_pvm()' onkeyup='nayta_pvm()'/>\n\n            P&auml;iv&auml; (1-31): <input id='paiva' type='text' size='2' maxlength='2'" . "name='paiva_kuva' value='{$paiva_kuva}' title='P&auml;iv&auml;, jolloin" . "kuva on otettu (voi j&auml;tt&auml;&auml; tyhj&auml;ksi)'" . "onchange='nayta_pvm()' onkeyup='nayta_pvm()'/>\n            </td></tr>" . "<tr><td>Kuvaselitys:</td>" . "<td colspan='2'><textarea cols='55' rows='6' maxlength = '1000'\n            name='kuvaselitys_kuva'>{$kuvaselitys_kuva}" . "</textarea></td></tr>" . "<tr><td title='" . Tekstit::$nakyvyys_valikko_otsikko_title . "'>" . Tekstit::$nakyvyys_valikko_otsikko . "</td>" . "<td colspan='2'>" . $nakyvyysvalikko . "</td></tr>" . "<tr><td></td><td align='left'>" . $submitnappi . $perunappi . "</td><td></td></tr>" . "</table>" . "</form>";
     return $mj;
 }
示例#9
0
 /**
  * Palauttaa ratkaisulomakkeen html-koodin.
  * @param Parametrit $parametriolio
  * @return string
  */
 function nayta_ratkaisulomake($parametriolio)
 {
     $id_kokon = $parametriolio->id_kokon;
     $id_teht = $parametriolio->id_teht;
     $id_ratk = $parametriolio->id_ratk;
     $omaid = $parametriolio->get_omaid();
     $uusi = $parametriolio->uusi;
     $ilmoitus_ratk = $parametriolio->ilmoitus_ratk;
     $tietokantaolio = $parametriolio->get_tietokantaolio();
     $kaavakieli = $parametriolio->kaavakieli;
     $nakyvyys_ratk = $parametriolio->nakyvyys_ratk;
     $mj = "";
     // Lomakkeen html-koodi.
     $tehtavanakymat = new Tehtavanakymat();
     // Tarpeen matkan varrella.
     // TArkistetaan, onko käyttäjä tulossa koosteesta / elementtiryhmästä
     // ja mahdollistetaan paluu:
     $elem_id = $parametriolio->elementti_id;
     $elemryhma_id = $parametriolio->elemryhma_id;
     $koostetieto = "";
     if ($elem_id != Elementti::$MUUTTUJAA_EI_MAARITELTY) {
         $koostetieto = "&" . Koostekontrolleri::$elementti_name_id . "=" . $elem_id;
     }
     if ($elemryhma_id != Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY) {
         $koostetieto .= "&" . Koostekontrolleri::$elemryhma_name_id . "=" . $elemryhma_id;
     }
     /***********************************************************************/
     // Haetaan ensin tehtävä, jotta sen voi nähdä samalla: *****************/
     $tehtava_html = "";
     /* Haetaan tehtävä: */
     $tehtava = new Tehtava($id_teht, $tietokantaolio);
     if (!$tehtava->olio_loytyi_tietokannasta) {
         $tehtava_html = Tekstit::$tehtava_ilm_ei_loytynyt;
     } else {
         $tehtava_html .= $tehtavanakymat->tulosta_tehtava_ilman_painikkeita($omaid, $tehtava);
     }
     /**************************************************************************/
     $esikatselunappi = "<button type='button' " . "onclick='nayta_ratkaisun_esikatselu(" . $id_kokon . "," . $id_teht . "," . $id_ratk . ")'" . "title='" . Painikkeet::$ESIKATSELU_TITLE . "'/>" . Painikkeet::$ESIKATSELU_VALUE . "</button>";
     // Haetaan ajantasalla olevat tiedot tietokannasta. Aiemmin
     // tiedot tuotiin kiinteästi painikelomakkeeseen, mutta tällöin
     // kokorajoitus urlissa aiheutti ongelmia. Muutenkin se on huonompi
     // ja turvattomampi tapa.
     $ratkaisu = new Ratkaisu($id_ratk, $tietokantaolio);
     // Pyritään tekemään niin, että vastauksen ollessa tyhjä ei
     // kirjoitettu vastaus kuitenkaan häviä..
     if ($ratkaisu->olio_loytyi_tietokannasta) {
         if (empty($parametriolio->ratkaisu_ratk)) {
             $vastaus_ratk = $ratkaisu->getVastaus();
             $ratkaisu_ratk = $ratkaisu->getRatkaisu();
         } else {
             $vastaus_ratk = $parametriolio->vastaus_ratk;
             $ratkaisu_ratk = $parametriolio->ratkaisu_ratk;
         }
         $nakyvyys_ratk = $ratkaisu->getNakyvyys();
     } else {
         if (empty($parametriolio->ratkaisu_ratk)) {
             $vastaus_ratk = "";
             $ratkaisu_ratk = $tehtava->getTehtavananto();
         } else {
             // Jos tietoja syötetty (esim. virhesyöte):
             $vastaus_ratk = $parametriolio->vastaus_ratk;
             $ratkaisu_ratk = $parametriolio->ratkaisu_ratk;
         }
     }
     // Siivotaan kenot ja varmistetaan tagien yms oikea näyttötapa:
     $vastaus_ratk = htmlspecialchars($vastaus_ratk, ENT_QUOTES, "UTF-8", true);
     $ratkaisu_ratk = htmlspecialchars($ratkaisu_ratk, ENT_QUOTES, "UTF-8", true);
     // Kaavakielivalikko:==================================================
     $kaavakielet = new Kaavakieli();
     $select_maaritteet = array(Attr::onchange("muuta_kaavakieli", array("this.value", Yleiset_arvot::$kaavakieli_name)));
     $option_maaritteet = array();
     $kaavakielivalikko = $kaavakielet->luo_pudotusvalikko($select_maaritteet, $option_maaritteet, $kaavakieli, Tekstit::$kaavakieli_otsikko);
     //=====================================================================
     // Näkyvyysvalikko: ===================================================
     $nakyvyydet = new Nakyvyys();
     $select_maaritteet = array(Attr::name(Ratkaisukontrolleri::$ratkaisu_name_nakyvyys));
     $option_maaritteet = array();
     $otsikko = "";
     $nakyvyysvalikko = $nakyvyydet->luo_pudotusvalikko($select_maaritteet, $option_maaritteet, $nakyvyys_ratk, $otsikko);
     //=====================================================================
     $vastaus_maxpituus = 1000;
     $ratkaisu_maxpituus = 10000;
     $toiminnan_name_arvo = Toimintonimet::$tehtavatoiminto;
     // Ilmoitus otetaan mukaan, jos ei tyhjä:
     if ($ilmoitus_ratk != "") {
         $ilmoitus_ratk = "<div class='lomakeilmoitus'>" . $ilmoitus_ratk . "</div>";
     }
     if ($uusi) {
         $submitnappi = "<input type='submit'\n            name='{$toiminnan_name_arvo}'" . "value='" . Painikkeet::$ratkaisu_tallenna_uusi_value . "'/>";
         $perunappi = "<input type='submit'\n                    name='{$toiminnan_name_arvo}'" . "value='" . Painikkeet::$ratkaisu_peru_uuden_tallennus_value . "'" . "title='" . Painikkeet::$ratkaisu_peru_uuden_tallennus_title . "'/>";
     } else {
         $submitnappi = "<input type='submit'\n            name='{$toiminnan_name_arvo}'" . "value='" . Painikkeet::$ratkaisu_tallenna_muokkaus_value . "'/>";
         $perunappi = "<input type='submit'\n                    name='{$toiminnan_name_arvo}'" . "value='" . Painikkeet::$ratkaisu_peruminen_value . "'/>";
     }
     $muokattavan_elementin_id = "ratkaisuteksti";
     $alasvetovalikon_id = "merkit1";
     $tekstityokaluolio = new Tekstityokalupalkki($muokattavan_elementin_id, $alasvetovalikon_id);
     $tekstimuokkauspainikkeet = $tekstityokaluolio->luo_painikkeet(Tekstityokalupalkki::$PERUSPAINIKKEET_JA_MATEMAATTISET, $kaavakieli);
     // Kaavakielivalikko:==================================================
     $kaavakielet = new Kaavakieli();
     $select_maaritteet = array(Attr::onchange("muuta_kaavakieli", array("this.value", Yleiset_arvot::$kaavakieli_name, $muokattavan_elementin_id, $alasvetovalikon_id)));
     $option_maaritteet = array();
     $kaavakielivalikko = $kaavakielet->luo_pudotusvalikko($select_maaritteet, $option_maaritteet, $kaavakieli, Tekstit::$kaavakieli_otsikko);
     //=====================================================================
     //======================================================================
     // Sitten palat yhteen:
     $mj = $tehtava_html . "<form align='left' method='post' id='ratkaisulomake' class='lomake'" . "action='index.php?" . "id_ratk=" . $id_ratk . "&id_teht=" . $id_teht . "&id_kokon=" . $id_kokon . "&uusi=" . $uusi . $koostetieto . "'/>" . $ilmoitus_ratk . "<table summary='uudet_tiedot'>" . "<tr><td colspan=2><b>" . Tekstit::$ratkaisulomake_ohje . " " . $esikatselunappi . "</b></td>" . "</tr>" . "<tr><td>" . Tekstit::$ratkaisulomake_vastaus . ": </td><td><input type='text'\n            size='80' maxlength='{$vastaus_maxpituus}' id='vastausteksti'" . "name='vastaus_ratk' value='{$vastaus_ratk}'\n            title='" . Tekstit::$ratkaisulomake_vastaustitle . "'/></td>" . "</tr>" . "<tr><td>" . Tekstit::$nakyvyys_valikko_otsikko . "</td><td>" . $nakyvyysvalikko . "</td>" . "</tr>" . "<tr><td></td>" . "<td>" . $kaavakielivalikko . "</td>" . "</tr>" . "<tr><td></td><td>" . $tekstimuokkauspainikkeet . "</td></tr>" . "<tr><td>" . Tekstit::$ratkaisulomake_ratkaisu . ":</td>" . "<td colspan='2'><textarea id='ratkaisuteksti' cols='80' rows='20'\n            maxlength = {$ratkaisu_maxpituus}\n            name='ratkaisu_ratk'>{$ratkaisu_ratk}" . "</textarea></td></tr>" . "<tr><td></td><td align='left'>" . $submitnappi . $perunappi . "</td></tr>" . "</table>" . "</form>";
     return $mj;
 }
示例#10
0
 /**
  * Palauttaa uuden yksittäisen havainnon tietojen syöttöön tarkoitetun
  * lomakkeen.
  * 
  * <p>Riippuvuudet: yhteiset/php_yhteiset.php</p>
  * 
  * @return string
  */
 function nayta_uusi_havaintolomake()
 {
     $ylaluokka_id_lj = $this->parametriolio->ylaluokka_id_lj;
     $kieli_kuv = $this->parametriolio->kieli_kuv;
     $tietokantaolio = $this->parametriolio->get_tietokantaolio();
     // $tallennuskommentti kertoo mikä laji tallennettiin viimeksi.
     $tallennuskommentti = $this->parametriolio->get_tallennuspalaute();
     // Mahdolliset arvot voivat olla epätyhjiä puutteellisen yrityksen
     // jälkeen (ei tartte uudestaan naputella):
     $id_hav = $this->parametriolio->id_hav;
     $lajiluokka_id_hav = $this->parametriolio->lajiluokka_id_hav;
     $paiva_hav = $this->parametriolio->paiva_hav;
     $kk_hav = $this->parametriolio->kk_hav;
     $vuosi_hav = $this->parametriolio->vuosi_hav;
     $paikka_hav = $this->parametriolio->paikka_hav;
     $kommentti_hav = $this->parametriolio->kommentti_hav;
     $maa_hav = $this->parametriolio->maa_hav;
     $varmuus_hav = $this->parametriolio->varmuus_hav;
     //=============================================================
     $poistunappi = Html::luo_input(array(Maarite::type("submit"), Maarite::classs("rinnakkain"), Maarite::name(Bongaustoimintonimet::$havaintotoiminto), Maarite::value(Bongauspainikkeet::$PERUMINEN_HAVAINTO_VALUE)));
     $uusi_laji_nappi = Html::luo_input(array(Maarite::type("submit"), Maarite::classs("rinnakkain"), Maarite::name(Bongaustoimintonimet::$lajiluokkatoiminto), Maarite::value(Bongauspainikkeet::$UUSI_LAJILUOKKA_VALUE)));
     $havaintolomakeohje = Bongaustekstit::$havaintolomake_uusi_ohje;
     $submitnappi = Html::luo_input(array(Maarite::type("submit"), Maarite::classs("rinnakkain"), Maarite::name(Bongaustoimintonimet::$havaintotoiminto), Maarite::value(Bongauspainikkeet::$TALLENNA_UUSI_HAVAINTO_VALUE)));
     // Lajivalikko (kun vain yksi valittu)
     $otsikko = "";
     $lajivalikko = Lajiluokka::nayta_lajivalikko($lajiluokka_id_hav, $tietokantaolio, $ylaluokka_id_lj, $kieli_kuv, $otsikko);
     /*************************************************************************/
     $maavalikkohtml = "";
     try {
         $arvot = Maat::hae_maa_arvot();
         $nimet = Maat::hae_maakuvaukset();
         $name_arvo = Maat::$tietokannan_sarakenimi;
         $oletusvalinta_arvo = $maa_hav;
         $otsikko = Maat::$valikko_otsikko;
         $onchange_metodinimi = "kirjoita_maa";
         $onchange_metodiparametrit_array = array();
         $maavalikkohtml .= Html::luo_pudotusvalikko_onChange($arvot, $nimet, $name_arvo, $oletusvalinta_arvo, $otsikko, $onchange_metodinimi, $onchange_metodiparametrit_array);
     } catch (Exception $poikkeus) {
         $maavalikkohtml = "Virhe maavalikossa! (" . $poikkeus->getMessage() . ")";
     }
     /*************************************************************************/
     $naytettava_valinta = $varmuus_hav;
     $varmuusvalikko = Varmuus::muodosta_valikkohtml(false, $naytettava_valinta);
     // kommentin muotoilu:
     if (!empty($tallennuskommentti)) {
         $tallennuskommentti = $tallennuskommentti . Html::luo_br();
     }
     // Tallennetun näyttö tallennuksen jälkeen. Nyt pitää arvata eli
     // katsoa tietokannasta suurin id ja sillä perusteella asettaa
     // arvoksi sitä yksi isompi.
     $id_hav_uusi = hae_suurin_id($this->tietokantaolio, Tietokannan_taulunimet::$bhavainnot) + 1;
     $url_jatke_nyk = "#havainto" . $id_hav_uusi;
     $url_id = "?id_hav=" . $id_hav_uusi . $url_jatke_nyk;
     // Näin löytyy päivitettävä havainto!
     $maar_array = array();
     // Rivi1: ohjeita
     $rivi1 = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_b(Html::luo_span($tallennuskommentti, array(Maarite::id(Bongausasetuksia::$havaintolomake_tallennustiedote_id))) . $havaintolomakeohje, $maar_array), array(Maarite::colspan(2))), $maar_array);
     // taulukkorivi
     // Toinen rivi: pvm-painikkeet
     $rivi2 = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_button(Bongauspainikkeet::$ed_vko, array(Maarite::id("b1"), Maarite::onclick("nayta_ed_vko", ""))) . Html::luo_button(Bongauspainikkeet::$ed_paiva, array(Maarite::id("b2"), Maarite::onclick("nayta_ed", ""))) . Html::luo_button(Bongauspainikkeet::$seur_paiva, array(Maarite::id("b3"), Maarite::onclick("nayta_seur()", ""))) . Html::luo_button(Bongauspainikkeet::$seur_vko, array(Maarite::id("b4"), Maarite::onclick("nayta_seur_vko()", ""))), array(Maarite::colspan(2), Maarite::align("left"))), $maar_array);
     // taulukkorivi
     // Rivi3: pvm-kentät
     $rivi3 = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_label_for("paiva", "*" . Bongaustekstit::$paiva . ":", ""), array(Maarite::align("left"))) . Html::luo_tablesolu(Html::luo_input(array(Maarite::type("text"), Maarite::id("paiva"), Maarite::name("paiva_hav"), Maarite::value($paiva_hav), Maarite::size("4"), Maarite::max_length("2"), Maarite::onchange("nayta_pvm", ""), Maarite::onkeyup("nayta_pvm", ""))) . Html::luo_label_for("kk", "*" . Bongaustekstit::$kk . ":", "") . Html::luo_input(array(Maarite::type("text"), Maarite::id("kk"), Maarite::name("kk_hav"), Maarite::value($kk_hav), Maarite::size("4"), Maarite::max_length("2"), Maarite::onchange("nayta_pvm", ""), Maarite::onkeyup("nayta_pvm", ""))) . Html::luo_label_for("vuosi", "*" . Bongaustekstit::$vuosi . ":", "") . Html::luo_input(array(Maarite::type("text"), Maarite::id("vuosi"), Maarite::name("vuosi_hav"), Maarite::value($vuosi_hav), Maarite::size("4"), Maarite::max_length("4"), Maarite::onchange("nayta_pvm", ""), Maarite::onkeyup("nayta_pvm", ""))) . Html::luo_span("", array(Maarite::id("pvm_naytto"))), array(Maarite::align("left"))), $maar_array);
     // taulukkorivi
     // painike, josta saadaan näkyviin monta lajia kerralla:
     $rivi4 = Html::luo_tablerivi(Html::luo_tablesolu("", array(Maarite::align("left"))) . Html::luo_tablesolu(Html::luo_input(array(Maarite::type("submit"), Maarite::value(Bongauspainikkeet::$NAYTA_MONEN_HAVAINNON_VALINTA_VALUE), Maarite::title(Bongauspainikkeet::$NAYTA_MONEN_HAVAINNON_VALINTA_TITLE), Maarite::name(Bongaustoimintonimet::$havaintotoiminto))), array(Maarite::align("left"))), $maar_array);
     // rivi5: Lajivalinta
     $rivi5 = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_label_for("lisaa_myohemmin", "*" . Bongaustekstit::$laji . ": ", ""), array(Maarite::align("left"))) . Html::luo_tablesolu(Html::luo_span($lajivalikko, array(Maarite::id(Bongausasetuksia::$havaintolomake_lajivalikko_id))) . Html::luo_span($uusi_laji_nappi, array(Maarite::id(Bongausasetuksia::$havaintolomake_lajivalikkopainike_id))) . Html::luo_span("(" . Bongaustekstit::$havaintolomake_laji_puuttuu_ohje . ")", array(Maarite::id(Bongausasetuksia::$havaintolomake_lajivalintaohje_id))), array(Maarite::align("left"), Maarite::id(Bongausasetuksia::$havaintolomake_lajivalintarivi_id))), $maar_array);
     // taulukkorivi
     // rivi6: Paikka ja maa:
     $rivi6 = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_label_for("lisaa myohemmin", "*" . Bongaustekstit::$paikka . ": ", ""), array(Maarite::align("left"))) . Html::luo_tablesolu(Html::luo_input(array(Maarite::type("text"), Maarite::name("paikka_hav"), Maarite::value($paikka_hav))) . $maavalikkohtml, array(Maarite::align("left"))), $maar_array);
     // taulukkorivi
     // rivi7: Havainnon varmuus:
     $rivi7 = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_label_for("lisaa myohemmin", Varmuus::$valikko_otsikko, ""), array(Maarite::align("left"))) . Html::luo_tablesolu($varmuusvalikko, array(Maarite::align("left"))), $maar_array);
     // taulukkorivi
     // rivi8: Havaintokommentti:
     $rivi8 = Html::luo_tablerivi(Html::luo_tablesolu(Bongaustekstit::$kommentti, array(Maarite::align("left"))) . Html::luo_tablesolu(Html::luo_textarea($kommentti_hav, array(Maarite::cols(50), Maarite::rows(6), Maarite::name("kommentti_hav"))), array(Maarite::align("left"))), $maar_array);
     // taulukkorivi
     // rivi9: Painikkeet:
     $rivi9 = Html::luo_tablerivi(Html::luo_tablesolu("", array(Maarite::align("left"))) . Html::luo_tablesolu($submitnappi . $poistunappi, array(Maarite::align("left"))), $maar_array);
     // taulukkorivi
     // Rivit taulukon sisään:
     $taulukko = Html::luo_table($rivi1 . $rivi2 . $rivi3 . $rivi4 . $rivi5 . $rivi6 . $rivi7 . $rivi8 . $rivi9, array(Maarite::summary("uudet_tiedot"), Maarite::id(Bongausasetuksia::$havaintolomakkeen_id)));
     // Taulukko lomakkeen sisään:
     $html = Html::luo_form($taulukko, array(Maarite::align("center"), Maarite::method("post"), Maarite::action("index.php" . $url_id)));
     // näytetään js-päivämäärä
     $html .= Html::luo_script_js("nayta_pvm();");
     return $html;
 }
示例#11
0
/**
 *
 * @param Parametrit $parametriolio
 * @return Palaute $palauteolio
 */
function toteuta_nayta_kuvalomake($parametriolio)
{
    $palauteolio = new Palaute();
    $url_jatke = "";
    $tietokantaolio = $parametriolio->get_tietokantaolio();
    $actionkyselynimet = array();
    $actionkyselyarvot = array();
    if ($parametriolio->kokoelmanimi == Kuva::$KUVAT_ALBUMIT) {
        $actionosoite = "../kuvatoiminnot/kuvat.php";
        array_push($actionkyselynimet, "id_alb", "id_kuva");
        array_push($actionkyselyarvot, $parametriolio->id_alb, $parametriolio->id_kuva);
    } else {
        if ($parametriolio->kokoelmanimi == Kuva::$KUVAT_BONGAUS) {
            $url_jatke = "#havainto" . $parametriolio->get_naytettavan_id_hav();
            $actionosoite = "../bongaus/index.php";
            array_push($actionkyselynimet, "id_alb", "id_kuva", "id_lj", "id_hav");
            array_push($actionkyselyarvot, $parametriolio->id_alb, $parametriolio->id_kuva, $parametriolio->id_lj, $parametriolio->id_hav);
            // Jos kyse on havaintoon lisättävästä kuvasta, haetaan havainnon
            // tiedot ja lisätään ne kuvalomakkeeseen:
            if ($parametriolio->id_hav != Parametrit::$EI_MAARITELTY) {
                /* Haetaan havainnon tiedot: */
                $hakulause = "SELECT *\n                        FROM bhavainnot\n                        WHERE id = {$parametriolio->id_hav}";
                $osumataulukko = $tietokantaolio->tee_OMAhaku_oliotaulukkopalautteella($hakulause);
                // Viedään tiedot perille:
                if (!empty($osumataulukko)) {
                    $lajinimi = hae_lajiluokan_nimi($osumataulukko[0]->lajiluokka_id, $tietokantaolio, $parametriolio->get_kieli_id());
                    $parametriolio->kuvaotsikko_kuva = $lajinimi;
                    $parametriolio->kuvaselitys_kuva = $osumataulukko[0]->paikka . "<br /> " . $osumataulukko[0]->kommentti;
                    $parametriolio->vuosi_kuva = $osumataulukko[0]->vuosi;
                    $parametriolio->kk_kuva = $osumataulukko[0]->kk;
                    $parametriolio->paiva_kuva = $osumataulukko[0]->paiva;
                }
            }
        } else {
            $actionosoite = "index.php";
        }
    }
    $ilmoitus_kuva = $parametriolio->ilmoitus_kuva;
    $sisalto = Kuva::nayta_kuvalomake($actionosoite, $actionkyselynimet, $actionkyselyarvot, $url_jatke, $parametriolio);
    $palauteolio->set_sisalto($sisalto);
    $palauteolio->set_ilmoitus($parametriolio->ilmoitus_kuva);
    return $palauteolio;
}
示例#12
0
/**
 * Edellisen yleistetty ja hiukan muokattu versio.
 * Palauttaa Palaute-olion, jonka sisältönä on ne oliot (kokonaisuudet/
 * tehtävät/ratkaisut/tms), johon parametri 'naytettava' viittaa (Oliotyyppi-
 * luokan arvoja). 
 * 
 * @param Parametrit $parametriolio
 * @return Palaute $palauteolio
 */
function toteuta_nayta_oliot2($parametriolio)
{
    $kohde = $parametriolio->naytettava;
    $id_kokon = $parametriolio->id_kokon;
    $oppiaine_kokon = $parametriolio->oppiaine_kokon;
    $taso_kokon = $parametriolio->taso_kokon;
    $id_teht = $parametriolio->id_teht;
    $tietokantaolio = $parametriolio->get_tietokantaolio();
    $kayttajan_valtuudet = $parametriolio->get_valtuudet();
    $kieli_id = $parametriolio->kieli_id;
    $omaid = $parametriolio->get_omaid();
    $kokonaisuuskontrolleri = new Kokonaisuuskontrolleri($tietokantaolio, $parametriolio);
    $tehtavakontrolleri = new Tehtavakontrolleri($tietokantaolio, $parametriolio);
    $ratkaisukontrolleri = new Ratkaisukontrolleri($tietokantaolio, $parametriolio);
    $palauteolio = new Palaute();
    $nayta_valikot = false;
    $selitys_auki = Kokonaisuusolio::$SELITYS_KIINNI_ID;
    /* Palautetaan kohteen mukainen näkymä: */
    if ($kohde == Oliotyyppi::$KOKONAISUUS) {
        // Selityksen näyttämisen voisi jotenkin mahdollistaa tarvittaessa.
        $kokonaisuuskontrolleri->toteuta_nayta($palauteolio);
        $nayta_valikot = true;
        $palauteolio->set_naytettava_oliotyyppi(Palaute::$NAYTETTAVA_OLIOTYYPPI_KOKONAISUUS);
    } else {
        if ($kohde == Oliotyyppi::$TEHTAVA) {
            $tehtavakontrolleri->toteuta_nayta_tehtavat($palauteolio);
            $palauteolio->set_naytettava_oliotyyppi(Palaute::$NAYTETTAVA_OLIOTYYPPI_TEHTAVA);
        } else {
            if ($kohde == Oliotyyppi::$RATKAISU) {
                $ratkaisukontrolleri->toteuta_nayta($palauteolio);
                $palauteolio->set_naytettava_oliotyyppi(Palaute::$NAYTETTAVA_OLIOTYYPPI_RATKAISU);
            } else {
                $kokonaisuuskontrolleri->toteuta_nayta($palauteolio);
                $nayta_valikot = true;
                $palauteolio->set_naytettava_oliotyyppi(Palaute::$NAYTETTAVA_OLIOTYYPPI_KOKONAISUUS);
                $palauteolio->set_ilmoitus("Tuntematon kohde (parametriolio->naytettava)!");
            }
        }
    }
    $palauteolio->set_valikkonaytto($nayta_valikot);
    return $palauteolio;
}
示例#13
0
 /**
  * Palauttaa tehtävälomakkeen html:n.
  *
  * @param Parametrit $parametriolio
  * @return <type> Palauttaa lomakkeen html:n
  */
 function nayta_tehtavalomake($parametriolio)
 {
     $id_kokon = $parametriolio->id_kokon;
     $id_teht = $parametriolio->id_teht;
     $omaid = $parametriolio->get_omaid();
     $uusi = $parametriolio->uusi;
     $ilmoitus_teht = $parametriolio->ilmoitus_teht;
     $otsikko_teht = $parametriolio->otsikko_teht;
     $tehtavananto_teht = $parametriolio->tehtavananto_teht;
     $vaikeustaso_teht = $parametriolio->vaikeustaso_teht;
     $tietokantaolio = $parametriolio->get_tietokantaolio();
     $nakyvyys = $parametriolio->nakyvyys_teht;
     $kaavakieli = $parametriolio->kaavakieli;
     $elem_id = $parametriolio->elementti_id;
     $mj = "";
     // Lomakkeen html-koodi.
     $esikatselunappi = "<button type='button' " . "onclick='nayta_tehtavan_esikatselu(" . $id_kokon . "," . $id_teht . ")'" . "title='" . Painikkeet::$ESIKATSELU_TITLE . "'/>" . Painikkeet::$ESIKATSELU_VALUE . "</button>";
     // TArkistetaan, onko käyttäjä tulossa koosteesta / elementtiryhmästä
     // ja mahdollistetaan paluu:
     $elem_id = $parametriolio->elementti_id;
     $elemryhma_id = $parametriolio->elemryhma_id;
     $koostetieto = "";
     if ($elem_id != Elementti::$MUUTTUJAA_EI_MAARITELTY) {
         $koostetieto = "&" . Koostekontrolleri::$elementti_name_id . "=" . $elem_id;
     }
     if ($elemryhma_id != Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY) {
         $koostetieto .= "&" . Koostekontrolleri::$elemryhma_name_id . "=" . $elemryhma_id;
     }
     // Haetaan ajantasalla olevat tiedot tietokannasta. Aiemmin
     // tiedot tuotiin kiinteästi painikelomakkeeseen, mutta tällöin
     // kokorajoitus urlissa aiheutti ongelmia. Muutenkin se on huonompi
     // ja turvattomampi tapa.
     // HUOM! Tämä ei auta uuden tehtävän tekemisessä, jos esimerkiksi
     // tarkistus ei mene läpi!
     //
     // Huom2: tämä hakee myös uuden tehtävän tapauksessa edellisen aktiivisen
     // tehtävän tiedot lomakkeeseen. Aika usein tehtävät ovat samantyyppisiä,
     // jolloin tämä helpottaa tekemistä enemmän kuin haittaa..
     if ($id_teht != -1) {
         $taulunimi = "tehtavat";
         $sarakenimi = "id";
         $hakuarvo = $id_teht;
         $tehtava = new Tehtava($id_teht, $tietokantaolio);
         if ($tehtava->olio_loytyi_tietokannasta) {
             if (empty($tehtavananto_teht) && empty($otsikko_teht)) {
                 $otsikko_teht = $tehtava->getOtsikko();
                 $tehtavananto_teht = $tehtava->getTehtavananto();
             }
             $vaikeustaso_teht = $tehtava->getVaikeustaso();
             $nakyvyys = $tehtava->getNakyvyys();
         }
         // Tämä koodaa myös esim. heittomerkit, jolloin
         // ne eivät häiritse html:n seassa.
         $otsikko_teht = htmlspecialchars($otsikko_teht, ENT_QUOTES, "UTF-8", true);
         //htmlentities
         $tehtavananto_teht = htmlspecialchars($tehtavananto_teht, ENT_QUOTES, "UTF-8", true);
     }
     $toiminnan_name_arvo = Toimintonimet::$tehtavatoiminto;
     $otsikon_maxpituus = 1000;
     $tehtavananto_maxpituus = 10000;
     // Ilmoitus otetaan mukaan, jos ei tyhjä:
     if ($ilmoitus_teht != "") {
         $ilmoitus_teht = "<div class='lomakeilmoitus'>" . $ilmoitus_teht . "</div>";
     }
     if ($uusi) {
         $submitnappi = "<input type='submit' " . "name='{$toiminnan_name_arvo}' " . "value='" . Painikkeet::$tehtava_tallenna_uusi_value . "'/>";
         $perunappi = "<input type='submit' " . "name='{$toiminnan_name_arvo}' " . "value='" . Painikkeet::$tehtava_peru_uuden_tallennus_value . "'" . "title='" . Painikkeet::$tehtava_peru_uuden_tallennus_title . "'/>";
     } else {
         $submitnappi = "<input type='submit'\n                    name='{$toiminnan_name_arvo}'" . "value='" . Painikkeet::$tehtava_tallenna_muokkaus_value . "'/>";
         $perunappi = "<input type='submit'\n                    name='{$toiminnan_name_arvo}'" . "value='" . Painikkeet::$tehtava_peruminen_value . "'/>";
     }
     // Vaikeustasovalikko:
     $vaikeustaso_html = "";
     try {
         $arvot = Vaikeustasot::hae_vaikeustasoarvot();
         $nimet = Vaikeustasot::hae_vaikeustasokuvaukset();
         $name_arvo = "vaikeustaso_teht";
         $oletusvalinta_arvo = $vaikeustaso_teht;
         $otsikko = "";
         $vaikeustaso_html = Html::luo_pudotusvalikko($arvot, $nimet, $name_arvo, $oletusvalinta_arvo, $otsikko);
     } catch (Exception $poikkeus) {
         $vaikeustaso_html = "Virhe vaikeustasonimiss&auml! (" . $poikkeus->getMessage() . ")";
     }
     $muokattavan_elementin_id = "tehtavateksti";
     $alasvetovalikon_id = "merkit1";
     $tekstityokaluolio = new Tekstityokalupalkki($muokattavan_elementin_id, $alasvetovalikon_id);
     $tekstimuokkauspainikkeet = $tekstityokaluolio->luo_painikkeet(Tekstityokalupalkki::$PERUSPAINIKKEET_JA_MATEMAATTISET, $parametriolio->kaavakieli);
     // Kaavakielivalikko:==================================================
     $kaavakielet = new Kaavakieli();
     $select_maaritteet = array(Attr::onchange("muuta_kaavakieli", array("this.value", Yleiset_arvot::$kaavakieli_name, $muokattavan_elementin_id, $alasvetovalikon_id)));
     $option_maaritteet = array();
     $kaavakielivalikko = $kaavakielet->luo_pudotusvalikko($select_maaritteet, $option_maaritteet, $kaavakieli, Tekstit::$kaavakieli_otsikko);
     //=====================================================================
     // Näkyvyysvalikko:
     $nakyvyydet = new Nakyvyys();
     $select_maaritteet = array(Attr::name(Tehtavakontrolleri::$tehtava_name_nakyvyys));
     $option_maaritteet = array();
     $otsikko = Tekstit::$nakyvyys_valikko_otsikko;
     $nakyvyysvalikko = $nakyvyydet->luo_pudotusvalikko($select_maaritteet, $option_maaritteet, $nakyvyys, $otsikko);
     // Sitten palat yhteen:
     $mj = "<form align='left' method='post' id='tehtavalomake' class='lomake'" . "action='index.php" . "?id_teht=" . $id_teht . "&kieli_id=" . $parametriolio->kieli_id . "&taso_kokon=" . $parametriolio->taso_kokon . "&oppiaine_kokon=" . $parametriolio->oppiaine_kokon . "&" . Oliotyyppi::$naytettava_name . "=" . Oliotyyppi::$TEHTAVA . "&id_kokon=" . $id_kokon . "&uusi=" . $uusi . $koostetieto . "#tehtava" . $id_teht . "'/>" . $ilmoitus_teht . "<table summary='uudet_tiedot'>" . "<tr><td colspan=2><b>" . Tekstit::$tehtavalomake_ohje . "</b></td>" . "</tr>" . "<tr><td> " . Tekstit::$tehtavalomake_otsikko . ": </td><td><input type='text'\n            size='80' maxlength='{$otsikon_maxpituus}'" . "name='otsikko_teht' id='otsikkoteksti' value='{$otsikko_teht}'\n            title='" . Tekstit::$tehtavalomake_otsikkotitle . "'/></td>" . "</tr>" . "<tr><td>" . Tekstit::$tehtavalomake_vaikeustaso . ": </td>" . "<td>" . $vaikeustaso_html . $nakyvyysvalikko . $esikatselunappi . "</td>" . "</tr>" . "<tr><td></td>" . "<td>" . $kaavakielivalikko . "</td>" . "</tr>" . "<tr><td></td><td>" . $tekstimuokkauspainikkeet . "</td></tr>" . "<tr><td>" . Tekstit::$tehtavalomake_tehtavananto . ":</td>" . "<td colspan='2'><textarea id='tehtavateksti' cols='85' rows='20'\n            maxlength =" . $tehtavananto_maxpituus . " name='tehtavananto_teht'>" . $tehtavananto_teht . "</textarea></td></tr>" . "<tr><td></td><td align='left'>" . $submitnappi . $perunappi . "</td></tr>" . "</table>" . "</form>";
     return $mj;
 }
示例#14
0
 /**
  * Palauttaa koodi, joka luo lomakkeen, jonka avulla voi muokata omaa
  * salasanaa ja muita tietoja. 
  * 
  * @param Parametrit $parametriolio 
  * @param type $uusi jos true, niin kyseessä uuden henkilön luominen.
  * @return type
  */
 function nayta_henkilotietolomake(&$parametriolio, $uusi)
 {
     /*$puh = $parametriolio->puhelin;
       $os = $parametriolio->osoite;
       $asuinmaa = $parametriolio->asuinmaa;
       $kieli = $parametriolio->kieli_henkilo;*/
     $tahti_molemmissa = "*";
     $tahti_vain_uudessa = "";
     $otsikko = Html::luo_b(Kayttajatekstit::henkilolomakeotsikko_muokkaus(), array());
     $tallennuspainike = Html::luo_input(array(Attr::type("submit"), Attr::name(Toimintonimet::$henkilotietotoiminto), Attr::value(Kayttajatekstit::$nappi_tallenna_tietomuutokset_value), Attr::title(Kayttajatekstit::$nappi_tallenna_tietomuutokset_title), Attr::classs("rinnakkain")));
     if ($uusi) {
         $etun = $parametriolio->etun;
         $sukun = $parametriolio->sukun;
         $lempin = $parametriolio->lempin;
         $komm = $parametriolio->komm;
         $uusktunnus = $parametriolio->uusktunnus;
         $eosoite = $parametriolio->eosoite;
         $name = Toimintonimet::$henkilotietotoiminto;
         $tahti_vain_uudessa = "*";
         $tallennuspainike = Html::luo_input(array(Attr::type("submit"), Attr::name(Toimintonimet::$henkilotietotoiminto), Attr::value(Kayttajatekstit::$nappi_henkilo_tallenna_uusi_value), Attr::title(Kayttajatekstit::$nappi_henkilo_tallenna_uusi_title), Attr::classs("rinnakkain")));
         $otsikko = Kayttajatekstit::henkilolomakeotsikko_uusi();
     } else {
         // Haetaan tiedot tietokannasta:
         $user = new Henkilo($parametriolio->get_omaid(), $parametriolio->get_tietokantaolio());
         if ($user->olio_loytyi_tietokannasta) {
             $etun = $user->get_arvo(Henkilo::$sarakenimi_etunimi);
             $sukun = $user->get_arvo(Henkilo::$sarakenimi_sukunimi);
             $lempin = $user->get_arvo(Henkilo::$sarakenimi_lempinimi);
             $komm = $user->get_arvo(Henkilo::$sarakenimi_kommentti);
             $uusktunnus = $parametriolio->uusktunnus;
             $eosoite = $user->get_arvo(Henkilo::$sarakenimi_eosoite);
             $name = Toimintonimet::$henkilotietotoiminto;
         } else {
             $this->lisaa_virheilmoitus(Tekstit::$virheilm_henkiloa_ei_loytynyt);
         }
     }
     $otsikko .= Html::luo_p(Kayttajatekstit::henkilolomake_nakyvyysselitys(), array(Attr::style("font-size: 80%")));
     $mj = $otsikko;
     // Ilmoitukset:
     $mj .= Html::luo_div($parametriolio->ilmoitus_kokon, array(Attr::id(Kayttajanakymat::$id_henkilotietolomakeilmoitukset), Attr::classs("korostus")));
     $mj .= Html::luo_table(Html::luo_tablerivi(Html::luo_tablesolu("*" . Kayttajatekstit::$lomakekentta_etunimi, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("text"), Attr::name(Kayttajakontrolleri::$name_etunimi), Attr::value($etun), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu("*" . Kayttajatekstit::$lomakekentta_sukunimi, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("text"), Attr::name(Kayttajakontrolleri::$name_sukunimi), Attr::value($sukun), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu(Kayttajatekstit::$lomakekentta_lempinimi, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("text"), Attr::name(Kayttajakontrolleri::$name_lempinimi), Attr::value($lempin), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu(Kayttajatekstit::$lomakekentta_kuvaus_itsesta, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("text"), Attr::name(Kayttajakontrolleri::$name_kommentti), Attr::value($komm), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu("*" . Kayttajatekstit::$lomakekentta_email, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("text"), Attr::name(Kayttajakontrolleri::$name_eosoite), Attr::value($eosoite), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu($tahti_vain_uudessa . Kayttajatekstit::$lomakekentta_kayttajatunnus, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("text"), Attr::name(Kayttajakontrolleri::$name_uusikayttajatunnus), Attr::value(""), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu($tahti_vain_uudessa . Kayttajatekstit::$lomakekentta_salasana, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("password"), Attr::name(Kayttajakontrolleri::$name_uusisalasana), Attr::value(""), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu($tahti_vain_uudessa . Kayttajatekstit::$lomakekentta_salasana_vahvistus, array()) . Html::luo_tablesolu(Html::luo_input(array(Attr::type("password"), Attr::name(Kayttajakontrolleri::$name_salasanavahvistus), Attr::value(""), Attr::size(40))), array()), array()) . Html::luo_tablerivi(Html::luo_tablesolu("", array()) . Html::luo_tablesolu($tallennuspainike . Html::luo_input(array(Attr::type("submit"), Attr::name(Toimintonimet::$henkilotietotoiminto), Attr::value(Kayttajatekstit::$nappi_poistu_tiedoista_value), Attr::title(Kayttajatekstit::$nappi_poistu_tiedoista_title), Attr::classs("rinnakkain"))), array()), array()), array(Attr::summary("Muokkaustiedot"), Attr::align("center")));
     $lomake = Html::luo_form($mj, array(Attr::action("index.php"), Attr::method("post"), Attr::classs("tietolomake_rajaton")));
     return $lomake;
 }