/**
  * Fixes the sorting of all translated content elements for the given page uid
  *
  * @param int $pageUid
  * @return int
  */
 public function fixSortingForPage($pageUid)
 {
     $sorting = 0;
     $pageUid = (int) $pageUid;
     $contentElementArray = $this->sharedHelper->getTvContentArrayForPage($pageUid);
     $this->sharedHelper->fixPageLocalizationDiffSources($pageUid);
     $modifiedSortingCeUids = $this->fixSortingForContentArray($contentElementArray, $pageUid, $sorting);
     $updated = count($modifiedSortingCeUids);
     $remainingContentElements = $this->getRemainingPageContentElements($pageUid, $modifiedSortingCeUids);
     foreach ($remainingContentElements as $remainingContentElement) {
         $remainingContentElementUid = (int) $remainingContentElement['uid'];
         if ($remainingContentElementUid > 0) {
             $sorting += self::SORTING_OFFSET;
             $GLOBALS['TYPO3_DB']->exec_UPDATEquery('tt_content', 'uid=' . $remainingContentElementUid, array('sorting' => $sorting));
             $this->refIndex->updateRefIndexTable('tt_content', $remainingContentElementUid);
             $this->sharedHelper->fixContentElementLocalizationDiffSources($remainingContentElementUid);
             $updated++;
         }
     }
     return $updated;
 }
 /**
  * Converts all reference elements to 'insert records' elements with a recursion level of 99
  *
  * @param bool $useParentUidForTranslations
  * @return int Number of records deleted
  */
 public function convertReferenceElements()
 {
     $GLOBALS['TCA']['tt_content']['ctrl']['hideAtCopy'] = 0;
     $GLOBALS['TCA']['tt_content']['ctrl']['prependAtCopy'] = 0;
     $pids = $this->sharedHelper->getPageIds();
     $numRecords = 0;
     foreach ($pids as $pid) {
         $tvContentArray = $this->sharedHelper->getTvContentArrayForPage($pid);
         $numRecords += $this->convertTvContentArrayToReferenceElements($tvContentArray, $pid);
     }
     return $numRecords;
 }
 /**
  * Migrates all content elements for the page with the given pageUid to the selected column positions
  *
  * @param array $formdata
  * @param int $pageUid
  * @return int Number of Content elements updated
  */
 public function migrateContentForPage($formdata, $pageUid)
 {
     $fieldMapping = $this->sharedHelper->getFieldMappingArray($formdata, 'tv_col_', 'be_col_');
     $tvContentArray = $this->sharedHelper->getTvContentArrayForPage($pageUid);
     $count = 0;
     $sorting = 0;
     foreach ($tvContentArray as $key => $contentUidString) {
         if (array_key_exists($key, $fieldMapping) && $contentUidString != '') {
             $contentUids = explode(',', $contentUidString);
             foreach ($contentUids as $contentUid) {
                 $contentElement = $this->sharedHelper->getContentElement($contentUid);
                 if ($contentElement['pid'] == $pageUid) {
                     $this->sharedHelper->updateContentElementColPos($contentUid, $fieldMapping[$key], $sorting);
                     $this->sharedHelper->fixContentElementLocalizationDiffSources($contentUid);
                 }
                 $sorting += 25;
                 $count++;
             }
         }
     }
     return $count;
 }