/** * Actually convert from $source to $targetType, taking into account the fully * built $convertedChildProperties and $configuration. * * @param mixed $source * @param string $targetType * @param array $convertedChildProperties * @param \TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface $configuration * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage * @api */ public function convertFrom($source, $targetType, array $convertedChildProperties = array(), \TYPO3\CMS\Extbase\Property\PropertyMappingConfigurationInterface $configuration = NULL) { $objectStorage = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage(); foreach ($convertedChildProperties as $subPropertyKey => $subProperty) { $objectStorage->attach($subProperty); $this->objectStorageMappingService->mapSplObjectHashToSourceKey(spl_object_hash($subProperty), $subPropertyKey); } return $objectStorage; }
/** * Get the name of this form element, without prefix. * * @return string name */ protected function getNameWithoutPrefix() { $formObjectName = $this->viewHelperVariableContainer->get('TYPO3\\CMS\\Fluid\\ViewHelpers\\FormViewHelper', 'formObjectName'); if (!empty($formObjectName)) { $formObjectPath = str_replace(']', '', str_replace('[', '.', $formObjectName)); $propertySegments = explode('.', $this->arguments['for']); $propertyPath = ''; foreach ($propertySegments as $segment) { $propertyPath .= '.' . $segment; } $name = $formObjectPath . $propertyPath; } else { $name = $this->arguments['for']; } $nameArr = explode('.', $name); foreach ($nameArr as $i => $segment) { $nameArr[$i] = $this->objectStorageMappingService->getSplObjectHashForSourceKey($segment); } return implode('.', $nameArr); }