Example #1
0
 /**
  * @param string $pluginName
  * @param \Ip\Form $form
  * @param array $options
  */
 public static function getOptionsForm($pluginName, $form, $options)
 {
     foreach ($options as $option) {
         if (empty($option['type'])) {
             $option['type'] = 'text';
         }
         if (in_array($option['type'], array('select', 'text', 'textarea', 'richText', 'color', 'range', 'checkbox', 'password'))) {
             $option['type'] = ucfirst($option['type']);
         }
         $className = $option['type'];
         if (class_exists($className)) {
             $newField = new $className($option);
         } else {
             $className = 'Ip\\Form\\Field\\' . $option['type'];
             if (class_exists($className)) {
                 $newField = new $className($option);
             }
         }
         if (!isset($newField)) {
             //field type is not recognised
             continue;
         }
         $default = isset($option['default']) ? $option['default'] : null;
         if (!empty($option['name'])) {
             $newField->setName($option['name']);
             $optionKey = "{$pluginName}.{$option['name']}";
             if ($newField instanceof \Ip\Form\FieldLang) {
                 $value = array();
                 foreach (ipContent()->getLanguages() as $language) {
                     $value[$language->getCode()] = ipGetOptionLang($optionKey, $language->getCode(), $default);
                 }
                 $newField->setValue($value);
             } else {
                 $newField->setValue(ipGetOption($optionKey, $default));
             }
         }
         $newField->setLabel(empty($option['label']) ? '' : $option['label']);
         if (!empty($option['note'])) {
             $newField->setNote($option['note']);
         }
         if (!empty($option['validators'])) {
             $newField->addValidator($option['validators']);
         }
         $form->addfield($newField);
     }
 }