public function create_new_article_button() { $button = Html::div(array(Attr::style("text-align: center")), Html::luo_forminput_painike(array(Attr::classs("inline-block")), array(Attr::classs("btn btn-" . Kokonaisuusnakymat::$btn_type_general . " btn-" . Kokonaisuusnakymat::$btn_size_general), Attr::name(Toimintonimet::$kokonaisuustoiminto), Attr::value(Painikkeet::$UUSI_KOKON_VALUE), Attr::id("uusi_kokon_painike")))); return $button; }
/** * * @param type $links * @param type $content * @param type $right_bar_content * @param type $number_of_col number of columns * @param bool $sidenav_fixed if true, the sidebar will be fixed * @return type */ function create_sidenavs_and_content_row($links, $content, $right_bar_content, $number_of_col, $sidenav_fixed) { // Checks the number parameter: if (!is_numeric($number_of_col) || $number_of_col != 1 && $number_of_col != 2 && $number_of_col != 3) { $number_of_col = 2; } $right_nav = ""; $range_1 = "xs"; // lg/md/sm/xs $range_2 = "sm"; // lg/md/sm/xs $range_3 = "lg"; // lg/md/sm/xs $sidebarwidth_1 = 4; $sidebarwidth_2 = 3; $sidebarwidth_3 = 3; $main_width_1 = 12; // Bootstrap columns small screen $main_width_2 = 12 - $sidebarwidth_2; // Bootstrap columns bigger screen $main_width_3 = 12 - $sidebarwidth_3; // Bootstrap columns big screen $left_nav_attr_array = array(Attr::classs("col-" . $range_1 . "-" . $sidebarwidth_1 . " col-" . $range_2 . "-" . $sidebarwidth_2 . " " . " col-" . $range_3 . "-" . $sidebarwidth_3 . " " . "sidenav sidebar-offcanvas text-left"), Attr::id("sidenav-left")); if ($sidenav_fixed) { array_push($left_nav_attr_array, Attr::BS_data_spy("affix")); } $left_nav = Html::luo_div($links, $left_nav_attr_array); if ($number_of_col === 1) { $left_nav = ""; $main_width_2 = 12; } else { if ($number_of_col === 3) { $right_nav = Html::luo_div($right_bar_content, array(Attr::classs("col-" . $range_1 . "-" . $sidebarwidth_1 . " col-" . $range_2 . "-" . $sidebarwidth_2 . " col-" . $range_3 . "-" . $sidebarwidth_3))); $main_width_2 -= 2; // Bootstrap columns bigger screen $main_width_1 -= 2; // Bootstrap columns small screen } } $main = Html::luo_div(Html::p(array(Attr::classs("pull-left visible-xs")), Html::button(array(Attr::classs("btn btn-warning btn-xs"), Attr::BS_data_toggle("offcanvas"), Attr::title(Painikkeet::$toggle_sidenav_title)), "<>")) . $content, array(Attr::classs("col-" . $range_1 . "-" . $main_width_1 . " " . "col-" . $range_2 . "-" . $main_width_2 . " " . "col-" . $range_3 . "-" . $main_width_3 . " " . "main_content text-left"), Attr::id("main_content"))); $row = Html::luo_div(Html::luo_div($left_nav . $main . $right_nav, array(Attr::classs("row row-offcanvas " . "row-offcanvas-left"))), array(Attr::classs("container-fluid text-center"))); return $row; }
/** * Creates the html for the footer. */ function create_footer() { $text = Html::luo_div(create_copyright(), array(Attr::classs("container-fluid text-center"), Attr::id("footer"))); return $text; }
/** * Palauttaa koosteen elementtiryhmälomakkeen koodin. Jos $elementtiryhma- * parametri löytyy tietokannasta, on kysymys vanhan muokkaamisesta, muuten * uuden koosteen luomisesta. * @param Kooste $kooste Kooste-luokan olio, jonka elementeistä tehdään ryhmää. * @param Elementtiryhma $elementtiryhma Elementtiryhma-luokan olio. * @param Parametrit $parametrit Parametrit-luokan olio. * @param array $elementit Koosteen sellaiset elementit, joihin käyttäjällä * on vähintään katseluoikeus. */ public function nayta_elemryhmalomake($kooste, $elementtiryhma, $parametrit, $elementit) { $sisalto = ""; $elemryhma_kooste_id = ""; $elemryhma_tunnus = ""; $elemryhma_nimi = ""; $elemryhma_selitys = ""; $elemryhma_id = ""; // Sisältää linkit ryhmän vanhoihin elementteihin (ennen nykyisiä muutoksia). $vanhat_elementtilinkit = array(); $tekstikentan_lev = 55; $tekstiruudun_lev = 57; $uuden_luominen = true; $empty_array = array(); // Asetetaan mahdolliset vanhat arvot kohdilleen: if ($elementtiryhma instanceof Elementtiryhma && $elementtiryhma->olio_loytyi_tietokannasta) { $uuden_luominen = false; // Perustiedot: $elemryhma_kooste_id = $elementtiryhma->get_arvo(Elementtiryhma::$sarakenimi_kooste_id); $elemryhma_tunnus = $elementtiryhma->get_arvo(Elementtiryhma::$sarakenimi_tunnus); // Alla ovat sen takia, ettei ala kehittämään mitään ylim. muokatessa. $elemryhma_nimi = htmlspecialchars(stripslashes($elementtiryhma->get_arvo(Elementtiryhma::$sarakenimi_nimi)), ENT_QUOTES, "UTF-8", true); $elemryhma_selitys = htmlspecialchars(stripslashes($elementtiryhma->get_arvo(Elementtiryhma::$sarakenimi_selitys)), ENT_QUOTES, "UTF-8", true); $lomakeotsikko = Html::luo_otsikko(Tekstit::$elemryhma_lomakeotsikko_muokkaus, $empty_array, 1); $elemryhma_id = $elementtiryhma->get_id(); $vanhat_elementtilinkit = $elementtiryhma->hae_linkit(); } else { // Uusi elementtiryhmä $elemryhma_nimi = $parametrit->elemryhma_nimi; $elemryhma_tunnus = $parametrit->elemryhma_tunnus; $elemryhma_kooste_id = $parametrit->elemryhma_kooste_id; $elemryhma_selitys = $parametrit->elemryhma_selitys; $lomakeotsikko = Html::luo_otsikko(Tekstit::$elemryhma_lomakeotsikko_uusi, $empty_array, 1); $elemryhma_id = Elementtiryhma::$MUUTTUJAA_EI_MAARITELTY; // Arvo ei_maaritelty (-2) ei näytä kivalta, joten muutetaan se // tyhjäksi. Huomaa &, ilman sitä ei toimi.. $syotteet = array(&$elemryhma_nimi, &$elemryhma_selitys); for ($i = 0; $i < sizeof($syotteet); $i++) { if ($syotteet[$i] == Kooste::$MUUTTUJAA_EI_MAARITELTY) { $syotteet[$i] = ""; } } } // Luodaan lomakkeen osat rivi kerrallaan (taulukkoasettelu): $nimirivi = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_label_for(Koostenakymat::$elemryhmalomake_nimikenttaid, Tekstit::$elemryhmalomake_nimi . " *: ", $empty_array), $empty_array) . Html::luo_tablesolu(Html::luo_input(array(Attr::name(Koostekontrolleri::$elemryhma_name_nimi), Attr::size($tekstikentan_lev), Attr::max_length(100), Attr::id(Koostenakymat::$elemryhmalomake_nimikenttaid), Attr::value($elemryhma_nimi))), array(Attr::colspan(2))), array(Attr::title(Tekstit::$elemryhmalomake_nimi_title))); // rivi // Tyyppirivi (uusi hieno metodi Asetuspohjan avulla: $tunnukset = new Elemryhmatunnukset(); $select_maaritteet = array(Attr::name(Koostekontrolleri::$elemryhma_name_tunnus)); $option_maaritteet = $empty_array; $oletusvalinta_arvo = $elemryhma_tunnus; $otsikko = ""; // Asetetaan erikseen. $tunnusvalikko = $tunnukset->luo_pudotusvalikko($select_maaritteet, $option_maaritteet, $oletusvalinta_arvo, $otsikko); $tunnusrivi = Html::luo_tablerivi(Html::luo_tablesolu(Tekstit::$elemryhmalomake_tunnus . ": ", $empty_array) . Html::luo_tablesolu($tunnusvalikko, array(Attr::colspan(2))), $empty_array); // Selitysrivi: $selitysrivi = Html::luo_tablerivi(Html::luo_tablesolu(Html::luo_label_for(Koostenakymat::$elemryhmalomake_selityskenttaid, Tekstit::$elemryhmalomake_selitys . ": ", $empty_array), $empty_array) . Html::luo_tablesolu(Html::luo_textarea($elemryhma_selitys, array(Attr::name(Koostekontrolleri::$elemryhma_name_selitys), Attr::cols($tekstiruudun_lev), Attr::rows(9), Attr::id(Koostenakymat::$elemryhmalomake_selityskenttaid))), array(Attr::colspan(2))), array(Attr::title(Tekstit::$elemryhmalomake_selitys_title))); // rivi // // Elementit, joista voi valita sopivat. Ensin otsikko, sitten loput: $elementtirivit = Html::luo_tablerivi(Html::luo_tablesolu("", $empty_array) . Html::luo_tablesolu(Html::luo_b(Tekstit::$elemryhma_elemvalintaotsikko . ": ", $empty_array), array(Attr::colspan(2))), $empty_array); // Täällä muokkauksen yhteydessä käydään läpi aina vanhat linkit, // jotta osataan entiset valinnat asettaa kohdalleen. foreach ($elementit as $elementti) { if ($elementti instanceof Elementti) { $on_valittu = false; // Onko ennestään ryhmässä vai ei. if (!$uuden_luominen) { foreach ($vanhat_elementtilinkit as $linkki) { if ($linkki->get_arvo(Elementtiryhmalinkki::$sarakenimi_elementti_id) + 0 === $elementti->get_id() + 0) { $on_valittu = true; break; } } } // CheckBox attributes: $maaritteet = array(Attr::id("elem" . $elementti->get_id()), Attr::name(Koostekontrolleri::$elemryhma_name_elementtivalinnat . "[]"), Attr::value($elementti->get_id())); if ($on_valittu) { array_push($maaritteet, Attr::checked()); } // Luodaan rivi jokaista elementtiä kohti: $elementtirivit .= Html::luo_tablerivi(Html::luo_tablesolu("", $empty_array) . Html::luo_tablesolu(Html::luo_label_for("elem" . $elementti->get_id(), $elementti->hae_otsikko() . " ", $empty_array), $empty_array) . Html::luo_tablesolu(Html::luo_checkbox($maaritteet), $empty_array), $empty_array); } } //====================================================================== //====================================================================== // Luodaan vielä tallennuspainike: if ($uuden_luominen) { $painike_value = Painikkeet::$kooste_tallenna_uusi_ryhmittely_value; $painike_title = Painikkeet::$kooste_tallenna_uusi_ryhmittely_title; $form_action = "index.php?" . Koostekontrolleri::$kooste_name_id . "=" . $kooste->get_id(); // Paluupainike: $paluupainike = $this->luo_paluu_koosteeseen_nayttopainike($kooste); } else { $painike_value = Painikkeet::$kooste_tallenna_ryhmittelymuokkaus_value; $painike_title = Painikkeet::$kooste_tallenna_ryhmittelymuokkaus_title; $form_action = "index.php?" . Koostekontrolleri::$kooste_name_id . "=" . $kooste->get_id() . "&" . Koostekontrolleri::$elemryhma_name_id . "=" . $elementtiryhma->get_id(); // Paluupainike: $paluupainike = $this->nayta_painike_paluu_elementtiryhmaan($kooste->get_id(), $elemryhma_id); } $tallennuspainike = Html::luo_input(array(Attr::type("submit"), Attr::value($painike_value), Attr::name(Toimintonimet::$koostetoiminto), Attr::title($painike_title), Attr::classs("btn btn-" . Koostenakymat::$btn_type_summary . " btn-" . Koostenakymat::$btn_size_summary))); $tallennuspainikerivi = Html::luo_tablerivi(Html::luo_tablesolu($tallennuspainike, array(Attr::colspan(3))), $empty_array); // rivi //====================================================================== $taulukko = Html::luo_table($nimirivi . $tunnusrivi . $selitysrivi . $elementtirivit . $tallennuspainikerivi, $empty_array); $sisalto .= $lomakeotsikko . $taulukko; $koodi = Html::luo_form($sisalto, array(Attr::classs("elemryhmalomake"), Attr::action($form_action), Attr::method("post"), Attr::onsubmit("tarkista_arvot_elemryhma", array(Koostenakymat::$elemryhmalomake_nimikenttaid, Tekstit::$elemryhma_virheilm_syotevika)))); return $koodi . $paluupainike; }
/** * Palauttaa tiettyihin (tietyn tehtävän) ratkaisujen html-koodin, joka * sisältää tarvittavat rakenteet ratkaisujen piilottamista ja näyttämistä * varten. * @param type $ratkaisut * @param boolean $tulostus True, jos halutaan tulostushtml. Muuten normi. * @param int $omaid Käyttäjän tunniste. * @param Elementti $tehtavaelem Elementti-luokan olio. Ratkaisuja ei * käsitellä kiinteinä elementteinä, vaan pikemminkin tehtävä-elementin * ominaisuutena, joka haetaan dynaamisesti tietokannasta tarvittaessa. */ public function luo_tehtavan_ratkaisut_koodi($ratkaisut, $tulostus, $omaid, $tehtavaelem) { $id_teht = "_tuntematon"; $class_arvo = ""; $lask = 0; $pal = ""; foreach ($ratkaisut as $ratk) { if ($ratk instanceof Ratkaisu) { $painikkeet = array(); // Ei painikkeita nyt. // Haetaan käyttäjän oikeudet: $kohdeoikeudet = Henkilo::hae_kayttajan_kohdeoikeudet($ratk->getHenkiloId(), $omaid, Oliotyyppi::$RATKAISU, $ratk->getId(), $this->get_tietokantaolio()); // Lisätään muutospainike vain, jos oikeudet sallivat eikä tulostus: if (!$tulostus) { if ($kohdeoikeudet >= Lisavaltuudet::$SAA_MUOKATA_EI_POISTAA) { if ($ratk->getNakyvyys() + 0 === Nakyvyys::$JULKINEN) { $ratk->setNakyvyysmerkkiPublic(); } else { $ratk->setNakyvyysmerkkiPrivate(); } $muokkausnappi = $this->ratkaisunakymat->luo_muokkauspainike($ratk, $tehtavaelem); array_push($painikkeet, $muokkausnappi); } } if ($lask === 0) { $id_teht = $ratk->getTeht_id(); } if ($tulostus) { $pal .= $this->ratkaisunakymat->luo_koostenakyma_tulostus($ratk, $painikkeet); $class_arvo = "elemtehtavan_ratkaisut_tulostus"; } else { $pal .= $this->ratkaisunakymat->luo_koostenakyma($ratk, $painikkeet); $class_arvo = "elemtehtavan_ratkaisut"; } } } $palaute = Html::luo_div($pal, array(Attr::classs($class_arvo), Attr::style("display:none"), Attr::id("ratkaisut_teht" . $id_teht))); return $palaute; }
$url = ""; } } } } } // Kieli- taso- ja oppiainevalikot: if ($palauteolio->get_valikkonaytto()) { // Lisätään pikapainikkeet koulutason muuttamiseen: $show_curr = false; $ylapalkkipainikkeet = $kokonaisuusnakymat->create_level_buttons(Koulutasot::hae_koulutasojen_arvot(), $parametriolio->taso_kokon, $show_curr, true); // Lisätään koostepainike täällä, koska se on luontevasti samassa // paikassa kuin oppiainetiedot: array_push($ylapalkkipainikkeet, $kokonaisuusnakymat->create_summary_button()); // muut valikot: $valikot = Html::form(array(Attr::classs("navbar-form"), Attr::id("kielivalikko")), Html::div(array(Attr::classs("form-group")), $kokonaisuusnakymat->nayta_kielivalikko($parametriolio->get_kieli_id()) . " " . $kokonaisuusnakymat->nayta_oppiainevalikko($parametriolio->get_oppiaine_kokon()) . " " . $kokonaisuusnakymat->nayta_tasovalikko($parametriolio->get_taso_kokon()) . " " . $kokonaisuusnakymat->nayta_nayttotapavalikko($parametriolio->get_kokonaisuuksien_nayttotapa())) . Html::luo_input(array(Attr::type("submit"), Attr::classs("btn btn-default"), Attr::name(Toimintonimet::$kokonaisuustoiminto), Attr::value("->")))); } else { $valikot = ""; } // Muokattu näkyviin: if ($palauteolio->get_muokatun_id() > -1) { $parametriolio->id_kokon = $palauteolio->get_muokatun_id(); } /* Lisätään pari painiketta, jotka saavat olla aina näkyvissä tehtävissä ja ratkaisuissa: */ /* Tämän avulla saadaan sisältö-laatikko levennettyä esim. * videotykkiesitystä varten. Toimii nyt vain fixed-näytöllä.*/ if ($palauteolio->get_naytettava_oliotyyppi() == Palaute::$NAYTETTAVA_OLIOTYYPPI_TEHTAVA || $palauteolio->get_naytettava_oliotyyppi() == Palaute::$NAYTETTAVA_OLIOTYYPPI_RATKAISU) { /*$suurenna_nappi = "<button type='button' id='suurenna_nappi'". "onclick='suurenna()' title='".Painikkeet::$SUURENNA_title."'>". Painikkeet::$SUURENNA_value."</button>";
/** * 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; }