/** * 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; }
/** * @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; }
/** * * @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 <<\n </button>\n\n <button id='b2'type='button' onclick='nayta_ed()'\n title='Edellinen päivä'>\n <\n </button>\n\n <button id='b5' type='button' onclick='nayta_nyk_pvm()'\n title='Näyttää nykyisen" . " päivämäärän'>\n Tämä päivä\n </button>\n\n <button id='b6' type='button' onclick='tyhjenna_pvm()'\n title='Tyhjentää päivämäärän'>\n Tyhjennä\n </button>\n\n <button id='b3'type='button' onclick='nayta_seur()'\n title='Seuraava päivä'>\n >\n </button>\n\n <button id='b4' type='button' onclick='nayta_seur_vko()'\n title='Seuraava viikko'>\n >>\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ättää tyhjä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ättää tyhjäksi)'" . "onchange='nayta_pvm()' onkeyup='nayta_pvm()'/>\n\n Päivä (1-31): <input id='paiva' type='text' size='2' maxlength='2'" . "name='paiva_kuva' value='{$paiva_kuva}' title='Päivä, jolloin" . "kuva on otettu (voi jättää tyhjä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; }
/** * 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; }
/** * 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; }
/** * * @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; }
/** * 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; }
/** * 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ä! (" . $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; }
/** * 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; }