cms.object.listInTheme

Edit on GitHub

Triggered in: Cms\Classes\CmsObject.php

Provides opportunity to filter the items returned by a call to CmsObject::listInTheme()

Parameters provided are $cmsObject (the object being listed) and $objectList (a collection of the CmsObjects being returned).

Note: The $objectList provided is an object reference to a CmsObjectCollection, to make changes you must use object modifying methods.

Example usage (filters all pages except for the 404 page on the CMS Maintenance mode settings page):

// Extend only the Settings Controller
\System\Controllers\Settings::extend(function ($controller) {
    // Listen for the cms.object.listInTheme event
    \Event::listen('cms.object.listInTheme', function ($cmsObject, $objectList) {
        // Get the current context of the Settings Manager to ensure we only affect what we need to affect
        $context = \System\Classes\SettingsManager::instance()->getContext();
        if ($context->owner === 'winter.cms' && $context->itemCode === 'maintenance_settings') {
            // Double check that this is a Page List that we're modifying
            if ($cmsObject instanceof \Cms\Classes\Page) {
                // Perform filtering with an original-object modifying method as $objectList is passed by reference (being that it's an object)
                foreach ($objectList as $index => $page) {
                    if ($page->url !== '/404') {
                        $objectList->forget($index);
                    }
                }
            }
        }
    });
});

Keep informed

Sign up to our newsletter to receive updates on Winter CMS releases, new features in the works, and much more.
We'll never spam or give this address away.

Latest blog post

Winter: 16 Months Later

Published July 14, 2022
With the first year of Winter behind us, let's take a look at what we were able to achieve in 2021.

View this post Read all posts

Latest Winter CMS release

v1.2.1

Released October 20, 2022
14 UX/UI Improvements, 25 API Changes, 33 Bug Fixes, 4 Security Improvements, 5 Translation Improvements, 1 Performance Improvement, 2 Community Improvements, 2 Dependencies, 0 New Contributors * @cstorus made their first contribution in https://github.com/wintercms/winter/pull/616 * @simonmannsfeld made their first contribution in https://github.com/wintercms/winter/pull/623 * @quangtrongonline made their first contribution in https://github.com/wintercms/winter/pull/636 * @nathanlesage made their first contribution in https://github.com/wintercms/winter/pull/665 * @vllvll made their first contribution in https://github.com/wintercms/winter/pull/669 * @robertalexa made their first contribution in https://github.com/wintercms/winter/pull/668 * @iamyigitkoc made their first contribution in https://github.com/wintercms/winter/pull/624 * @hecc127 made their first contribution in https://github.com/wintercms/winter/pull/682 * @prsuhas made their first contribution in https://github.com/wintercms/winter/pull/723

View details View all releases