summaryrefslogtreecommitdiffstats
path: root/lib/public/Search/SearchResultEntry.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/public/Search/SearchResultEntry.php')
-rw-r--r--lib/public/Search/SearchResultEntry.php21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/public/Search/SearchResultEntry.php b/lib/public/Search/SearchResultEntry.php
index b661ced5014..347c3fcd289 100644
--- a/lib/public/Search/SearchResultEntry.php
+++ b/lib/public/Search/SearchResultEntry.php
@@ -83,6 +83,13 @@ class SearchResultEntry implements JsonSerializable {
protected $rounded;
/**
+ * @var string[]
+ * @psalm-var array<string, string>
+ * @since 20.0.0
+ */
+ protected $attributes = [];
+
+ /**
* @param string $thumbnailUrl a relative or absolute URL to the thumbnail or icon of the entry
* @param string $title a main title of the entry
* @param string $subline the secondary line of the entry
@@ -107,6 +114,19 @@ class SearchResultEntry implements JsonSerializable {
}
/**
+ * Add optional attributes to the result entry, e.g. an ID or some other
+ * context information that can be read by the client application
+ *
+ * @param string $key
+ * @param string $value
+ *
+ * @since 20.0.0
+ */
+ public function addAttribute(string $key, string $value): void {
+ $this->attributes[$key] = $value;
+ }
+
+ /**
* @return array
*
* @since 20.0.0
@@ -119,6 +139,7 @@ class SearchResultEntry implements JsonSerializable {
'resourceUrl' => $this->resourceUrl,
'icon' => $this->icon,
'rounded' => $this->rounded,
+ 'attributes' => $this->attributes,
];
}
}