/** * Deletes all nodes for specified elements. * * @param elements A comma delimited list of the elements to delete nodes in * @param offset An integer value for the offset to begin deleting nodes from * * @return void */ protected function deleteAll() { $elements = $this->Request->getRequiredParameter('elements'); $interval = 1000; $elementSlugs = StringUtils::smartExplode($elements); $elements = array(); foreach ($elementSlugs as $eSlug) { $elements[] = $this->ElementService->getBySlug($eSlug); } foreach ($elements as $element) { $offset = 0; if ($this->Request->getParameter('offset') != null) { $offset = $this->Request->getParameter('offset'); } echo 'Deleting nodes for element: ' . $element . "\n"; while (true) { $count = 0; // commit any pending transactions and begin new one $this->TransactionManager->commit()->begin(); $nq = new NodeQuery(); $nq->setParameter('NodeRefs.only', true); $nq->setParameter('Elements.in', $element->getSlug()); $nq->setLimit($interval); $nq->setOffset($offset); $nq = $this->NodeService->findAll($nq, true); $nodeRefs = $nq->getResults(); $tCount = $nq->getTotalRecords(); if (empty($nodeRefs)) { break; } foreach ($nodeRefs as $nodeRef) { try { $this->NodeService->delete($nodeRef); echo $count + 1 . ". " . $nodeRef->getSlug() . " deleted\n"; if (($count + 1) % 10 == 0) { $this->TransactionManager->commit()->begin(); echo "commit\n"; } } catch (Exception $e) { echo "Exception caught: " . $e->getMessage() . "\n"; // if an error occurs, bail - we don't want to get stuck in a // loop if we can't delete stuff for some reason echo "Exiting, please correct problem and re-run\n"; return; } ++$count; } echo 'Deleted ' . $count . ' of ' . $tCount . ' ' . $element->getSlug() . " nodes.\n"; } } }
public function tagGalleryPhotos() { $galleryNodeRef = $this->NodeRefService->parseFromString('media-gallery:test-gallery'); $interval = 25; $offset = 0; $nq = new NodeQuery(); $nq->setParameter('Elements.in', 'image'); $nq->setParameter('NodeRefs.only', true); $nq->setOrderBy('ActiveDate', 'DESC'); $nq->setLimit($interval); $nq->setOffset($offset); $nq = $this->NodeService->findAll($nq, true); $nodes = $nq->getResults(); while (count($nodes) > 0) { foreach ($nodes as $node) { $tag = new Tag($node->getElement()->getSlug(), $node->getSlug(), '#media-gallery-items'); try { $this->NodeService->addOutTag($galleryNodeRef, $tag); echo $node->Slug . "\n"; } catch (Exception $e) { echo $node->Slug . " error: " . $e->getMessage() . "\n"; } } $offset = $offset + $interval; unset($nodes); $nq->setLimit($interval); $nq->setOffset($offset); $nq->clearResults(); $nq = $this->NodeService->findAll($nq, true); $nodes = $nq->getResults(); } }
public function populateDefaults($elements = 'all') { $log = ''; if ($elements == 'all') { $elements = $this->ElementService->findAll()->getResults(); } else { $elementSlugs = StringUtils::smartExplode($elements); $elements = array(); foreach ($elementSlugs as $eSlug) { $elements[] = $this->ElementService->getBySlug($eSlug); } } foreach ($elements as $element) { $offset = 0; $nq = new NodeQuery(); $nq->setParameter('Elements.in', $element->getSlug()); $nq->setParameter('Meta.select', 'all'); $nq->setLimit(1000); $nq->setOffset($offset); $nq->asObjects(); $nq->isRetrieveTotalRecords(true); $nq = $this->NodeService->findAll($nq, true); $nodes = $nq->getResults(); $tCount = $nq->getTotalRecords(); $count = 0; while (count($nodes) > 0) { foreach ($nodes as $node) { $this->NodeMapper->defaultsOnNode($node); $this->NodeService->edit($node); ++$count; } $offset += 1000; $nq = new NodeQuery(); $nq->setParameter('Elements.in', $element->getSlug()); $nq->setParameter('Meta.select', 'all'); $nq->setLimit(1000); $nq->setOffset($offset); $nq->asObjects(); $nodes = $this->NodeService->findAll($nq)->getResults(); } $log .= 'Updated defaults on ' . $count . ' of ' . $tCount . ' ' . $element->getSlug() . " nodes.\n"; } return $log; }