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