/** * Näyttää ylläpitäjälle lomakkeen, josta käyttäjien valtuuksia voidaan * muuttaa. * @param Tietokantaolio $tietokantaolio */ function nayta_valtuuslomake($tietokantaolio) { // Haetaan tarvittavat henkilötiedot: $hakulause = "SELECT id, etunimi, sukunimi, valtuudet FROM henkilot"; $valtuustaulu = $tietokantaolio->tee_omahaku_oliotaulukkopalautteella($hakulause); $lomakehtml = "<div class='tietolomake'>" . "<p class='keskitys'><b>Käyttäjätiedot</b></p>" . "<table summary='uudet_tiedot' align='center'>" . "<tr><th>Nimi</th><th>Käyttöoikeus</th>" . "<th>Toimenpide</th></tr>"; if (sizeof($valtuustaulu) > 0) { foreach ($valtuustaulu as $henkilotiedot) { $lomakehtml .= "<tr>"; $lomakehtml .= "<td>" . $henkilotiedot->etunimi; $lomakehtml .= " " . $henkilotiedot->sukunimi . "</td>"; $lomakehtml .= "<td>" . Valtuudet::hae_valtuuden_kuvaus($henkilotiedot->valtuudet) . "</td>"; $lomakehtml .= "<td><form method='post'" . "action='{$_SERVER['PHP_SELF']}?henkilo_id={$henkilotiedot->id}'>" . "<input type='submit' name='erikoistoiminta'" . "value='" . Painikkeet::$muokkaa_valtuudet_value . "'/></form></td></tr>"; } $lomakehtml .= "<tr><td></td><td><form method='post'" . "action='{$_SERVER['PHP_SELF']}'>" . "<input type='submit' name='erikoistoiminta'" . "value='" . Painikkeet::$poistu_valtuuksista_value . "'/></form></td><td></td></tr>"; $lomakehtml .= "</table></div>"; } else { $lomakehtml = "Yhtään henkilöä ei löytynyt!"; } return $lomakehtml; }
/** * Palauttaa valikon html:n. * HUOM! Listasta jätetään muokatessa pois kokonaisuudet, jotka on * kyseisen luokan aliluokkia (muuten tulee tosi jänniä sotkuja). * Lisäksi myös kokonaisuus itse pitää poistaa listasta. (Nämä koskevat * muokkausta. Uuden luomisessa näitä ongelmia ei ole. Kaikki käyvät uudelle * yläkokonaisuuksiksi) * * * @param <type> $id_kokon * @param Tietokantaolio $tietokantaolio * @param <type> $ylakokonaisuuden_id_kokon * @param <type> $oppiaine * @param <type> $kieli_id * @param <type> $taso * @param <type> $uusi * @param <type> $omaid tarvitaan oliopuun hakua varten (muutos 13.12.2011) * @param Kokonaisuuskontrolleri $kokonaisuuskontrolleri tarvitaan oliopuun * haussa myös. * @return <type> */ function nayta_ylakokonaisuusvalikko($id_kokon, $tietokantaolio, &$ylakokonaisuuden_id_kokon, $oppiaine, $kieli_id, $taso, $uusi, $omaid, $kokonaisuuskontrolleri) { // Haetaan otsikot ja id:t: $hakulause = "SELECT id,otsikko\n FROM kokonaisuudet\n WHERE oppiaine={$oppiaine}\n AND taso = {$taso}\n AND kieli = {$kieli_id}\n ORDER BY otsikko"; /* AND (nakyvyys = ".Nakyvyys::$JULKINEN. " OR henkilo_id = $omaid)";*/ $osumat = $tietokantaolio->tee_omahaku_oliotaulukkopalautteella($hakulause); $sallitut = array(); // Sallitut valintaarvot // Muokkaustilassa poistetaan osumista kokonaisuusalipuu, ettei // viittaukset mene sekaisin: if (!$uusi) { $ekan_otsikko = ""; $kokonaisuudet = array(); $otsikkotaso = Kokonaisuusolio::$otsikkotaso_oletus; /* Ei tarvita */ $alipuu = $kokonaisuuskontrolleri->hae_kokonaisuusoliopuu($kokonaisuudet, $ekan_otsikko, $otsikkotaso, $kieli_id, $oppiaine, $taso, $id_kokon, $tietokantaolio, $omaid); foreach ($osumat as $ehdokas) { $ehdokas_sallittu = true; foreach ($alipuu as $kielletty) { if ($ehdokas->id == $kielletty->get_id()) { $ehdokas_sallittu = false; } } /* Tarkistetaan vielä, ettei itse juurikokonaisuus ole mukana * (tehdyn muutoksen jälkeen juurikok. ei ole enää mukana * alipuussa): */ if ($ehdokas->id == $id_kokon) { $ehdokas_sallittu = false; } /* Ellei löytynyt kiellettyjen listalta, lisätään valikkoon: */ if ($ehdokas_sallittu) { array_push($sallitut, $ehdokas); } } } else { // Uudelle kokonaisuudelle yläkokonaisuuden valinta on vapaa! $sallitut = $osumat; } // Luodaan taulukot tyhjine vaihtoehtoineen (jolloin ei yläkokonaisuutta): $arvot = array(-1); $nimet = array(Tekstit::$kokonlomake_ei_ylatasoa); // Viedään otsikot ja vastaavat arvot taulukoihin: if (sizeof($sallitut) != 0) { foreach ($sallitut as $kokonaisuus) { array_push($arvot, $kokonaisuus->id); array_push($nimet, $kokonaisuus->otsikko); } } $valikkohtml = ""; try { $name_arvo = "ylakokonaisuuden_id_kokon"; if ($uusi) { // Oletuksena viimeksi aktiivisen kokonaisuuden alle: $oletusvalinta_arvo = $id_kokon; } else { $oletusvalinta_arvo = $ylakokonaisuuden_id_kokon; } $otsikko = Tekstit::$ylakokonaisuusvalikko_otsikko; $valikkohtml .= Html::luo_pudotusvalikko($arvot, $nimet, $name_arvo, $oletusvalinta_arvo, $otsikko); } catch (Exception $poikkeus) { $valikkohtml = Tekstit::$virheilm_ylakokonaisuusvalikko . " (" . $poikkeus->getMessage() . ")"; } return $valikkohtml; }