38 $g =
new RegexIterator(
39 new RecursiveIteratorIterator(
40 new RecursiveDirectoryIterator(
42 FilesystemIterator::KEY_AS_PATHNAME
43 |FilesystemIterator::CURRENT_AS_FILEINFO
44 |FilesystemIterator::SKIP_DOTS
46 RecursiveIteratorIterator::LEAVES_ONLY
48 '/.*\/file_[\d]*\/([\d]*)\/(.*)/',
49 RegexIterator::GET_MATCH
51 }
catch (Throwable $t) {
59 foreach ($g as $item) {
60 $version = (int) $item[1];
61 $title = $history_data[$version][
'filename'] ?? $item[2];
62 $action = $history_data[$version][
'action'] ??
'create';
63 $owner = $history_data[$version][
'owner_id'] ?? 13;
64 $creation_date_timestamp = strtotime($history_data[$version][
'date'] ??
'0');
65 if ($creation_date_timestamp ===
false) {
66 $creation_date_timestamp = 0;
74 $creation_date_timestamp,
78 ksort($this->versions);
88 foreach ($info as
$i) {
90 $version = (int) $parsed_info[
'version'];
91 $history_data[$version] = $parsed_info;
92 $history_data[$version][
'owner_id'] = (int)
$i[
'user_id'];
93 $history_data[$version][
'date'] = (string)
$i[
'date'];
94 $history_data[$version][
'action'] = (string)
$i[
'action'];
97 uasort($history_data,
static function ($v1, $v2) {
98 return (
int) $v2[
"version"] - (
int) $v1[
"version"];
100 return $history_data;
121 if (is_writable($this->path)) {
An exception for terminatinating execution or to throw for unit testing.
Class ilFileObjectToStorageDirectory.
__construct(int $object_id, string $path)
ilFileObjectToStorageDirectory constructor.
Class ilFileObjectToStorageVersion.
static _getEntriesForObject($a_obj_id, $a_obj_type="")
get all history entries for an object
static parseInfoParams($entry)
Parses the info parameters ("info_params") of the specified history entry.