/** * Updates states and revision number of the content. * * @param AbstractClassContent $content The content to be updated. * @param integer $revision Optional, the revision number (1 by default). * @param integer $state Optional, The state (STATE_NORMAL by default). * * @return PageBuilder The builder instance. * @codeCoverageIgnore */ private function updateContentRevision(AbstractClassContent $content, $revision = 1, $state = AbstractClassContent::STATE_NORMAL) { $content->setRevision((int) $revision); $content->setState((int) $state); return $this; }
/** * Executes commit action on content and its draft. * * @param AbstractClassContent $content * @param Revision $draft * @return self */ private function executeCommit(AbstractClassContent $content, Revision $draft) { $content->setDraft(null); if ($content instanceof ContentSet) { $content->clear(); while ($subcontent = $draft->next()) { if ($subcontent instanceof AbstractClassContent) { $subcontent = $this->em->getRepository(ClassUtils::getRealClass($subcontent))->load($subcontent); if (null !== $subcontent) { $content->push($subcontent); } } } } else { foreach ($draft->getData() as $key => $values) { $values = is_array($values) ? $values : [$values]; foreach ($values as &$subcontent) { if ($subcontent instanceof AbstractClassContent) { $subcontent = $this->em->getRepository(ClassUtils::getRealClass($subcontent))->load($subcontent); } } $content->{$key} = $values; } } $draft->commit(); $content->setLabel($draft->getLabel()); foreach ($draft->getAllParams() as $key => $params) { $content->setParam($key, $params['value']); } $content->setRevision($draft->getRevision())->setState(AbstractClassContent::STATE_NORMAL)->addRevision($draft); return $this; }
/** * Update Status and revision value. * * @param \BackBee\ClassContent\AbstractClassContent $element * * @return AbstractConverterInterface */ protected function _updateRevision(AbstractClassContent $element) { $element->setRevision(1 + $element->getRevision())->setState(AbstractClassContent::STATE_NORMAL); return $this; }
/** * Enables provided content by set its revision to 1 and * its state to 1001 (STATE_NORMAL) so it can be displayed in front. * * @param AbstractClassContent $content * @return self */ protected function enableContent(AbstractClassContent $content) { $content->setRevision(1)->setState(AbstractClassContent::STATE_NORMAL); foreach ($content->getData() as $element) { if ($element instanceof AbstractClassContent) { $this->enableContent($element); } } return $this; }