Ejemplo n.º 1
0
 /**
  * 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;
 }