public function dataFieldToArray(DataField $dataField) { $out = []; $dataFieldType = new CollectionItemFieldType(); /** @var DataFieldType $dataFieldType */ if (null != $dataField->getFieldType()) { $dataFieldType = $this->fieldTypePickerType->getDataFieldType($dataField->getFieldType()->getType()); } $dataFieldType->buildObjectArray($dataField, $out); /** @var DataField $child */ foreach ($dataField->getChildren() as $child) { //its a Collection Item if ($child->getFieldType() == null) { $subOut = []; foreach ($child->getChildren() as $grandchild) { $subOut = array_merge($subOut, $this->dataFieldToArray($grandchild)); } $out[$dataFieldType->getJsonName($dataField->getFieldType())][] = $subOut; } else { if (!$child->getFieldType()->getDeleted()) { if ($dataFieldType->isNested()) { $out[$dataFieldType->getJsonName($dataField->getFieldType())] = array_merge($out[$dataFieldType->getJsonName($dataField->getFieldType())], $this->dataFieldToArray($child)); } else { $out = array_merge($out, $this->dataFieldToArray($child)); } } } } return $out; }
function __construct(View $view, Session $session) { $this->session = $session; $this->criterion = []; $contentType = $view->getContentType(); $rootFieldType = $contentType->getFieldType(); if (!empty($view->getOptions()['categoryFieldPath']) && ($categoryField = $rootFieldType->getChildByPath($view->getOptions()['categoryFieldPath']))) { $dataField = new DataField(); $dataField->setFieldType($categoryField); $this->setCategory($dataField); } $criteriaField = $rootFieldType; if ($view->getOptions()['criteriaMode'] == 'internal') { $criteriaField = $rootFieldType->__get('ems_' . $view->getOptions()['criteriaField']); } else { if ($view->getOptions()['criteriaMode'] == 'another') { } else { throw new \Exception('Should never happen'); } } $fieldPaths = preg_split("/\\r\\n|\\r|\\n/", $view->getOptions()['criteriaFieldPaths']); foreach ($fieldPaths as $path) { $child = $criteriaField->getChildByPath($path); if ($child) { $dataField = new DataField(); $dataField->setFieldType($child); $this->criterion[$child->getName()] = $dataField; } else { $this->session->getFlashBag()->add('warning', 'Field path not found ' . $path); } } }
/** * * {@inheritdoc} * */ public static function buildObjectArray(DataField $data, array &$out) { if (!$data->getFieldType()->getDeleted()) { /** * by default it serialize the text value. * It must be overrided. */ $out[$data->getFieldType()->getName()] = $data->getFloatValue(); } }
/** * * {@inheritdoc} * */ public static function buildObjectArray(DataField $data, array &$out) { if (!$data->getFieldType()->getDeleted()) { if ($data->getFieldType()->getDisplayOptions()['multiple']) { $out[$data->getFieldType()->getName()] = $data->getArrayTextValue(); } else { parent::buildObjectArray($data, $out); } } }
/** * * {@inheritdoc} * */ public static function buildObjectArray(DataField $data, array &$out) { if (!$data->getFieldType()->getDeleted()) { switch ($data->getFieldType()->getDisplayOptions()['encryption']) { case 'md5': $out[$data->getFieldType()->getName()] = md5($data->getTextValue()); break; default: $out[$data->getFieldType()->getName()] = sha1($data->getTextValue()); break; } } }
public function updateDataStructure(FieldType $meta) { //no need to generate the structure for subfields ( $isContainer = true; if (null !== $this->getFieldType()) { $type = $this->getFieldType()->getType(); $datFieldType = new $type(); $isContainer = $datFieldType->isContainer(); } if ($isContainer) { /** @var FieldType $field */ foreach ($meta->getChildren() as $field) { //no need to generate the structure for delete field if (!$field->getDeleted()) { $child = $this->__get('ems_' . $field->getName()); if (null == $child) { $child = new DataField(); $child->setFieldType($field); $child->setOrderKey($field->getOrderKey()); $child->setParent($this); $this->addChild($child); if (isset($field->getDisplayOptions()['defaultValue'])) { $child->setEncodedText($field->getDisplayOptions()['defaultValue']); } } if (strcmp($field->getType(), CollectionFieldType::class) != 0) { $child->updateDataStructure($field); } } } } }
/** * Test if the requirment of the field is reached. * * @return boolean */ public function isMandatory(DataField &$dataField) { $isValidMadatory = TRUE; //Get FieldType mandatory option $restrictionOptions = $dataField->getFieldType()->getRestrictionOptions(); if (isset($restrictionOptions["mandatory"]) && true == $restrictionOptions["mandatory"]) { //Get rawData $rawData = $dataField->getRawData(); if (!isset($rawData) || empty($rawData) || $rawData === null) { $isValidMadatory = FALSE; $dataField->addMessage("Empty field"); } } return $isValidMadatory; }
/** * * {@inheritdoc} * */ public static function buildObjectArray(DataField $data, array &$out) { if (!$data->getFieldType()->getDeleted()) { $out[$data->getFieldType()->getName()] = []; } }
public function generateInput(DataField $dataField) { $rawData = $dataField->getRawData(); if (!empty($rawData) && !empty($rawData['sha1'])) { unset($rawData['filesize']); $dataField->setInputValue($rawData); } else { $dataField->setInputValue(null); } return $this; }
/** * {@inheritdoc} */ public static function buildObjectArray(DataField $data, array &$out) { if (!$data->getFieldType()->getDeleted()) { $format = $data->getFieldType()->getMappingOptions()['format']; $format = DateFieldType::convertJavaDateFormat($format); if (null !== $data->getRawData() && (!is_array($data->getRawData()) || count($data->getRawData()) !== 0)) { /**@var \DateTime $converted*/ $dateTime = \DateTime::createFromFormat(\DateTime::ISO8601, $data->getRawData()); $out[$data->getFieldType()->getName()] = $dateTime->format($format); } } }
private function findCriterion(DataField $criteriaField, $filters) { /** @var DataField $child */ foreach ($criteriaField->getChildren() as $child) { $found = true; foreach ($filters as $filter) { if (strcmp($filter['value'], $child->__get('ems_' . $filter['name'])->getTextValue()) != 0) { $found = false; break; } } if ($found) { return $child; } } return false; }
/** * * {@inheritdoc} * */ public static function buildObjectArray(DataField $data, array &$out) { if ($data->getFieldType() == null) { $tmp = []; /** @var DataField $child */ foreach ($data->getChildren() as $child) { $className = $child->getFieldType()->getType(); $class = new $className(); $class->buildObjectArray($child, $tmp); } $out[] = $tmp; } else { if (!$data->getFieldType()->getDeleted()) { $out[$data->getFieldType()->getName()] = []; } } }
/** * {@inheritdoc} */ public static function buildObjectArray(DataField $data, array &$out) { if (!$data->getFieldType()->getDeleted()) { if ($data->getFieldType()->getMappingOptions()['nested']) { $out[$data->getFieldType()->getName()] = $data->getRawData(); } else { $rawData = $data->getRawData(); if (empty($rawData)) { $rawData = []; } $out = array_merge($out, $rawData); } } }
public function loadDataStructure(Revision $revision) { $data = new DataField(); $data->setFieldType($revision->getContentType()->getFieldType()); $data->setOrderKey($revision->getContentType()->getFieldType()->getOrderKey()); $revision->setDataField($data); $revision->getDataField()->updateDataStructure($revision->getContentType()->getFieldType()); $object = $revision->getRawData(); $data->updateDataValue($object); if (count($object) > 0) { $html = DataService::arrayToHtml($object); $this->session->getFlashBag()->add('warning', "Some data of this revision were not consumed by the content type:" . $html); } }
/** * {@inheritdoc} */ public static function buildObjectArray(DataField $data, array &$out) { if (!$data->getFieldType()->getDeleted()) { $format = $data->getFieldType()->getMappingOptions()['format']; $multidate = $data->getFieldType()->getDisplayOptions()['multidate']; $format = DateFieldType::convertJavaDateFormat($format); if ($multidate) { $dates = []; if (null !== $data->getRawData()) { foreach ($data->getRawData() as $dataValue) { /**@var \DateTime $converted*/ $dateTime = \DateTime::createFromFormat(\DateTime::ISO8601, $dataValue); $dates[] = $dateTime->format($format); } } } else { $dates = null; if (null !== $data->getRawData() && count($data->getRawData()) >= 1) { /**@var \DateTime $converted*/ $dateTime = \DateTime::createFromFormat(\DateTime::ISO8601, $data->getRawData()[0]); if ($dateTime) { $dates = $dateTime->format($format); } else { //TODO: at least a warning $dates = null; } } } $out[$data->getFieldType()->getName()] = $dates; } }