id=$p_id; $this->item=array(); $this->value=$value; $this->cnt=0; $this->default_value=-1; $this->style_box=""; $this->filter=""; $this->position="normal"; } public function get_id() { return $this->id; } public function set_id($id) { $this->id=$id; return $this; } public function get_item() { return $this->item; } public function get_default_value() { return $this->default_value; } public function set_item($item) { $this->item=$item; return $this; } public function set_default_value($default_value) { $this->default_value=$default_value; return $this; } public function get_position() { return $this->position; } public function set_position($position) { if (!in_array($position, array("normal", "in-absolute", "absolute"))) { throw new Exception("SB0005", EXC_PARAM_VALUE); } $this->position=$position; return $this; } protected function compute_position() { $list_id=sprintf('%s_list', $this->id); switch ($this->position) { case 'absolute': case "normal": case "in-absolute": // Show when click $javascript=sprintf(' $("%s_bt").onclick=function() { displaySelectBox("%s"); } ', $this->id, $this->id); break; default: break; } return $javascript; } function input() { $list_id=sprintf('%s_list', $this->id); // Show when click $javascript=$this->compute_position(); // display the button printf('', $this->id, $this->value); printf('', $this->id, $this->id, $this->default_value); printf('
', $this->id, $this->style_box); // Show the filter if there is one, if ($this->filter!="") { echo HtmlInput::filter_list($list_id); } // Print the list of possible options printf('"; echo "
"; // javascript : onclick on button echo ""; } function add_url($label, $url) { $this->item[$this->cnt]['label']=$label; $this->item[$this->cnt]['url']=$url; $this->item[$this->cnt]['type']="url"; $this->cnt++; } function add_javascript($label, $javascript,$replace=false) { $this->item[$this->cnt]['label']=$label; if ( $replace ) { $this->item[$this->cnt]['javascript']= sprintf("$('%s_bt').value='%s \u21E9';",$this->id,str_replace("'","",$label)). $javascript.";$('select_box{$this->id}').hide()"; } else { $this->item[$this->cnt]['javascript']=$javascript.";$('select_box{$this->id}').hide()"; } $this->item[$this->cnt]['type']="javascript"; $this->cnt++; } function add_value($label, $value) { $this->item[$this->cnt]['label']=$label; $this->item[$this->cnt]['update']=$value; $this->item[$this->cnt]['javascript']=sprintf(" $('%s').value='%s';$('%s_bt').value='%s \u21E9';$('select_box%s').hide()", $this->id, $value, $this->id, $label, $this->id); $this->item[$this->cnt]['type']='value'; $this->cnt++; } function add_input($p_label, HtmlInput $p_element) { /* $this->item[$this->cnt]['label']=$p_element->label; $this->item[$this->cnt]['value']=$p_element->value; $this->item[$this->cnt]['javascript']=$p_element->javascript; * */ $this->item[$this->cnt]['label']=$p_label; $this->item[$this->cnt]['input']=clone $p_element; $this->item[$this->cnt]['type']='input'; $this->cnt++; } function set_filter($p_filter) { $this->filter=$p_filter; } function get_filter() { return $this->filter; } }