/** * 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; }