function saveListItemProperties($item_id) { if (!($item = DynamicListItem::lookup($item_id))) { Http::response(404, 'No such list item'); } if (!$item->setConfiguration()) { include STAFFINC_DIR . 'templates/list-item-properties.tmpl.php'; } else { $item->save(); } }
protected function processRecord($record, $columnMap, &$results, $preview = false) { $class = $this->objectClass; $title = trim($record['Title']); $item = trim($record['ListItem']); $existingList = DynamicList::get_dynamic_list($title); if (!$existingList) { $existingList = new DynamicList(); $existingList->Title = $title; $existingList->write(); } // now add the item to that list $existingItem = DataObject::get_one('DynamicListItem', '"Title"=\'' . Convert::raw2sql($item) . '\' AND "ListID" = ' . (int) $existingList->ID); if (!$existingItem) { $existingItem = new DynamicListItem(); $existingItem->Title = $item; $existingItem->ListID = $existingList->ID; $existingItem->write(); } }
function export($value) { if ($value && is_numeric($value) && ($item = DynamicListItem::lookup($value))) { return $item->toString(); } return $value; }
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; }
function getFilterData() { // Start with the filter data for the list item as the [0] index $data = array(parent::getFilterData()); if ($v = $this->getClean()) { // Add in the properties for all selected list items in sub // labeled by their field id foreach ($v as $id => $L) { if (!($li = DynamicListItem::lookup($id))) { continue; } foreach ($li->getFilterData() as $prop => $value) { if (!isset($data[$prop])) { $data[$prop] = $value; } else { $data[$prop] .= " {$value}"; } } } } return $data; }
} 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 {
public function getItemByTitle($title) { $SQL_title = Convert::raw2sql($title); $item = DataObject::get_one('DynamicListItem', "\"ListID\" = {$this->ID} AND \"Title\" = '{$SQL_title}'"); if (!$item || !$item->exists()) { // create item $item = new DynamicListItem(); $item->ListID = $this->ID; $item->Title = $title; $item->write(); } return $item; }