Example #1
0
 /**
  * Hakee koostelomakkeeseen valittavat elementit ja palauttaa tiedot xml-muodossa.
  */
 function hae_elementit($parametriolio, $koostekontrolleri, $tietokantaolio, $koodaus)
 {
     $xml = "";
     $kooste_kieli = $parametriolio->koostelomake_valittavat_kieli;
     $kooste_taso = $parametriolio->koostelomake_valittavat_taso;
     $kooste_oppiaine = $parametriolio->koostelomake_valittavat_oppiaine;
     $kokonaisuudet = $koostekontrolleri->hae_koostelomakkeen_kokonaisuudet($kooste_kieli, $kooste_taso, $kooste_oppiaine);
     // Jos kysymys on muokkauksesta, pitää koosteeseen kuuluvat kokonaisuudet
     // merkitä valituiksi ja sitä varten tarvitaan elementit:
     $kooste = new Kooste($parametriolio->kooste_id, $tietokantaolio);
     if ($kooste->olio_loytyi_tietokannasta) {
         $valitut_elementit = $kooste->hae_elementit();
         $koostekontrolleri->merkitse_valitut($kokonaisuudet, $valitut_elementit);
     }
     $elem_html = $koostekontrolleri->hae_elementtilista($kokonaisuudet, false);
     $xml = '<?xml version="1.0" encoding="' . $koodaus . '"?>' . '<linkit>' . '<isannan_id>' . Koostekontrolleri::$koostelom_elemtaulukkoid . '</isannan_id>' . '<html>' . htmlspecialchars($elem_html) . '</html>' . '</linkit>';
     return $xml;
 }
 /**
  * Hakee elem_id:n koosteen ja viittausolion perusteella, eli siis jos
  * on olemassa elementti tällainen. Palauttaa id tai arvon 
  * Elementti::MUUTTUJA_EI_MAARITELTY, ellei elementtiä ole.
  * @param Kooste $kooste
  * @param type $viittausolio
  */
 public function hae_elem_id($kooste, $viittausolio)
 {
     $elem_id = Elementti::$MUUTTUJAA_EI_MAARITELTY;
     $elementit = $kooste->hae_elementit();
     foreach ($elementit as $elem) {
         if ($elem instanceof Elementti && $viittausolio instanceof Kokonaisuusolio) {
             if ($elem->get_arvo(Elementti::$sarakenimi_olio_id) + 0 === $viittausolio->get_id() && $elem->get_arvo(Elementti::$sarakenimi_oliotyyppi) + 0 === Oliotyyppi::$KOKONAISUUS) {
                 $elem_id = $elem->get_id();
             }
         } else {
             if ($elem instanceof Elementti && $viittausolio instanceof Tehtava) {
                 if ($elem->get_arvo(Elementti::$sarakenimi_olio_id) + 0 === $viittausolio->get_id() && $elem->get_arvo(Elementti::$sarakenimi_oliotyyppi) + 0 === Oliotyyppi::$TEHTAVA) {
                     $elem_id = $elem->get_id();
                 }
             } else {
                 if ($elem instanceof Elementti && $viittausolio instanceof Ratkaisu) {
                     if ($elem->get_arvo(Elementti::$sarakenimi_olio_id) + 0 === $viittausolio->get_id() && $elem->get_arvo(Elementti::$sarakenimi_oliotyyppi) + 0 === Oliotyyppi::$RATKAISU) {
                         $elem_id = $elem->get_id();
                     }
                 }
             }
         }
     }
     return $elem_id;
 }