/** * 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; }
/** * Sets the backend layout uid for the page with the given uid if the value of the TV template matches * the uid of the given uidTvTemplate * * @param int $pageUid * @param int $UidTvTemplate * @param int $uidBeLayout * @return int Number of page templates updated */ public function updatePageTemplate($pageUid, $UidTvTemplate, $uidBeLayout) { $pageRecord = $this->sharedHelper->getPage($pageUid); $updateFields = array(); $count = 0; if ($pageRecord['tx_templavoila_to'] > 0 && $pageRecord['tx_templavoila_to'] == $UidTvTemplate) { $updateFields['backend_layout'] = $uidBeLayout; } if ($pageRecord['tx_templavoila_next_to'] > 0 && $pageRecord['tx_templavoila_next_to'] == $UidTvTemplate) { $updateFields['backend_layout_next_level'] = $uidBeLayout; } if (count($updateFields) > 0) { $GLOBALS['TYPO3_DB']->exec_UPDATEquery('pages', 'uid=' . intval($pageUid), $updateFields); $count++; } return $count; }