/** * Luo label+input (type='checkbox') -elementit! Huom! $maar_array koskee * input-elementtiä. Label-elementti tarvitsee inputin id-arvon, joten * ellei sellaista ole, sellainen arvotaan ja lisätään input-elementille. * Label-elementille ei tässä voi asettaa määritteitä. Tarvittaessa voi * muuttaa lisäämällä toinen maaritetaulukko labelia varten. * * Muutos 5.1.2014: mahdollinen title-määrite lisätään myös labelille, mikä * on käyttäjäystävällistä. * * @param type $painiketeksti * @param type $maar_array * @return type */ public static function luo_labeled_checkbox($teksti, $maar_array) { $koodi = ""; // Varmistetaan, että taulukko kunnossa: if (!isset($maar_array) || !is_array($maar_array)) { $maar_array = array(); } // Jotta label-elementti voidaan kiinnittää valintapainikkeeseen, // tarvitaan tietää elementin id:n arvo. Ellei sellaista löydy, // luodaan sellainen (pitäisi olla yksilöllinen) $id = Attr::etsi_id($maar_array); if ($id === Attr::$EI_LOYTYNYT) { // Arvotaan luku väliltä 100000-1000000 $id = rand(100000, 1000000); // Lisätään id taulukkoon: array_push($maar_array, new Attr("id", $id, false)); } // Tarkistetaan title-määritteen olemassaolo ja jos löytyy, lisätään se // myös label-elementille: $maar_array_label = array(); $titlen_arvo = Attr::etsi_maarite("title", $maar_array); if ($titlen_arvo != Attr::$EI_LOYTYNYT) { array_push($maar_array_label, new Attr("title", $titlen_arvo, false)); } // Labelin koodi: $koodi .= Html::luo_label_for($id, $teksti, $maar_array_label); // Lisätään määritteisiin type='checkbox' $maar_array = Attr::lisaa_maarite(Attr::type("checkbox"), $maar_array); $koodi .= Html::luo_input($maar_array); return $koodi; }