/** * 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; }
/** * 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; }
/** * 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; }