|
|
@@ -92,9 +92,14 @@ function findPublicMementos($shareManager, $userId) { |
|
|
|
-1 /* no limit */ |
|
|
|
); |
|
|
|
|
|
|
|
$urlForShare = function ($share) { |
|
|
|
$urlForSharedFile = function ($share) { |
|
|
|
return "/apps/raw/s/" . $share->getToken(); // XXX hardcoded dependency |
|
|
|
}; |
|
|
|
$urlForFileInsideSharedFolder = function ($share, $folder, $file) { |
|
|
|
$absoluteFilePath = $file->getPath(); |
|
|
|
$relativeFilePath = $folder->getRelativePath($absoluteFilePath); |
|
|
|
return joinPaths("/apps/raw/s/{$share->getToken()}", $relativeFilePath); |
|
|
|
}; |
|
|
|
|
|
|
|
// Look into every shared file to see if it is a memento. |
|
|
|
$foundMementos = []; |
|
|
@@ -103,11 +108,20 @@ function findPublicMementos($shareManager, $userId) { |
|
|
|
if ($node->getType() === FileInfo::TYPE_FILE) { |
|
|
|
$mementoInfo = extractMementoInfo($node); |
|
|
|
if ($mementoInfo) { |
|
|
|
$mementoInfo['mementoUrl'] = $urlForShare($share); |
|
|
|
$mementoInfo['mementoUrl'] = $urlForSharedFile($share); |
|
|
|
$foundMementos[] = $mementoInfo; |
|
|
|
} |
|
|
|
} else { |
|
|
|
// TODO add files inside shared folders? How to make URLs for those? |
|
|
|
// Share is a folder: Go through all html files inside the shared folder. |
|
|
|
$folder = $node; |
|
|
|
$files = $folder->searchByMime('text/html'); |
|
|
|
foreach ($files as $file) { |
|
|
|
$mementoInfo = extractMementoInfo($file); |
|
|
|
if ($mementoInfo) { |
|
|
|
$mementoInfo['mementoUrl'] = $urlForFileInsideSharedFolder($share, $folder, $file); |
|
|
|
$foundMementos[] = $mementoInfo; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return $foundMementos; |
|
|
|