Skip to content

Commit 783088f

Browse files
committed
Fix: Filter documents on sortby assets
1 parent bf1498e commit 783088f

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

Classes/Fusion/RawListImplementation.php

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,13 @@ class RawListImplementation extends AbstractFusionObject
8787
*/
8888
protected $context;
8989

90+
/**
91+
* List of the site identifiers. Used by showBy asset, to filter out picutres from other sites
92+
*
93+
* @var array
94+
*/
95+
protected $currentSiteNodeIdentifierArray;
96+
9097
/**
9198
* Returns the items as result of the fusion object.
9299
*
@@ -150,6 +157,7 @@ public function getDocumentTree(): array
150157
*/
151158
public function buildAssetTree(): void
152159
{
160+
$this->buildDocumentIdenifierListRecursive([$this->startingPoint]);
153161
$entries = [];
154162
foreach ($this->assetUsage as $entityUsage) {
155163
$entity = $this->entityUsage($entityUsage);
@@ -161,6 +169,10 @@ public function buildAssetTree(): void
161169
$documentNode = $entity['documentNode'];
162170
$documentNodeIdentifier = $entity['documentNodeIdentifier'];
163171

172+
if (!in_array($documentNodeIdentifier, $this->currentSiteNodeIdentifierArray)) {
173+
continue;
174+
}
175+
164176
// Set Document Nodetype entry
165177
if (!isset($entries[$id]) || !isset($entries[$id]['documents'][$documentNodeIdentifier])) {
166178
$documentNodeEntry = [
@@ -222,6 +234,22 @@ public function getFilter(): string
222234
return $filter;
223235
}
224236

237+
/**
238+
* Bild the list with document identifiers
239+
*
240+
* @param array $nodes
241+
* @return void
242+
*/
243+
protected function buildDocumentIdenifierListRecursive(array $nodes): void
244+
{
245+
foreach ($nodes as $currentNode) {
246+
if ($currentNode->isVisible() && $currentNode->isAccessible()) {
247+
$this->currentSiteNodeIdentifierArray[] = $currentNode->getIdentifier();
248+
$this->buildDocumentIdenifierListRecursive($currentNode->getChildNodes($this->getFilter()));
249+
}
250+
}
251+
}
252+
225253
/**
226254
* @param array $nodes
227255
* @return void
@@ -254,7 +282,6 @@ protected function buildDocumentItemRecursive(NodeInterface $currentNode): void
254282
}
255283
$id = $entity['id'];
256284
$asset = $entity['asset'];
257-
$documentNode = $entity['documentNode'];
258285
$documentNodeIdentifier = $entity['documentNodeIdentifier'];
259286

260287
if ($currentNodeIdentifier != $documentNodeIdentifier) {

0 commit comments

Comments
 (0)