/** * Hakee sen olion tietokannasta, johon parametrina annettu arvo (raaka-id) * viittaa ja palauttaa sen oikeantyyppisen luokan oliona * (Kokonaisuus, Tehtava, Ratkaisu,...). * * Palauttaa yllä mainitun tyyppisen olion, jonka tietojen löytymisen * tietokannasta tarkistetaan muuttujan "olio_loytyi_tietokannasta"-muuttujan * avulla. Ellei parametri ole hyvä, palautetaan arvo * $MUUTTUJAA_EI_MAARITELTY. * * * @param type $id_raaka * @param type * @param Tietokantaolio $tietokantaolio * @return \Ratkaisu */ public static function hae_viittausolio_id_raaka($id_raaka, $tietokantaolio) { $olio_id = Elementti::irrota_elem_olion_id($id_raaka); $oliotyyppi = Elementti::irrota_elem_olion_tyyppi($id_raaka); if ($oliotyyppi === Oliotyyppi::$KOKONAISUUS) { $taulunimi = Kokonaisuusolio::$taulunimi; $sarakenimi = Kokonaisuusolio::$SARAKENIMI_ID; $hakuarvo = $olio_id; $osuma = $tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo); if ($osuma == Tietokantaolio::$HAKU_PALAUTTI_TYHJAN) { $id = Kokonaisuusolio::$MUUTTUJAA_EI_MAARITELTY; } else { $id = $osuma->id; } $palautettava = new Kokonaisuusolio($id, $tietokantaolio); } else { if ($oliotyyppi === Oliotyyppi::$TEHTAVA) { $taulunimi = Tehtava::$taulunimi; $sarakenimi = Tehtava::$SARAKENIMI_ID; $hakuarvo = $olio_id; $osuma = $tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo); if ($osuma == Tietokantaolio::$HAKU_PALAUTTI_TYHJAN) { $id = Tehtava::$MUUTTUJAA_EI_MAARITELTY; } else { $id = $osuma->id; } $palautettava = new Tehtava($id, $tietokantaolio); } else { if ($oliotyyppi === Oliotyyppi::$RATKAISU) { $taulunimi = Ratkaisu::$taulunimi; $sarakenimi = Ratkaisu::$SARAKENIMI_ID; $hakuarvo = $olio_id; $osuma = $tietokantaolio->hae_eka_osuma_oliona($taulunimi, $sarakenimi, $hakuarvo); if ($osuma == Tietokantaolio::$HAKU_PALAUTTI_TYHJAN) { $id = Ratkaisu::$MUUTTUJAA_EI_MAARITELTY; } else { $id = $osuma->id; } $palautettava = new Ratkaisu($id, $tietokantaolio); } else { $palautettava = Elementti::$MUUTTUJAA_EI_MAARITELTY; } } } return $palautettava; }
/** * @param string $id_raaka Id value of the element (like teht_43) * @param Parametrit $parametriolio * @param Tehtavanakymat $tehtavanakymat * @param Kokonaisuusnakymat $kokonnakymat */ function show_element_preview($id_raaka, $parametriolio, $tehtavanakymat, $kokonnakymat) { $tietokantaolio = $parametriolio->get_tietokantaolio(); $omaid = $parametriolio->get_omaid(); // Let's find out the type of element: $type = Elementti::irrota_elem_olion_tyyppi($id_raaka); // Let's find out the id of the original object: $id = Elementti::irrota_elem_olion_id($id_raaka); if ($type === Oliotyyppi::$TEHTAVA) { // Luodaan uusi Tehtäväolio tietojen perusteella: $teht = new Tehtava($id, $tietokantaolio); $html = $tehtavanakymat->tulosta_esikatselu($omaid, $teht); } else { if ($type === Oliotyyppi::$KOKONAISUUS) { $kokon = new Kokonaisuusolio($id, $tietokantaolio); $html = $kokonnakymat->tulosta_esikatselu($kokon, $parametriolio); } else { $html = "Unknown type=" . $type . " and id=" . $id; } } //echo $output = str_replace(array("\r\n", "\r", "\n"), "", $html); return $html; }