예제 #1
0
 /**
  * Näyttää joukon lajiluokkia ja niiden nimet eri kielillä.
  * @param array $lajiluokat Sisältää kaikki lajiluokat olioina
  * @param <type> $painikkeet
  * @param <type> $on_admin TRUE, jos käyttäjällä admin-oikeudet
  * @return <type>
  */
 public static function nayta_lajiluokat($lajiluokat, $painikkeet, $on_admin)
 {
     // Haetaan kielten nimet ja arvot:
     $kielinimet = Kielet::hae_kielten_nimet();
     $kieliarvot = Kielet::hae_kielten_arvot();
     $sarakkeiden_lkm = sizeof($kieliarvot) + 1;
     $html = "<div class=''>";
     $html = "<div class=''>" . $painikkeet . "</div>";
     $html .= "<table class='tietotaulu'>";
     $html .= "<tr><td colspan=" . $sarakkeiden_lkm . "class='tietotauluotsikko'>" . Bongaustekstit::$lajiluokka_lajiluokkataulun_otsikko . "</td></tr>";
     $html .= "<tr>";
     foreach ($kielinimet as $kieli) {
         $html .= "<th>" . $kieli . "</th>";
     }
     $html .= "<th>" . Bongaustekstit::$lajiluokka_toimintapainikkeet . "</th>";
     $html .= "</tr>";
     // Haetaan sitten kuvaukset:
     $laskuri = 0;
     foreach ($lajiluokat as $lajiluokka) {
         if ($lajiluokka instanceof Lajiluokka) {
             // Pariton rivi eri värillä:
             if ($laskuri % 2 == 0) {
                 $html .= "<tr class='tietotaulu_parillinen_rivi'>";
             } else {
                 $html .= "<tr>";
             }
             // Painikkeet havaintojen siirtoon ja lajiluokan poistoon vain,
             // jos järkevää, eli kun havaintoja/kuvia on olemassa tai
             // poistossa ei ole :)
             $poistonappi = "";
             $siirtonappi = "";
             if ($on_admin) {
                 // Poistonappi:
                 if (!$lajiluokka->lajiin_kohdistuu_havaintoja() && !$lajiluokka->lajiin_kohdistuu_kuvia() && !$lajiluokka->lajilla_on_aliluokkia()) {
                     $id = "";
                     $class = "rinnakkain";
                     $value = Bongauspainikkeet::$LAJILUOKAT_POISTA_VALUE;
                     $title = Bongauspainikkeet::$LAJILUOKAT_POISTA_TITLE;
                     $onclick = "poista_lajiluokka(" . $lajiluokka->get_id() . ",\"" . Bongaustekstit::$lajiluokan_poisto_varmistuskysymys . "\",\"" . Bongaustekstit::$lajiluokan_poisto_perumisviesti . "\")";
                     $poistonappi = Html::luo_buttonpainike($id, $class, $value, $title, $onclick);
                 }
                 // Siirtonappi:
                 if ($lajiluokka->lajiin_kohdistuu_havaintoja() || $lajiluokka->lajiin_kohdistuu_kuvia()) {
                     $id = "";
                     $class = "rinnakkain";
                     $value = Bongauspainikkeet::$LAJILUOKAT_SIIRRA_HAVKUV_VALUE;
                     $title = Bongauspainikkeet::$LAJILUOKAT_SIIRRA_HAVKUV_TITLE;
                     $onclick = "hae_siirtolomake(" . $lajiluokka->get_id() . ")";
                     $siirtonappi = Html::luo_buttonpainike($id, $class, $value, $title, $onclick);
                 }
             }
             // Haetaan nimet muilla kielillä:
             $kuvaukset = $lajiluokka->hae_kuvaukset();
             // Kuvauksen sisältämä nimi pitää tulla oikeaan paikkaan
             // kielen mukaisesti. Ellei kuvausta löydy, jätetään tyhjä solu.
             // Tässä hyödynnetään sitä, että kuvaukset on järjestetty
             // kieli_id:n mukaisesti. Näin vältetään tupla for-lause.'
             $sarakkeiden_lkm = sizeof($kieliarvot);
             // Käännetään kuvaukset toisinpäin, eli pienin kieli_id
             // vikaksi. Kun tuo poisto on vain lopusta..
             $kuvaukset = array_reverse($kuvaukset);
             for ($i = 0; $i < $sarakkeiden_lkm; $i++) {
                 // Jokaisella solulla pitää olla oma erityinen id,
                 // jotta solu tunnistetaan:
                 $soluid = "nimisolu" . $laskuri . $i;
                 $id_koodi = "id='" . $soluid . "'";
                 // Soluihin lisätään onclick-määre, jotta niitä päästään
                 // muokkaamaan:
                 // 2. parametri -1 -> olemattoman olion id.
                 $onklikki = "onclick = 'hae_nimikuvauslomake(" . $kieliarvot[$i] . ",-1,\"" . $soluid . "\"," . $lajiluokka->get_id() . " )'";
                 $kielinimi = Kielet::hae_kielen_nimi($kieliarvot[$i]);
                 // Eka sarake on aina latina:
                 if ($i == 0) {
                     // Latinassa olio on lajiluokka, jonka id tarvitaan
                     // jatkossa. Tämä on aina olemassa.
                     $onklikki = "onclick = 'hae_nimikuvauslomake(" . $kieliarvot[$i] . "," . $lajiluokka->get_id() . ",\"" . $soluid . "\"," . $lajiluokka->get_id() . " )'";
                     $html .= "<td class='huomio'" . $id_koodi . $onklikki . " title='" . Bongauspainikkeet::$LAJILUOKAT_MUOKKAA_TITLE . " (" . $kielinimi . ")'>" . $lajiluokka->get_nimi_latina() . "</td>";
                 } else {
                     if (!empty($kuvaukset)) {
                         // Valitaan aina viimeinen taulukosta:
                         $kuvaus = $kuvaukset[sizeof($kuvaukset) - 1];
                         //$kuvaus = null;
                         if ($kuvaus instanceof Kuvaus && $kuvaus->get_kieli() == $kieliarvot[$i]) {
                             // Suomea ei päästetä muokkaamaan kuin admin:
                             if ($kieliarvot[$i] == Kielet::$SUOMI) {
                                 if ($on_admin) {
                                     $onklikki = "onclick = 'hae_nimikuvauslomake(" . $kuvaus->get_kieli() . "," . $kuvaus->get_id() . ",\"" . $soluid . "\"," . $lajiluokka->get_id() . " )'";
                                 } else {
                                     $onklikki = "onclick = 'nayta_viesti(\"" . Bongaustekstit::$lajiluokan_muok_ei_voi_suomenkiel . "\")'";
                                 }
                             } else {
                                 $onklikki = "onclick = 'hae_nimikuvauslomake(" . $kuvaus->get_kieli() . "," . $kuvaus->get_id() . ",\"" . $soluid . "\"," . $lajiluokka->get_id() . " )'";
                             }
                             $html .= "<td class='huomio' " . $id_koodi . $onklikki . " title='" . Bongauspainikkeet::$LAJILUOKAT_MUOKKAA_TITLE . " (" . $kielinimi . ")'>" . $kuvaus->get_nimi() . "</td>";
                             // Poistetaan vika eli jo käytetty kuvaus:
                             array_pop($kuvaukset);
                         } else {
                             $html .= "<td class='huomio' " . $id_koodi . $onklikki . " title='" . Bongauspainikkeet::$LAJILUOKAT_SYOTA_UUSI_TITLE . " (" . $kielinimi . ")'></td>";
                         }
                     } else {
                         $html .= "<td class='huomio' " . $id_koodi . $onklikki . "  title='" . Bongauspainikkeet::$LAJILUOKAT_SYOTA_UUSI_TITLE . " (" . $kielinimi . ")'></td>";
                     }
                 }
             }
             //Lisätään painikkeet:
             $html .= "<td>" . $siirtonappi . $poistonappi . "</td>";
             $html .= "</tr>";
             $laskuri++;
         }
     }
     $html .= "</table>";
     $html .= "</div>";
     // Lajiluokkalaatikon loppu
     return $html;
 }
