コード例 #1
0
ファイル: ModelUtility.php プロジェクト: c2po/autoloader
 /**
  * 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();
 }
コード例 #2
0
ファイル: ModelUtility.php プロジェクト: sirdiego/autoloader
 /**
  * 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();
 }