/** * Muotoilee kuvalomakkeen ja palauttaa sen html:n. Tämä käy sekä * kokonaisuuden, tehtävien että ratkaisujen kuviin. * * * @param string $kohde_kuva "kokonaisuus"/"tehtava" tms. mihin kuva kuuluu. * @param <type> $omaid * @param <type> $uusi viittaa olioon, johon kuva lisätään: muokkaus vai uusi? * @param <type> $ilmoitus_kuva * @param <type> $tietokantaolio * @param <type> $id_kuva * @param <type> $id_kokon * @param <type> $id_teht * @param <type> $id_ratk * @param <type> $kuvaotsikko_kuva * @param <type> $kuvaselitys_kuva * @param <type> $vuosi_kuva * @param <type> $kk_kuva * @param <type> $paiva_kuva * @param <type> $nayttokokoindeksi_kuva * @return <type> */ function nayta_kuvalomake_uusi(&$kohde_kuva, $omaid, $uusi, $ilmoitus_kuva, $tietokantaolio, $id_kuva, $id_kokon, $id_teht, $id_ratk, &$kuvaotsikko_kuva, &$kuvaselitys_kuva, &$vuosi_kuva, &$kk_kuva, &$paiva_kuva, &$nayttokokoindeksi_kuva) { $mj = ""; // Lomakkeen html-koodi. $toiminta_name_arvo = Toimintonimet::$kuvatoiminto; // Jos päivämäärät ei määriteltyjä, syötetään tämä päivä: if ($vuosi_kuva === "") { $vuosi_kuva = Aika::anna_nyk_vuoden_nro(); } if ($paiva_kuva === "") { $paiva_kuva = Aika::anna_nyk_paivan_nro(); } if ($kk_kuva === "") { $kk_kuva = Aika::anna_nyk_kk_nro(); } // Ilmoitus otetaan mukaan, jos ei tyhjä: if ($ilmoitus_kuva != "") { $ilmoitus_kuva = "<span class='kuvalomakeilmoitus'>" . $ilmoitus_kuva . "</span><br />"; } $submitnappi = "<input type='submit'\n name='{$toiminta_name_arvo}'" . "value='" . Painikkeet::$TALLENNA_UUSI_KUVA_VALUE . "'/>"; $perunappi = "<input type='submit'\n name='" . Toimintonimet::$kuvatoiminto . "'" . "value='" . Painikkeet::$PERUMINEN_KUVA_VALUE . "'/>"; $latauskoodi = "<div>" . $ilmoitus_kuva . "Kirjoita tai hae kuvaosoite:<br/>" . "<input type='hidden' name='MAX_FILE_SIZE'" . "value=" . Kuvat::$MAX_FILE_KOKO . " />" . "<input type='file' name='ladattu_kuva' size='80'/>" . "</div>"; // muotoillaan ensin kuvan maxnäyttökoon valinta: try { $kuvaukset = Kuvat::hae_kuvakokokuvaukset(); $indeksit = Kuvat::hae_kuvakokoindeksit(); $name_arvo = "nayttokokoindeksi_kuva"; $oletusvalinta_arvo = $nayttokokoindeksi_kuva; $otsikko = Tekstit::$kuvalomake_nayttokoko_otsikko; $kokovalintahtml = Html::luo_pudotusvalikko($indeksit, $kuvaukset, $name_arvo, $oletusvalinta_arvo, $otsikko); } catch (Exception $poikkeus) { $kokovalintahtml = "Virhe kuvakokoloissa! (" . $poikkeus->getMessage() . ")"; } $mj = "<form align='left' method='post' class='kuvalomake'\n action='index.php" . "?id_kokon=" . $id_kokon . "&id_teht=" . $id_teht . "&id_ratk=" . $id_ratk . "&kohde_kuva=" . $kohde_kuva . "&uusi=" . $uusi . "' " . "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='70' maxlength='200'" . "name='kuvaotsikko_kuva' value='{$kuvaotsikko_kuva}' /></td></tr>" . "<tr><td></td>" . "<td>Vuosi (xxxx): <input 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)'/>\n Kk (1-12): <input type='text' size='2' maxlength='2'" . "name='kk_kuva' value='{$kk_kuva}' title='Kuukausi, jolloin" . "kuva on otettu (voi jättää tyhjäksi)'/>\n Päivä (1-31): <input type='text' size='2' maxlength='2'" . "name='paiva_kuva' value='{$paiva_kuva}' title='Päivä, jolloin" . "kuva on otettu (voi jättää tyhjäksi)'/>\n </td></tr>" . "<tr><td>Kuvaselitys:</td>" . "<td colspan='2'><textarea cols='60' rows='7' maxlength = '200'\n name='kuvaselitys_kuva'>{$kuvaselitys_kuva}" . "</textarea></td></tr>" . "<tr><td></td><td>" . $kokovalintahtml . "</td><td></td></tr>" . "<tr><td></td><td align='left'>" . $submitnappi . $perunappi . "</td><td></td></tr>" . "</table>" . "</form>"; return $mj; }
/** * Palauttaa pvm:n ja ajan, jotka saadaan parametrista, joka on * time()-funktion lähetyshetkenä antama arvo sekunteina vuoden 1970 alusta. * @param int $timestamp time()-funktion palauttama arvo (sekuntien määrä). * @return String Palauttaa html-tekstinä viikonpäivänä, päivämäärän ja * kellonajan. */ static function anna_pvm_ja_aika($timestamp) { $aikataul = getdate($timestamp); // Viikonpäivä: $tuloshtml = Aika::anna_viikonp_suomeksi($aikataul['mday'], $aikataul['mon'], $aikataul['year'], true); //pvm: $tuloshtml .= date(" j.n.Y \\k\\l\\o H:i:s", $timestamp); return $tuloshtml; }
/** * @param Parametrit $parametriolio * @param Palaute $palauteolio * @return html Palauttaa sivun täydellisen html:n. */ function nayta_etusivu($nayttotapa) { $parametriolio = $this->parametriolio; $palauteolio = $this->palauteolio; $valtuudet = $parametriolio->get_valtuudet(); $url = $palauteolio->get_js_url(); $go_to_url_by_js = $palauteolio->go_to_url_by_js(); $valikko = $palauteolio->get_valikko_html(); $oppiainetiedot = $palauteolio->get_oppiainetiedot(); $ylapalkkipainikkeet = $palauteolio->get_ylapalkkipainikkeet(); $sisalto = $palauteolio->get_sisalto(); $ilmoitus = $palauteolio->get_ilmoitus(); $linkit = $palauteolio->get_linkkihtml(); $aika = Aika::anna_nyk_viikonp_suomeksi() . " " . date("d.m.Y"); $aikailmoitus = "Tänään on " . $aika . " "; $tietomuutospainike = ""; $uusi_kokon_painike = $palauteolio->get_uusi_kokon_painike(); $nayttonappi = Html::luo_button(Painikkeet::$ASETUKSET_YLEINEN_AVAA, array(Attr::id("nayttonappi"), Attr::classs("btn btn-default btn-md"), Attr::onclick("aseta_elementin_nakyvyys", array("asetusnapit", "inline", "piilotusnappi", "nayttonappi")))); $piilotusnappi = Html::luo_button(Painikkeet::$ASETUKSET_YLEINEN_PIILOTA, array(Attr::id("piilotusnappi"), Attr::classs("btn btn-default btn-md"), Attr::style("display: none"), Attr::onclick("aseta_elementin_nakyvyys", array("asetusnapit", "none", "piilotusnappi", "nayttonappi")))); if (empty($valikko)) { $nayttonappi = ""; $piilotusnappi = ""; //$koostepainike = ""; } // Tulostetaan etusivun html-koodi: $otsikkoteksti = Tekstit::$otsikko1_etusivu; //Muotoillaan otsikko sen mukaan, ollaanko kokonaisuudessa vai muualla. // Tosin nyt kyllä ihan samanlainen.. if ($palauteolio->get_naytettava_oliotyyppi() == Palaute::$NAYTETTAVA_OLIOTYYPPI_KOKONAISUUS) { $otsikko = $otsikkoteksti . " " . $oppiainetiedot; } else { $otsikko = $otsikkoteksti . " " . $oppiainetiedot; } // Vain katselu on mahdollista ilman kirjautumista: if ($valtuudet > Valtuudet::$KATSELU) { $kirjautuminen = Html::span(array(Attr::style("font-size:70%")), " " . $_SESSION['tiedot']->etunimi . " ") . Html::luo_forminput_painike(array(Attr::classs("navbar-form inline-block")), array(Attr::classs("btn btn-default btn-md"), Attr::name("toiminta"), Attr::value(Painikkeet::$KIRJAUDU_ULOS_VALUE))); // Ellei näytetä valikoita, pannaan muutkin minimiin: if ($palauteolio->get_valikkonaytto()) { $tietomuutospainike = Html::luo_forminput_painike(array(Attr::classs("navbar-form inline-block")), array(Attr::classs("btn btn-default btn-md"), Attr::name(Toimintonimet::$henkilotietotoiminto), Attr::value(Painikkeet::$nayta_tietomuutoslomake_value))); } } else { $kirjautuminen = Html::a(array(Attr::title(Tekstit::$linkit_tunnistautuminen)), Html::span(array(Attr::classs("glyphicon glyphicon-log-in login-painike")), ""), "tunnistus.php"); } array_push($ylapalkkipainikkeet, $nayttonappi); array_push($ylapalkkipainikkeet, $piilotusnappi); array_push($ylapalkkipainikkeet, Html::li(array(), $kirjautuminen)); // Jos käyttäjällä on riittävät valtuudet, hän saa lisätä henkilöitä ja muuttaa // oikeuksia: HUOM! Tällainen kuuluisi kai loogisesti olemaan index.php:ssa. $erikoistoiminnot = ""; if ($valtuudet == Valtuudet::$HALLINTA && $palauteolio->get_valikkonaytto()) { $erikoistoiminnot = "<form method='post' class='navbar-form inline-block'\n action='{$_SERVER['PHP_SELF']}'>\n <input type='submit' name = 'erikoistoiminta'\n class='btn btn-default'\n value='" . Painikkeet::$lisaa_henkilo_value . "'/></form>"; $erikoistoiminnot .= "<form method='post' class='navbar-form inline-block'\n action='{$_SERVER['PHP_SELF']}'>\n <input type='submit' name = 'erikoistoiminta'\n class='btn btn-default'\n value='" . Painikkeet::$nayta_valtuudet_value . "'/></form>"; } /* Muokataan urliin meno js-koodin avulla, jos sellainen asetettu. * On hidas erityisesti kaavaeditoinnin kanssa, minkä takia ei kovin * suositeltu. Ilmeisesti parempi käyttää #id-juttua urlissa. */ if ($go_to_url_by_js && $url != -1 && !empty($url)) { $url = "#" . $url; $js_koodi = <<<HUU <script type='text/javascript'> window.location='{$url}'; </script> HUU; } else { $js_koodi = ""; } // Muokataan pohjan, sisällön ja linkkipalkin id:t: $palkki_oikea_on = false; $palkki_oikea_id = "palkki_oikea"; $number_of_col = 2; $sidenav_fixed = false; if ($nayttotapa == Html_koodi::$sisaltoelem_fixed) { $pohja_id = "pohja_kiintea"; $sisalto_id = "sisalto_fixed"; $palkki_vasen_id = "palkki_vasen_fixed"; } else { if ($nayttotapa == Html_koodi::$sisaltoelem_levea) { $number_of_col = 1; } else { if ($nayttotapa == Html_koodi::$sisaltoelem_norm_3palkki) { $palkki_oikea_on = true; $number_of_col = 3; } else { if ($nayttotapa == Html_koodi::$sisaltoelem_tulostus) { $pohja_id = "pohja_kiintea"; $sisalto_id = "sisalto"; $palkki_vasen_id = ""; // $palkki_oikea_on = true; } else { if ($nayttotapa == Html_koodi::$sidenav_fixed) { $sidenav_fixed = true; } else { $pohja_id = "pohja_kiintea"; $sisalto_id = "sisalto"; $palkki_vasen_id = "palkki_vasen"; } } } } } // Oikea palkki: $palkki_oikea_html = ""; if ($palkki_oikea_on) { $palkki_oikea_html = "<div id=" . $palkki_oikea_id . ">" . $palauteolio->get_sisalto_palkki_oikea() . "</div>"; } /* * */ if ($nayttotapa != Html_koodi::$sisaltoelem_tulostus) { $links = $uusi_kokon_painike . $linkit; $content = $sisalto . $js_koodi; $header_content = $otsikko; $asetuspainikkeet = $tietomuutospainike . $erikoistoiminnot . " " . $valikko; $etusivu = '<!DOCTYPE html>' . '<html>' . $this->create_head() . '<!--******************* POHJA ******************************--> <body onload="kaynnista_metodit(1)"> ' . get_latex_config() . ' <div id="ilmoitus">' . $ilmoitus . '</div> <!--******************* OTSIKKOPALKKI ***********************--> ' . $this->create_nav($header_content, $ylapalkkipainikkeet, $asetuspainikkeet) . ' <!--********* LINKKIPALKKI, SISÄLTÖ JA OIKEA PALKKI *********--> ' . $this->create_sidenavs_and_content_row($links, $content, $palkki_oikea_html, $number_of_col, $sidenav_fixed) . ' <!--******************* TIEDOT ELI ALAPALKKI ****************--> ' . $this->create_footer($aikailmoitus, $this->create_copyright()) . ' <!--******************* TIEDOT ELI ALAPALKKI LOPPUU *********--> </body> </html>'; return $etusivu; } else { // Jos tulostamassa: $etusivu = '<!DOCTYPE html>' . '<html> <head> <meta content="text/html; charset=UTF-8" http-equiv="content-type"> <title>Opinnot.net - tulostus</title> <link rel="stylesheet" type="text/css" href="tyylit/perusmuotoilut.css" /> <link rel="stylesheet" type="text/css" href="tyylit/tulostusmuotoilut.css" /> <link rel="stylesheet" type="text/css" href="php_yleinen/matematiikka/matematiikkatyylit.css" /> <link rel="stylesheet" type="text/css" href="tyylit/print.css" media="print" /> <script type="text/javascript" src="ajax_ja_js/metodit.js"></script> <script type="text/javascript" src="ajax_ja_js/tekstinmuokkausmetodit.js"></script> <script type="text/javascript" src="ajax_ja_js/ajaxkirjasto.js"></script> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ jax: ["input/TeX", "output/SVG"], TeX: { equationNumbers: { autoNumber: "AMS" } } }); </script> <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> </script> <style type="text/css"> </style> </head> <!--******************* POHJA *******************************--> <body> ' . get_latex_config() . ' <div id=' . $pohja_id . '> <div id="ilmoitus">' . $ilmoitus . '</div> <!--******************* LINKKIPALKKI ************************--> <div id="tulostusnayttopainikkeet">' . $linkit . '</div> <!--******************* SISäLTö *****************************--> <div id = ' . $sisalto_id . '> ' . $sisalto . ' </div> <!--******************* SISäLTö LOPPUU ***************--> </div> <!--******************* POHJA LOPPUU *****************--> </body> </html>'; return $etusivu; } }
/** * @param Parametrit $parametriolio * @param Palaute $palauteolio * @return html Palauttaa sivun täydellisen html:n. */ function nayta_etusivu($parametriolio, $palauteolio, $nayttotapa) { $valtuudet = $parametriolio->get_valtuudet(); $ylapalkkipainikkeet = $palauteolio->get_ylapalkkipainikkeet(); $sisalto = $palauteolio->get_sisalto(); $ilmoitus = $palauteolio->get_ilmoitus(); $linkit = $palauteolio->get_linkkihtml(); $aika = Aika::anna_nyk_viikonp_suomeksi() . " " . date("d.m.Y"); $aikailmoitus = "Tänään on " . $aika . " "; // Kieli: $lang_id = $parametriolio->kieli_id; // Tulostetaan etusivun html-koodi: $otsikkoteksti = Palautustekstit::heading1($lang_id); // Vain katselu on mahdollista ilman kirjautumista: if ($valtuudet > Valtuudet::$KATSELU) { $kirjautuminen = Html::span(array(Attr::style("font-size:70%")), " " . $_SESSION['tiedot']->etunimi . " ") . Html::luo_forminput_painike(array(Attr::classs("navbar-form inline-block")), array(Attr::classs("btn btn-default btn-md"), Attr::name("toiminta"), Attr::value(Painikkeet::$KIRJAUDU_ULOS_VALUE))); } else { $kirjautuminen = Html::a(array(Attr::title(Tekstit::$linkit_tunnistautuminen)), Html::span(array(Attr::classs("glyphicon glyphicon-log-in login-painike")), ""), "../kokonaisuudet/tunnistus.php?target=submit"); } $ylapalkkipainikkeet .= $kirjautuminen; // Näyttötavan vaikutus: if ($nayttotapa === Palautusnakymat::$show_1col) { $number_of_col = 1; } else { if ($nayttotapa === Palautusnakymat::$show_2col) { $number_of_col = 2; } else { $number_of_col = 1; } } $links = $linkit; $content = $sisalto; $header_content = $otsikkoteksti; $etusivu = '<!DOCTYPE html>' . '<html>' . $this->create_head() . '<body onload="kaynnista_metodit(2)"> <div id="ilmoitus">' . $ilmoitus . '</div> ' . $this->create_nav($header_content, $ylapalkkipainikkeet) . ' ' . $this->create_sidenavs_and_content_row($links, $content, $number_of_col) . ' ' . $this->create_footer($aikailmoitus, "") . ' </body> </html>'; return $etusivu; }