<linkrel='stylesheet'type='text/css'href="https://www.gnusocial.rocks//assets/fonts/opensans/opensans.css"><title>Milestone: Collections - GNU social V3</title>
</head><body>
<header>
<divclass="home-menu menu menu-horizontal menu-fixed">
<p>We have generalized collections around our search engine. For that introducing
the <ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/Collection">Collection component</a>.</p>
<p>This structure has the following implication:</p>
<pre><code>Collection -> OrderedCollection
|-> Notes (known as Feed)
|-> Actors (known as Circle)
|-> Other Object (known as Collection of ...)
|-> Attachments: AttachmentCollection
|-> Tags: TagCollection
</code></pre>
<p>And it allow us to centralise the scope system in the core, ensuring that no
actor will have access to notes or other objects that shouldn't be able to see.</p>
<p>Finally, with this, a plugin such as <ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/NoteTypeFeedFilter">Note Type Feed Filter</a> can be useful in
every note collection (feed).</p>
<p>It also allows plugins such as ActivityPub to <ahref="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ActivityPub/Util/OrderedCollectionController.php">translate every collection