/** * 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 Zend Form 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(); $closingBracket = $this->getInlineClosingBracket(); if ($element->isChecked()) { $attributes['checked'] = 'checked'; } if ($element->getAttribute('class') != 'input-checkbox') { $rendered = sprintf('<input %s%s', $this->createAttributesString($attributes), $closingBracket); } else { if ($element->getAttribute('id') == '') { $element->setAttribute('id', 'checkbox-' . uniqid()); } unset($attributes['class']); $rendered = sprintf('<span class="input-checkbox"><input %s%s<label for="%s"></label></span>', $this->createAttributesString($attributes), $closingBracket, $element->getAttribute('id')); } return $rendered; }
/** * @see \Zend\Form\View\Helper\FormCheckbox::render() * @param \Zend\Form\ElementInterface $oElement * @throws \LogicException * @throws \InvalidArgumentException * @return string */ public function render(\Zend\Form\ElementInterface $oElement) { if (!$oElement instanceof \Zend\Form\Element\Checkbox) { throw new \InvalidArgumentException(sprintf('%s requires that the element is of type Zend\\Form\\Element\\Checkbox', __METHOD__)); } if (($sName = $oElement->getName()) !== 0 && empty($sName)) { throw new \LogicException(sprintf('%s requires that the element has an assigned name; none discovered', __METHOD__)); } $aAttributes = $oElement->getAttributes(); $aAttributes['name'] = $sName; $aAttributes['type'] = $this->getInputType(); $aAttributes['value'] = $oElement->getCheckedValue(); $sClosingBracket = $this->getInlineClosingBracket(); if ($oElement->isChecked()) { $aAttributes['checked'] = 'checked'; } //Render label $sLabelOpen = $sLabelClose = $sLabelContent = ''; //Render label and visible element if ($sLabelContent = $oElement->getLabel()) { if ($oTranslator = $this->getTranslator()) { $sLabelContent = $oTranslator->translate($sLabelContent, $this->getTranslatorTextDomain()); } $oLabelHelper = $this->getLabelHelper(); $sLabelOpen = $oLabelHelper->openTag($oElement->getLabelAttributes() ?: null); $sLabelClose = $oLabelHelper->closeTag(); } //Render checkbox $sElementContent = sprintf('<input %s%s', $this->createAttributesString($aAttributes), $sClosingBracket); //Add label markup if ($this->getLabelPosition($oElement) === \Zend\Form\View\Helper\FormRow::LABEL_PREPEND) { $sElementContent = $sLabelOpen . ($sLabelContent ? rtrim($sLabelContent) . ' ' : '') . $sElementContent . $sLabelClose; } else { $sElementContent = $sLabelOpen . $sElementContent . ($sLabelContent ? ' ' . ltrim($sLabelContent) : '') . $sLabelClose; } //Render hidden input if ($oElement->useHiddenElement()) { $sElementContent = sprintf('<input type="hidden" %s%s', $this->createAttributesString(array('name' => $aAttributes['name'], 'value' => $oElement->getUncheckedValue())), $sClosingBracket) . $sElementContent; } return $sElementContent; }
/** * 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 && !$element instanceof ZendCheckboxElement) { throw new Exception\InvalidArgumentException(sprintf('%s requires that the element is of type ZfTwitterBootstrap\\Form\\Element\\Checkbox or 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(); $closingBracket = $this->getInlineClosingBracket(); if ($element->isChecked()) { $attributes['checked'] = 'checked'; } $rendered = sprintf('<input %s%s', $this->createAttributesString($attributes), $closingBracket); 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 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(); $closingBracket = $this->getInlineClosingBracket(); if ($element->isChecked()) { $attributes['checked'] = 'checked'; } $input = sprintf('<input %s%s', $this->createAttributesString($attributes), $closingBracket); $escapeHtmlHelper = $this->getEscapeHtmlHelper(); $labelHelper = $this->getLabelHelper(); $labelClose = $labelHelper->closeTag(); $labelPosition = $this->getLabelPosition(); $globalLabelAttributes = $element->getLabelAttributes(); if (empty($globalLabelAttributes)) { $globalLabelAttributes = $this->labelAttributes; } $label = $element->getAttribute('description') ?: $element->getLabel(); $labelAttributes = $this->labelAttributes ?: $element->getLabelAttributes(); if (null !== ($translator = $this->getTranslator())) { $label = $translator->translate($label, $this->getTranslatorTextDomain()); } $label = $escapeHtmlHelper($label); $labelOpen = $labelHelper->openTag($labelAttributes); $template = $labelOpen . '%s%s' . $labelClose; switch ($labelPosition) { case static::LABEL_PREPEND: $rendered = sprintf($template, $label, $input); break; case static::LABEL_APPEND: default: $rendered = sprintf($template, $input, $label); break; } // Render hidden element $useHiddenElement = null !== $this->useHiddenElement ? $this->useHiddenElement : (method_exists($element, 'useHiddenElement') ? $element->useHiddenElement() : false); if ($useHiddenElement) { $hiddenAttributes = array('name' => $attributes['name'], 'value' => $element->getUncheckedValue()); $rendered = sprintf('<input type="hidden" %s%s', $this->createAttributesString($hiddenAttributes), $closingBracket) . $rendered; } return $rendered; }