Ejemplo n.º 1
0
 public function testRequiredRuleMultipleValue()
 {
     $rule = new RequiredRule('this field is required');
     $field = new OptionsField('test', 'test', array(1 => 'apple', 2 => 'pear', 3 => 'cherry'));
     $field->setValue(array());
     $this->assertSame($rule->validate($field), false, 'Empty array');
     $field->setValue(null);
     $this->assertSame($rule->validate($field), false, 'Empty (null)');
 }
Ejemplo n.º 2
0
 public function testMaxLengthRuleMultipleValues()
 {
     $rule = new MaxLengthRule(2, 'too long');
     $field = new OptionsField('test', 'test', array(1 => 'apple', 2 => 'pear', 3 => 'cherry'));
     $field->setValue(array());
     $this->assertSame($rule->validate($field), true, 'Empty array');
     $field->setValue(null);
     $this->assertSame($rule->validate($field), true, 'Empty (null)');
     $field->setValue(array(1 => 'apple', 2 => 'pear'));
     $this->assertSame($rule->validate($field), true, 'Okay (2 entries)');
     $field->setValue(array(1 => 'apple', 2 => 'pear', 3 => 'cherry'));
     $this->assertSame($rule->validate($field), false, 'Too long (3 entries)');
 }
 public function testMaxLengthRuleMultipleValues()
 {
     $rule = new ValueBetweenRule(5, 10, 'The value has to be between 5 and 10');
     $field = new OptionsField('test', 'test', array(1 => 'apple', 2 => 'pear', 3 => 'cherry'));
     $field->setValue(array());
     $this->assertSame($rule->validate($field), true, 'Empty array');
     $field->setValue(null);
     $this->assertSame($rule->validate($field), true, 'Empty (null)');
     $field->setValue(array(1, 6, 7));
     $this->assertSame($rule->validate($field), false, '1 out of range, array(1, 6, 7)');
     $field->setValue(array(6, 7, 11));
     $this->assertSame($rule->validate($field), false, '11 out of range, array(6, 7, 11)');
     $field->setValue(array(6, 7, array(3, 12), 8));
     $this->assertSame($rule->validate($field), false, '3 out of range, array(6, 7, array(3, 12), 8)');
     $field->setValue(array(6, 7, array(5, 10), 8));
     $this->assertSame($rule->validate($field), true, 'Okay, array(6, 7, array(5, 10), 8)');
 }
    /**
     * @param OptionsField $field The field instance to render
     *
     * @return string The rendered field
     */
    public function render(OptionsField $field)
    {
        $html = '<ul class="assignment-of-rights">';
        foreach ($this->options as $modName => $rights) {
            $html .= '<li>
				<label><input type="checkbox" class="toggle-all"> ' . $modName . '</label>
				<ul>';
            foreach ($rights as $key => $label) {
                $checked = is_array($field->getValue()) && in_array($key, $field->getValue()) ? ' checked' : null;
                $html .= '<li><label><input type="checkbox" value="' . $key . '" name="' . $field->getName() . '[]"' . $checked . '> ' . $label . '</label>';
            }
            $html .= '</ul>
			</li>';
        }
        $html .= '</ul>';
        return $html;
    }
 /**
  * @param OptionsField $field The field instance to render
  * @return string The rendered field
  */
 public function render(OptionsField $field)
 {
     $html = '<ul' . $this->getAttributesAsHtml() . '>';
     $fieldName = $field->getName();
     $fieldValue = $field->getValue();
     $defaultAttributes = array('type' => 'radio', 'name' => $fieldName, 'value' => null);
     foreach ($field->getOptions() as $value => $data) {
         $defaultAttributes['value'] = $value;
         $attributesStr = '';
         if (isset($data['attributes']) === true && is_array($data['attributes']) === true) {
             foreach (array_merge($defaultAttributes, $data['attributes']) as $name => $value) {
                 $attributesStr .= ' ' . $name . '="' . (is_array($value) ? implode(' ', $value) : $value) . '"';
             }
         }
         $selected = $value == $fieldValue ? ' checked' : null;
         $html .= '<li><label><input type="radio" name="' . $fieldName . '" value="' . $value . '"' . $attributesStr . $selected . '> ' . $data['label'] . '</label></li>';
     }
     $html .= '</ul>';
     return $html;
 }
 /**
  * @param OptionsField $field
  * @return string
  * @throws \UnexpectedValueException
  */
 public function render(OptionsField $field)
 {
     $required = $field->hasRule('ch\\metanet\\formHandler\\rule\\RequiredRule') === true ? ' aria-required="true"' : null;
     $html = '<ul' . $this->getAttributesAsHtml() . '>';
     foreach ($field->getOptions() as $key => $val) {
         $label = $val;
         $htmlAttributes = '';
         $htmlBefore = null;
         $htmlAfter = null;
         if (is_array($val) === true) {
             $label = $val['label'];
             $htmlAfter = isset($val['html_after']) ? $val['html_after'] : null;
             $htmlBefore = isset($val['html_before']) ? $val['html_before'] : null;
             if (isset($val['attributes']) === true) {
                 foreach ($val['attributes'] as $attrName => $attrValue) {
                     $htmlAttributes .= ' ' . $attrName . '="' . $attrValue . '"';
                 }
             }
         }
         $attrId = ' id="' . $field->getName() . '-' . $key . '"';
         $checked = $key == $field->getValue() ? ' checked' : null;
         $html .= '<li>' . $htmlBefore . '<label><input type="radio" name="' . $field->getName() . '" value="' . $key . '"' . $attrId . $checked . $htmlAttributes . $required . '> ' . $label . '</label>' . $htmlAfter . '</li>';
     }
     $html .= '</ul>';
     return $html;
 }
 /**
  * @param OptionsField $field
  * @return string
  */
 public function render(OptionsField $field)
 {
     $required = $field->hasRule('ch\\metanet\\formHandler\\rule\\RequiredRule') === true ? ' aria-required="true"' : null;
     $optionsCount = count($field->getOptions());
     $fieldValue = (array) $field->getValue();
     $html = '<ul' . $this->getAttributesAsHtml() . '>';
     $fieldName = $optionsCount === 1 ? $field->getName() : $field->getName() . '[]';
     foreach ($field->getOptions() as $key => $val) {
         $attrId = ' id="' . $field->getName() . ($optionsCount !== 1 ? '-' . $key : null) . '"';
         $checked = in_array($key, $fieldValue) ? ' checked' : null;
         $html .= '<li><label><input type="checkbox" name="' . $fieldName . '" value="' . $key . '"' . $attrId . $checked . $required . '> ' . $val . '</label></li>';
     }
     $html .= '</ul>';
     return $html;
 }