예제 #2
0
 /**
  * Luo ja palauttaa kielivalikon html-koodin. Ei sisällä lomake- eli
  * form-tageja!
  * @param <type> $kieli
  */
 function nayta_kielivalikko($kieli)
 {
     $kielivalikkohtml = "";
     try {
         $arvot = Kielet::hae_kielten_arvot();
         $nimet = Kielet::hae_kielten_nimet();
         $name_arvo = "kieli_id";
         $oletusvalinta_arvo = $kieli;
         $otsikko = Tekstit::$kielivalikko_otsikko;
         $kielivalikkohtml .= Html::luo_pudotusvalikko($arvot, $nimet, $name_arvo, $oletusvalinta_arvo, $otsikko);
     } catch (Exception $poikkeus) {
         $kielivalikkohtml = Tekstit::$virheilm_kielivalikko . " (" . $poikkeus->getMessage() . ")";
     }
     return $kielivalikkohtml;
 }
예제 #3
0
 /**
  * Luo ja palauttaa kielivalikon html-koodin. Ei sisällä lomake- eli
  * form-tageja!
  * @param <type> $kieli
  * @param <type> $otsikko
  * @return <type>
  */
 public static function nayta_kielivalikko(&$kieli, $otsikko)
 {
     $kielivalikkohtml = "";
     try {
         $arvot = Kielet::hae_kielten_arvot();
         $nimet = Kielet::hae_kielten_nimet();
         $name_arvo = "kieli_kuv";
         $oletusvalinta_arvo = $kieli;
         $kielivalikkohtml .= Html::luo_pudotusvalikko($arvot, $nimet, $name_arvo, $oletusvalinta_arvo, $otsikko);
     } catch (Exception $poikkeus) {
         $kielivalikkohtml = Bongaustekstit::$kielivalikko_virheilm . " (" . $poikkeus->getMessage() . ")";
     }
     return $kielivalikkohtml;
 }