/** * Get the target model. * * @param string $modelName * @param array $data * @param bool $ignoreEnableFields * * @return \TYPO3\CMS\Extbase\DomainObject\AbstractEntity */ public static function getModel($modelName, $data, $ignoreEnableFields = false) { $query = ExtendedUtility::getQuery($modelName); $query->getQuerySettings()->setIgnoreEnableFields($ignoreEnableFields); $query->getQuerySettings()->setRespectStoragePage(false); $query->getQuerySettings()->setRespectSysLanguage(false); $query->matching($query->equals('uid', $data['uid'])); if ($ignoreEnableFields) { // Backend selection if (isset($data['l18n_parent']) && $data['l18n_parent'] > 0 && $data['sys_language_uid']) { $query->getQuerySettings()->setLanguageOverlayMode(false); $query->getQuerySettings()->setLanguageMode(false); $query->getQuerySettings()->setRespectSysLanguage(true); $query->getQuerySettings()->setLanguageUid($data['sys_language_uid']); } $rows = $query->execute(true); $objectManager = new ObjectManager(); /** @var ExcludeIdentityMapDataMapper $dataMapper */ $dataMapper = $objectManager->get('HDNET\\Autoloader\\Persistence\\ExcludeIdentityMapDataMapper'); $objects = $dataMapper->map($modelName, $rows); return current($objects); } return $query->execute()->getFirst(); }
/** * Get the target model. * * @param string $modelName * @param array $data * @param bool $backendSelection * * @return \TYPO3\CMS\Extbase\DomainObject\AbstractEntity */ public static function getModel($modelName, $data, $backendSelection = false) { $query = ExtendedUtility::getQuery($modelName); $query->getQuerySettings()->setIgnoreEnableFields($backendSelection); $query->getQuerySettings()->setRespectStoragePage(false); $query->getQuerySettings()->setRespectSysLanguage(false); $query->matching($query->equals('uid', $data['uid'])); if ($backendSelection) { $_GET['L'] = (int) $data['sys_language_uid']; GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Session')->destroy(); if (isset($data['l18n_parent']) && $data['l18n_parent'] > 0 && $data['sys_language_uid']) { $query->getQuerySettings()->setLanguageOverlayMode(false); $query->getQuerySettings()->setLanguageMode(false); $query->getQuerySettings()->setRespectSysLanguage(true); $query->getQuerySettings()->setLanguageUid($data['sys_language_uid']); } $rows = $query->execute(true); $objectManager = new ObjectManager(); /** @var ExcludeIdentityMapDataMapper $dataMapper */ $dataMapper = $objectManager->get('HDNET\\Autoloader\\Persistence\\ExcludeIdentityMapDataMapper'); $objects = $dataMapper->map($modelName, $rows); $selection = current($objects); $_GET['L'] = 0; return $selection; } return $query->execute()->getFirst(); }