elementTypeRepo = $elementTypeRepo; $this->elementFieldProvider = $elementFieldProvider; } public function getElementTypeFields(int $projectId, int $elementTypeIdPim) { $elementType = $this->elementTypeRepo->findElementTypeByIdProject($elementTypeIdPim, $projectId); $fieldsView = []; if ($elementType) { $fields = $this->elementFieldProvider->findByElementTypes($elementTypeIdPim, implode(',', $elementType->getElementTypeFieldsPIM())); if (!empty($fields)) { foreach ($fields as $field) { if (empty($field['fieldsetInputs'])) { $fieldsView[] = new FieldWithFieldTypeView( $field['elementTypeFieldId'], $field['elementTypeFieldName'], [], $field['fieldType'], $field['tab'], $field['elementTypeId'] ); } } } } return $fieldsView; } public function getElementTypeFieldset(int $projectId, array $elementTypesIdPim) { $elementTypes = $this->elementTypeRepo->findElementTypesByIdsProjects($elementTypesIdPim, $projectId); $fieldsView = []; if ($elementTypes) { $elementTypeFields = []; foreach ($elementTypes as $elementType) { $elementTypeFields = array_merge($elementTypeFields, $elementType->getElementTypeFieldsPIM()); } $fields = $this->elementFieldProvider->findByElementTypes(implode(',', $elementTypesIdPim), implode(',', $elementTypeFields)); if (!empty($fields)) { foreach ($fields as $field) { // if (!empty($field['fieldsetInputs'])) { $fieldsView[] = new FieldWithFieldTypeView( $field['elementTypeFieldId'], $field['elementTypeFieldName'], $field['fieldsetInputs'], $field['fieldType'], $field['tab'], $field['elementTypeId'] ); // } } } } return $fieldsView; } }