Esempio n. 1
0
 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();
     }
 }
Esempio n. 3
0
 function export($value)
 {
     if ($value && is_numeric($value) && ($item = DynamicListItem::lookup($value))) {
         return $item->toString();
     }
     return $value;
 }
Esempio n. 4
0
 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;
 }
Esempio n. 5
0
 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;
 }
Esempio n. 6
0
                     } 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;
 }