FluidTYPO3\Flux\Service\ContentService::initializeRecordByNewAndOldAndLanguageUids PHP Method

initializeRecordByNewAndOldAndLanguageUids() protected method

protected initializeRecordByNewAndOldAndLanguageUids ( array $row, integer $newUid, integer $oldUid, integer $newLanguageUid, string $languageFieldName, TYPO3\CMS\Core\DataHandling\DataHandler $tceMain )
$row array
$newUid integer
$oldUid integer
$newLanguageUid integer
$languageFieldName string
$tceMain TYPO3\CMS\Core\DataHandling\DataHandler
    protected function initializeRecordByNewAndOldAndLanguageUids($row, $newUid, $oldUid, $newLanguageUid, $languageFieldName, DataHandler $tceMain)
    {
        if (0 < $newUid && 0 < $oldUid && 0 < $newLanguageUid) {
            $oldRecord = $this->loadRecordFromDatabase($oldUid);
            if ($oldRecord[$languageFieldName] !== $newLanguageUid && $oldRecord['pid'] === $row['pid']) {
                // look for the translated version of the parent record indicated
                // in this new, translated record. Below, we adjust the parent UID
                // so it has the UID of the translated parent if one exists.
                $translatedParents = (array) $this->workspacesAwareRecordService->get('tt_content', 'uid,sys_language_uid', "t3_origuid = '" . $oldRecord['tx_flux_parent'] . "'" . BackendUtility::deleteClause('tt_content'));
                foreach ($translatedParents as $translatedParent) {
                    if ($translatedParent['sys_language_uid'] == $newLanguageUid) {
                        // set $translatedParent to the right language ($newLanguageUid):
                        break;
                    }
                    unset($translatedParent);
                }
                $sortbyFieldName = TRUE === isset($GLOBALS['TCA']['tt_content']['ctrl']['sortby']) ? $GLOBALS['TCA']['tt_content']['ctrl']['sortby'] : 'sorting';
                $overrideValues = array($sortbyFieldName => $tceMain->resorting('tt_content', $row['pid'], $sortbyFieldName, $oldUid), 'tx_flux_parent' => NULL !== $translatedParent ? $translatedParent['uid'] : $oldRecord['tx_flux_parent']);
                $this->updateRecordInDatabase($overrideValues, $newUid);
            }
        }
    }