/** * 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; }
/** * Palauttaa koostelinkit ja toimintapainikkeet html-koodina. Huomaa: * Parametrina annetaan vain sellaiset elementit, joihin käyttäjällä * ainakin katsomisoikeudet. Tosin muokkausoikeudet pitää täällä vielä * erikseen selvittää (jos mahd muokata). Viittausolioissa on valmiina * numerointi, jolloin tulee samat kuin varsinaisessa sisällössä. * * @param Kooste $kooste Kooste-luokan olio * @param array $elementit Elementti-luokan oliot * @param array $viittausoliot Oliot, joihin elementit viittaavat. * @param bool $wrapped Jos true, niin palautteen ympärille lisätään div, * muuten ei. * @return type */ public function luo_koostelinkit($kooste, $elementit, $viittausoliot, $wrapped) { $html = ""; $maxpituus = 22; // Linkin kirjainten maksimimäärä. Muu leikataan. /*======================== käyttäjän oikeudet ( ========*/ //$koosteoikeudet = $kooste->hae_kayttajan_oikeudet($omaid); /*====================================================*/ // Varmistetaan, että elementtejä ja olioita on yhtä paljon: if (sizeof($elementit) === sizeof($viittausoliot)) { for ($i = 0; $i < sizeof($elementit); $i++) { $painike_alas = ""; $painike_ylos = ""; $olio = $viittausoliot[$i]; $elementti = $elementit[$i]; $html_raaka = $olio->getOtsikkomerkinta() . " "; if ($olio instanceof Kokonaisuusolio) { $html_raaka .= Yleismetodit::leikkaa_merkkijono($olio->getOtsikko(), $maxpituus); } else { if ($olio instanceof Tehtava) { $html_raaka .= Yleismetodit::leikkaa_merkkijono($olio->getOtsikko(), $maxpituus); } else { if ($olio instanceof Ratkaisu) { $html_raaka .= Yleismetodit::leikkaa_merkkijono($olio->getVastaus(), $maxpituus); } } } $linkki = Html::luo_a_linkto("#elem" . $elementti->get_id(), $html_raaka . " " . $painike_alas . $painike_ylos, array(Attr::classs("koostelinkki"))); $html .= Html::luo_div($linkki, array(Attr::title($elementti->hae_otsikko()))); } } else { $html = Tekstit::$kooste_virheilm_linkeissa_erimaara_elem_ja_olioita; } if ($wrapped) { $html_wrapped = Html::luo_div($html, array(Attr::id(Koostenakymat::$kooste_otsikkolinkit_id))); } else { // Not wrapped.. $html_wrapped = $html; } return $html_wrapped; }