/** * @param array $data * @param RZ\Roadiz\Core\Entities\Document $document */ private function editDocument($data, Document $document) { /* * Rename document file */ if (!empty($data['filename']) && $data['filename'] != $document->getFilename()) { $oldUrl = $document->getAbsolutePath(); $fs = new Filesystem(); /* * If file exists, just rename it */ // set filename to clean given string before renaming file. $document->setFilename($data['filename']); $fs->rename($oldUrl, $document->getAbsolutePath()); unset($data['filename']); } /* * Change privacy document status */ if ($data['private'] != $document->isPrivate()) { if ($data['private'] === true) { $document->getHandler()->makePrivate(); } else { $document->getHandler()->makePublic(); } unset($data['private']); } foreach ($data as $key => $value) { $setter = 'set' . ucwords($key); $document->{$setter}($value); } $this->getService('em')->flush(); }