$c->file = $e->file;
$c->owner = $e->proprietaire;
$c->pages = $e->pages;
- $c->pdf_data = $this->_unserializeAndJSON($e->generalInfos);
- $c->file_data = $this->_unserializeAndJSON($e->localInfos);
- $c->bookmarks = str_replace('"titre":', '"title":', $this->_unserializeAndJSON($e->bookmarks, '[]'));
+
+ $c->pdf_data = $this->_unserialize($e->generalInfos);
+ $c->file_data = $this->_unserialize($e->localInfos);
+ $c->bookmarks = $this->_migrateBookmarks($e->bookmarks);
$c->saveWithoutFlushingCache();
}
if ($reset) {
}
}
- protected function _unserializeAndJSON($s, $default = '[]')
+ protected function _migrateBookmarks($bookmarks, $default = [])
{
- $r = ObjectUtil::safeUnserialize($s);
- if (!$r) {
- return $default;
+ $bookmarks = $this->_unserialize($bookmarks, $default);
+ $res = [];
+ foreach ($bookmarks as $bookmark) {
+ $bookmark['title'] = $bookmark['titre'];
+ unset($bookmark['titre']);
+ $res[] = $bookmark;
}
- return json_encode($r);
+ return $res;
+ }
+
+ protected function _unserialize($s, $default = [])
+ {
+ return ObjectUtil::safeUnserialize($s, $default);
+ }
+
+ protected function _unserializeAndJSON($s, $default = [])
+ {
+ return json_encode($this->_unserialize($s, $default));
}
protected function importPublications($reset = false)
}
}
- protected function _unserialize($str)
- {
- $class = 'stdClass';
- $str = preg_replace('/^O:\d+:"[^"]++"/', 'O:' . strlen($class) . ':"' . $class . '"', $str);
- $str = str_replace("s:8:\"\0*\0datas\"", 's:5:"datas"', $str);
- return unserialize($str);
- }
+
}