/** * {@inheritdoc} */ public function setParam($key, $value = null) { parent::setParam($key, $value); if ('accept' === $key && is_array($value)) { $value = self::getShortClassname($value); if (null !== $this->getDraft()) { $this->getDraft()->setAccept($value); } else { $this->setAccept($value); } } }
/** * 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; }
/** * Updates provided content's parameters. * * @param AbstractClassContent $content * @param array $paramsData * * @return ClassContentManager */ private function updateParameters(AbstractClassContent $content, array $paramsData) { foreach ($paramsData as $key => $param) { $content->setParam($key, $param); } 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))); }