/** * Render a form <input> element from the provided $element * * @param ElementInterface $element * @throws \Zend\Form\Exception\DomainException * @return string */ public function render(ElementInterface $element) { if (!$element instanceof CheckboxElement) { throw new Exception\InvalidArgumentException(sprintf('%s requires that the element is of type Zend\\Form\\Element\\Checkbox', __METHOD__)); } $name = $element->getName(); if (empty($name) && $name !== 0) { throw new Exception\DomainException(sprintf('%s requires that the element has an assigned name; none discovered', __METHOD__)); } $checkedValue = $element->getCheckedValue(); $uncheckedValue = $element->getUncheckedValue(); $useHiddenElement = $element->useHiddenElement(); $attributes = $element->getAttributes(); $attributes['name'] = $name; $attributes['checked'] = ''; $attributes['type'] = $this->getInputType(); $closingBracket = $this->getInlineClosingBracket(); $value = $element->getValue(); if ($value === $checkedValue) { $attributes['checked'] = 'checked'; } $attributes['value'] = $checkedValue; $rendered = sprintf('<input %s%s', $this->createAttributesString($attributes), $closingBracket); if ($useHiddenElement) { $hiddenAttributes = array('name' => $attributes['name'], 'value' => $uncheckedValue); $rendered = sprintf('<input type="hidden" %s%s', $this->createAttributesString($hiddenAttributes), $closingBracket) . $rendered; } return $rendered; }
/** * Render a form <input> element from the provided $element * * @param ElementInterface $element * @throws Exception\InvalidArgumentException * @throws Exception\DomainException * @return string */ public function render(ElementInterface $element) { if (!$element instanceof CheckboxElement) { throw new Exception\InvalidArgumentException(sprintf('%s requires that the element is of type Zend\\Form\\Element\\Checkbox', __METHOD__)); } $name = $element->getName(); if (empty($name) && $name !== 0) { throw new Exception\DomainException(sprintf('%s requires that the element has an assigned name; none discovered', __METHOD__)); } $attributes = $element->getAttributes(); $attributes['name'] = $name; $attributes['type'] = $this->getInputType(); $attributes['value'] = $element->getCheckedValue(); $attributes['class'] = 'sr-only'; $closingBracket = $this->getInlineClosingBracket(); if ($element->isChecked()) { $attributes['checked'] = 'checked'; } $input = sprintf('<input %s%s', $this->createAttributesString($attributes), $closingBracket); $label = $element->getLabel(); $rendered = '<div class="checkbox"><label class="checkbox-custom" data-initialize="checkbox">' . $input . '<span class="checkbox-label">' . $label . '</span>' . '</label></div>'; if ($element->useHiddenElement()) { $hiddenAttributes = array('name' => $attributes['name'], 'value' => $element->getUncheckedValue()); $rendered = sprintf('<input type="hidden" %s%s', $this->createAttributesString($hiddenAttributes), $closingBracket) . $rendered; } return $rendered; }
/** * Render a form <input> element from the provided $element * * @param ElementInterface $element * @throws \Zend\Form\Exception\DomainException * @return string */ public function render(ElementInterface $element) { $name = $element->getName(); if (empty($name)) { throw new Exception\DomainException(sprintf('%s requires that the element has an assigned name; none discovered', __METHOD__)); } $attributes = $element->getAttributes(); $attributes['name'] = $name; $attributes['checked'] = ''; $attributes['type'] = $this->getInputType(); $closingBracket = $this->getInlineClosingBracket(); if (isset($attributes['value']) && $attributes['value'] == $element->getCheckedValue()) { $attributes['checked'] = 'checked'; } $attributes['value'] = $element->getCheckedValue(); $rendered = sprintf('<input %s%s', $this->createAttributesString($attributes), $closingBracket); $useHiddenElement = $element->useHiddenElement(); if ($useHiddenElement) { $hiddenAttributes = array('name' => $attributes['name'], 'value' => $element->getUncheckedValue()); $rendered = sprintf('<input type="hidden" %s%s', $this->createAttributesString($hiddenAttributes), $closingBracket) . $rendered; } return $rendered; }
/** * Render a form <input> element from the provided $element * * @param ElementInterface $element * @param String $buttonContent * @throws Exception\DomainException * @return string */ public function render(ElementInterface $element, $buttonContent = null) { if (null === $buttonContent) { $buttonContent = $element->getLabel(); if (null === $buttonContent) { throw new Exception\DomainException(sprintf('%s expects either button content as the second argument, ' . 'or that the element provided has a label value; neither found', __METHOD__)); } if (null !== ($translator = $this->getTranslator())) { $buttonContent = $translator->translate($buttonContent, $this->getTranslatorTextDomain()); } $element->setLabel(''); } $value = $element->getValue(); $checkedBoole = $value == 1 || $value == 'on'; $checkedClass = $checkedBoole ? 'active"' : ''; $hiddenElement = ''; if ($element->useHiddenElement()) { $hiddenAttributes = ['name' => $element->getName(), 'value' => $element->getUncheckedValue()]; $hiddenElement = sprintf('<input type="hidden" %s%s', $this->createAttributesString($hiddenAttributes), '>'); $element->setUseHiddenElement(false); } $buttonContent = $hiddenElement . PHP_EOL . '<div class="btn-group" data-toggle="buttons">' . PHP_EOL . '<label class="btn btn-default ' . $checkedClass . '">' . PHP_EOL . parent::render($element) . $buttonContent . PHP_EOL . '</label>' . PHP_EOL . '</div>' . PHP_EOL; return $buttonContent; }