static function create($ht = false, &$errors = array()) { $inst = parent::create($ht); $inst->set('created', new SqlFunction('NOW')); if (isset($ht['properties'])) { $inst->save(); $ht['properties']['type'] = 'L' . $inst->getId(); $form = DynamicForm::create($ht['properties']); $form->save(); } if (isset($ht['configuration'])) { $inst->save(); $c = new Config('list.' . $inst->getId()); $c->set('configuration', JsonDataEncoder::encode($ht['configuration'])); } if (isset($ht['items'])) { $inst->save(); foreach ($ht['items'] as $i) { $i['list_id'] = $inst->getId(); $item = DynamicListItem::create($i); $item->save(); } } return $inst; }
} elseif ($i > 0) { $warn = "{$i} of {$count} selected lists deleted"; } elseif (!$errors['err']) { $errors['err'] = 'Unable to delete selected custom lists' . ' — they may be in use on a custom form'; } break; } } break; } if ($list) { for ($i = 0; isset($_POST["prop-sort-new-{$i}"]); $i++) { if (!$_POST["value-new-{$i}"]) { continue; } $item = DynamicListItem::create(array('list_id' => $list->get('id'), 'sort' => $_POST["sort-new-{$i}"], 'value' => $_POST["value-new-{$i}"], 'extra' => $_POST["extra-new-{$i}"])); $item->save(); } # Invalidate items cache $list->_items = false; } if ($form) { for ($i = 0; isset($_POST["prop-sort-new-{$i}"]); $i++) { if (!$_POST["prop-label-new-{$i}"]) { continue; } $field = DynamicFormField::create(array('form_id' => $form->get('id'), 'sort' => $_POST["prop-sort-new-{$i}"] ? $_POST["prop-sort-new-{$i}"] : ++$max_sort, 'label' => $_POST["prop-label-new-{$i}"], 'type' => $_POST["type-new-{$i}"], 'name' => $_POST["name-new-{$i}"])); $field->setForm($form); if ($field->isValid()) { $field->save(); } else {