Ejemplo n.º 8
0
 public function testIsValueEmpty()
 {
     $field = new OptionsField('field1', 'field1', array(1 => 'apple', 2 => 'pear'));
     $this->assertEquals($field->isValueEmpty(), true, 'Null value');
     $field->setValue(array());
     $this->assertEquals($field->isValueEmpty(), true, 'Empty array');
     $field->setValue(array(1));
     $this->assertEquals($field->isValueEmpty(), false, 'Non-empty array');
 }
 /**
  * @param OptionsField $field
  * @return string
  */
 public function render(OptionsField $field)
 {
     /** @var OptionsField $field */
     $fieldValue = is_array($field->getValue()) ? $field->getValue() : array();
     $html = '<select name="' . $field->getFormIdentifierAsString() . '[]" id="' . $field->getName() . '"' . $this->getAttributesAsHtml() . '>';
     $html .= $this->renderOptions($field->getOptions(), $fieldValue);
     $html .= '</select>';
     return $html;
 }
 /**
  * @param OptionsField $field The OptionField to render
  * @return string The HTML of the rendered select field
  */
 public function render(OptionsField $field)
 {
     $required = $field->hasRule('ch\\metanet\\formHandler\\rule\\RequiredRule') === true ? ' aria-required="true"' : null;
     $html = '<select name="' . $field->getFormIdentifierAsString() . '" id="' . $field->getName() . '"' . $this->getAttributesAsHtml() . $required . '>';
     // Render the alternate options structure if set else fallback to the fields options array
     $html .= $this->renderOptions(is_array($this->renderOptions) ? $this->renderOptions : $field->getOptions(), $field->getValue());
     $html .= '</select>';
     return $html;
 }
 /**
  * @param RightGroup $rightGroup
  */
 protected function prepareEditRightGroupForm(RightGroup $rightGroup)
 {
     if ($this->form instanceof CmsForm) {
         return;
     }
     $lang = $this->cmsController->getLocaleHandler()->getLanguage();
     $checkOptionsRights = array();
     $options = array();
     $allModules = $this->moduleModel->getAllModules();
     foreach ($allModules as $mod) {
         if (isset($mod->manifest_content->rights) === false || count((array) $mod->manifest_content->rights) === 0) {
             continue;
         }
         $optionsTemp = array();
         foreach ($mod->manifest_content->rights as $key => $label) {
             $checkOptionsRights[$key] = $key;
             $optionsTemp[$key] = isset($label->{$lang}) ? $label->{$lang} : $label->en;
         }
         $options[isset($mod->manifest_content->name->{$lang}) ? $mod->manifest_content->name->{$lang} : $mod->manifest_content->name->en] = $optionsTemp;
     }
     $this->form = new CmsForm();
     $this->form->setInputData(array_merge($_POST, $_GET));
     $fldName = new InputField('name', 'Name');
     $fldName->setValue($rightGroup->getGroupName());
     $fldName->addRule(new RequiredRule($this->translator->_d('backend', 'Please insert a group name')));
     $fldKey = new InputField('key', 'Key');
     $fldKey->setValue($rightGroup->getGroupKey());
     $fldKey->addRule(new RequiredRule($this->translator->_d('backend', 'Please insert a group key')));
     $fldRoot = new OptionsField('root', 'Root', array(1 => $this->translator->_d('backend', 'This group has root rights')));
     $fldRoot->setValue(array((int) $rightGroup->isRoot()));
     $fldRoot->setOptionsFieldRenderer(new CheckboxOptionsFieldRenderer());
     $fldRights = new OptionsField('rights', 'Rights', $checkOptionsRights);
     $fldRights->setOptionsFieldRenderer(new RightsOptionsFieldRenderer($options));
     $fldRights->setValue($rightGroup->getRights());
     $this->form->addFields(array($fldName, $fldKey, $fldRoot, $fldRights));
 }