/**
 * 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&auml;tt&auml;&auml; tyhj&auml;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&auml;tt&auml;&auml; tyhj&auml;ksi)'/>\n        P&auml;iv&auml; (1-31): <input 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)'/>\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;
}
Beispiel #2
0
 /**
  * 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;
 }
Beispiel #3
0
    /**
     * @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;
 }