SilverStripe\CMS\Controllers\CMSSiteTreeFilter

Base class for filtering the subtree for certain node statuses.

The simplest way of building a CMSSiteTreeFilter is to create a pagesToBeShown() method that
returns an Iterator of maps, each entry containing the 'ID' and 'ParentID' of the pages to be
included in the tree. The result of a DB::query() can then be returned directly.

If you wish to make a more complex tree, you can overload includeInTree($page) to return true/
false depending on whether the given page should be included. Note that you will need to include
parent helper pages yourself.