public function renderJSON() { $field = Type::Field($this->field); $result = []; if (!empty($this->value)) { $fieldBean = $field->getBean(); $linkedSetId = $fieldBean->{$field->_('linkedSetId')}; if (!empty($linkedSetId)) { $record = Set::byID($linkedSetId)->getRecord($this->value); //TODO: implement throw new \Exception('Not yet implemented'); } } return ''; }
public static function receive() { $slim = new Slim(); $skemaKeys = $slim->request->get('skema'); $sets = []; foreach ($skemaKeys as $skemaKey => $records) { if (!isset($sets[$skemaKey])) { if (is_numeric($skemaKey)) { $id = $skemaKey; $sets[$skemaKey] = Set::byID($id); } else { $cleanName = $skemaKey; $sets[$skemaKey] = Set::byCleanName($cleanName); } } $set = Type::Set($sets[$skemaKey]); foreach ($records as $recordID => $fields) { $recordChanged = false; $record = $set->getRecord($recordID); foreach ($fields as $fieldKey => $fieldValue) { if (is_numeric($fieldKey)) { $id = $fieldKey; $field = $set->fieldsByID[$id]; } else { $cleanName = $fieldKey; $field = $set->fieldsByCleanName[$cleanName]; } $directive = $field->getDirective(); $sanitized = $directive::sanitize($fieldValue); if ($record->{$field->cleanName} !== $sanitized) { $record->{$field->cleanName} = $sanitized; $recordChanged = true; } } if ($recordChanged) { $record->update(); } } } }
public function eachJSON($fn) { $this->each($fn, function ($directive) { $result = Type::Directive($directive)->renderJSON(); return $result; }); return $this; }