Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 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);
         }
     }
 }
Esempio n. 3
0
 /**
  *
  * {@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();
     }
 }
Esempio n. 4
0
 /**
  *
  * {@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);
         }
     }
 }
Esempio n. 5
0
 /**
  *
  * {@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;
         }
     }
 }
Esempio n. 6
0
 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);
                 }
             }
         }
     }
 }
Esempio n. 7
0
 /**
  * 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;
 }
Esempio n. 8
0
 /**
  *
  * {@inheritdoc}
  *
  */
 public static function buildObjectArray(DataField $data, array &$out)
 {
     if (!$data->getFieldType()->getDeleted()) {
         $out[$data->getFieldType()->getName()] = [];
     }
 }
Esempio n. 9
0
 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;
 }
Esempio n. 10
0
 /**
  * {@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);
         }
     }
 }
Esempio n. 11
0
 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()] = [];
         }
     }
 }
Esempio n. 13
0
 /**
  * {@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);
         }
     }
 }
Esempio n. 14
0
 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);
     }
 }
Esempio n. 15
0
 /**
  * {@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;
     }
 }