Created
July 31, 2014 17:57
-
-
Save webdesign2be/270cada08d9e51e8b4d3 to your computer and use it in GitHub Desktop.
CheckboxSelectViewHelper TYPO3 CMS 6.1.0 - 6.2.99
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| namespace Sms\SmsBlog\ViewHelpers; | |
| /** | |
| * The form checkbox select view helper | |
| * | |
| * @scope prototype | |
| */ | |
| class CheckboxSelectViewHelper extends \TYPO3\CMS\Fluid\ViewHelpers\Form\SelectViewHelper { | |
| /** | |
| * @var mixed | |
| */ | |
| protected $selectedValue = NULL; | |
| public function render() { | |
| $options = $this->getOptions(); | |
| if (empty($options)) { | |
| $options = array('' => ''); | |
| } | |
| $this->setErrorClassAttribute(); | |
| $content = ''; | |
| // Register field name for each checkbox for the token generation. | |
| $content .= $this->renderHiddenFieldForEmptyValue(); | |
| foreach ($options as $option) { | |
| $this->registerFieldNameForFormTokenGeneration($option); | |
| } | |
| $content .= $this->renderCheckboxes($options); | |
| return $content; | |
| } | |
| /** | |
| * Render the checkboxes. | |
| * | |
| * @param array $options the options for the form. | |
| * @return string rendered checkboxes. | |
| */ | |
| protected function renderCheckboxes($options) { | |
| $output = ''; | |
| foreach ($options as $value => $label) { | |
| $isSelected = $this->isSelected($value); | |
| $output .= $this->renderCheckbox($value, $label, $isSelected) . chr(10); | |
| } | |
| return $output; | |
| } | |
| /** | |
| * Render one checkbox | |
| * | |
| * @param string $value value attribute of the checkbox (will be escaped) | |
| * @param string $label content of the checkbox (will be escaped) | |
| * @param boolean $isSelected specifies whether or not to add selected attribute | |
| * @return string the rendered checkbox | |
| */ | |
| protected function renderCheckbox($value, $label, $isSelected) { | |
| $output = '<label class="checkbox"><input type="checkbox" name="' . $this->getName() . '" value="' . htmlspecialchars($value) . '"'; | |
| if ($isSelected) { | |
| $output .= ' checked="checked"'; | |
| } | |
| $output .= '><span class="labeltext">' . htmlspecialchars($label) . '</span></label>'; | |
| return $output; | |
| } | |
| /** | |
| * Get the name of this form element. | |
| * Either returns arguments['name'], or the correct name for Object Access. | |
| * | |
| * In case property is something like bla.blubb (hierarchical), then [bla][blubb] is generated. | |
| * | |
| * @return string Name | |
| */ | |
| protected function getName() { | |
| $name = $this->getNameWithoutPrefix() . '[]'; | |
| return $this->prefixFieldName($name); | |
| } | |
| } | |
| ?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment