name = $name; $this->value = $value; parent::__construct('checkbox', $this->name, $this->value); $this->setChecked(false); $this->addClass(ZBX_STYLE_CHECKBOX_RADIO); } /** * Check or uncheck the checkbox. * * @param bool $checked * * @return CCheckBox */ public function setChecked($checked) { $this->checked = $checked; if ($this->checked) { $this->attributes['checked'] = 'checked'; } else { $this->removeAttribute('checked'); } return $this; } /** * Set the label for the checkbox. * * @param string $label * * @return CCheckBox */ public function setLabel($label) { $this->label = $label; return $this; } /** * Get the label for the checkbox. * * @return string */ public function getLabel() { return $this->label; } /** * Set the label position for the checkbox. * * If $label_position is LABEL_POSITION_LEFT, then label text goes before the span that draws the checkbox: * * * If $label_position is LABEL_POSITION_RIGHT, then label text goes after the span that draws the checkbox: * * * @param int $label_position One of LABEL_POSITION_LEFT or LABEL_POSITION_RIGHT. * * @return CCheckBox */ public function setLabelPosition($label_position) { $this->label_position = $label_position; return $this; } /** * Allow to set value for not checked checkbox. * * @param string $value Value for unchecked state. * * @return CCheckBox */ public function setUncheckedValue($value) { $this->setAttribute('unchecked-value', $value); return $this; } public function toString($destroy = true) { $elements = ($this->label_position === self::LABEL_POSITION_LEFT) ? [$this->label, new CSpan()] : [new CSpan(), $this->label]; $label = (new CLabel($elements, $this->getId())) ->addClass($this->label_position === self::LABEL_POSITION_LEFT ? 'label-pos-left' : null); return parent::toString($destroy).$label->toString(); } }