public function checkout(AbstractClassContent $content, BBUserToken $token) { $revision = new Revision(); $revision->setAccept($content->getAccept()); $revision->setContent($content); $revision->setData($content->getDataToObject()); $revision->setLabel($content->getLabel()); $maxEntry = (array) $content->getMaxEntry(); $minEntry = (array) $content->getMinEntry(); $revision->setMaxEntry($maxEntry); $revision->setMinEntry($minEntry); $revision->setOwner($token->getUser()); foreach ($content->getAllParams() as $key => $value) { if (null !== $content->getParamValue($key)) { $revision->setParam($key, $content->getParamValue($key)); } } $revision->setRevision($content->getRevision() ? $content->getRevision() : 0); $revision->setState($content->getRevision() ? Revision::STATE_MODIFIED : Revision::STATE_ADDED); return $revision; }
/** * Executes revert action on content and its draft. * * @param AbstractClassContent $content * @param Revision $draft * @param array $data * @return self */ private function executeRevert(AbstractClassContent $content, Revision $draft, array $data) { if ($content instanceof ContentSet) { if (isset($data['elements']) && true === $data['elements']) { $draft->clear(); foreach ($content->getData() as $element) { $draft->push($element); } } } else { foreach ($content->getData() as $key => $element) { if (isset($data['elements']) && in_array($key, $data['elements'])) { $draft->{$key} = $content->{$key}; } } } if (isset($data['parameters'])) { foreach ($content->getDefaultParams() as $key => $params) { if (in_array($key, $data['parameters'])) { $draft->setParam($key, $content->getParamValue($key)); } } } return $this; }
/** * Executes revert action on content and its draft. * * @param AbstractClassContent $content * @param Revision $draft * @param array $data * * @return ClassContentManager */ private function executeRevert(AbstractClassContent $content, Revision $draft, array $data) { $content->setDraft(null); if ($content instanceof ContentSet) { if (isset($data['elements']) && true === $data['elements']) { $draft->clear(); foreach ($content->getData() as $element) { if ($element instanceof AbstractClassContent) { $draft->push($element); } } } } else { foreach ($content->getData() as $key => $element) { if (isset($data['elements']) && in_array($key, $data['elements'])) { $draft->{$key} = $content->{$key}; } if (in_array('Element\\Keyword', $content->getAccept()[$key])) { $this->entityManager->getRepository('BackBee\\ClassContent\\Element\\Keyword')->cleanKeywordLinks($content, $element); } } } if (isset($data['parameters'])) { foreach ($content->getDefaultParams() as $key => $params) { if (in_array($key, $data['parameters'])) { $draft->setParam($key, $content->getParamValue($key)); } } } return $this; }
/** * Update image with the new data * * @param AbstractClassContent|Revision $object * @param string $path * @param string $fullPath * * @return void */ protected function updateObject(&$object, $path, $fullPath) { $object->__set('path', $path); $object->setParam('width', $this->request->get('cropNewW')); $object->setParam('height', $this->request->get('cropNewH')); $object->setParam('stat', json_encode(stat($fullPath))); }