/** * Marks all unreferenced element records as deleted with a recursion level of 99 * * @return int Number of records deleted */ public function markDeletedUnreferencedElementsRecords($markAsNegativeColPos = FALSE) { $pids = $this->sharedHelper->getPageIds(); $allReferencedElementsArr = array(); foreach ($pids as $pid) { $pageRecord = $this->sharedHelper->getPage($pid); if (!empty($pageRecord)) { $contentTree = $this->sharedHelper->getTemplavoilaAPIObj()->getContentTree('pages', $pageRecord, FALSE); $referencedElementsArrAsKeys = $contentTree['contentElementUsage']; if (!empty($referencedElementsArrAsKeys)) { $referencedElementsArr = array_keys($referencedElementsArrAsKeys); $allReferencedElementsArr = array_merge($allReferencedElementsArr, $referencedElementsArr); } } } $allReferencedElementsArr = array_unique($allReferencedElementsArr); $allRecordUids = $this->getUnreferencedElementsRecords($allReferencedElementsArr); $countRecords = count($allRecordUids); if ($markAsNegativeColPos) { $this->markNegativeColPos($allRecordUids); } else { $this->markDeleted($allRecordUids); } return $countRecords; }
/** * 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; }
/** * Action for fix sorting * * @param array $formdata * @return void */ public function fixSortingAction($formdata) { $this->sharedHelper->setUnlimitedTimeout(); $numUpdated = 0; if ($formdata['fixOptions'] == 'singlePage') { $numUpdated = $this->fixSortingHelper->fixSortingForPage($formdata['pageUid']); } else { $pageUids = $this->sharedHelper->getPageIds(); foreach ($pageUids as $pageUid) { $numUpdated += $this->fixSortingHelper->fixSortingForPage($pageUid); } } $this->view->assign('numUpdated', $numUpdated); }