Version: current

# Class 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 reuslt of a DB::query() can 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.

  SS_Object
  CMSSiteTreeFilter

### Direct known subclasses

`CMSSiteTreeFilter_Catalog`, `CMSSiteTreeFilter_ChangedPages`, `CMSSiteTreeFilter_DeletedPages`, `CMSSiteTreeFilter_Search`

Abstract
Package: cms\content
Located at cms/code/CMSSiteTreeFilter.php

## Methods summary

`public static` | # `showInList( )`
`public` | # `getTree( )`
`protected` | # `populateIDs( )` Populate $this->ids with the IDs of the pages returned by pagesIncluded(), also including the necessary parent helper pages. Populate $this->ids with the IDs of the pages returned by pagesIncluded(), also including the necessary parent helper pages.
`public` | # `includeInTree( mixed $page )` Returns true if the given page should be included in the tree. Returns true if the given page should be included in the tree.

### Magic methods summary

## Properties summary

`protected mixed` | $ids | #
`protected array` | $expanded | #

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -