mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
FIX: Use Hierarchy::prepopulateTreeDataCache() in CMS (#2266)
* FIX: Use Hierarchy::prepopulate_numchildren_cache in tree-generation Only relevant if https://github.com/silverstripe/silverstripe-framework/pull/8380 is avialable, however coded defensively so it can be merged before that PR if needs be. See https://github.com/silverstripe/silverstripe-framework/issues/8379 * FIX: Use Hierarchy::prepopulateTreeDataCache() in CMS. Requires https://github.com/silverstripe/silverstripe-framework/pull/8395 * Cache tree_class instead of assuming it will always be SiteTree.
This commit is contained in:
parent
6e7bc38aad
commit
5bfc37ff4b
@ -54,6 +54,7 @@ use SilverStripe\ORM\DataObject;
|
||||
use SilverStripe\ORM\DB;
|
||||
use SilverStripe\ORM\FieldType\DBHTMLText;
|
||||
use SilverStripe\ORM\HiddenClass;
|
||||
use SilverStripe\ORM\Hierarchy\Hierarchy;
|
||||
use SilverStripe\ORM\Hierarchy\MarkedSet;
|
||||
use SilverStripe\ORM\SS_List;
|
||||
use SilverStripe\ORM\ValidationResult;
|
||||
@ -490,10 +491,15 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
|
||||
*/
|
||||
public function SiteTreeAsUL()
|
||||
{
|
||||
// Pre-cache sitetree version numbers for querying efficiency
|
||||
Versioned::prepopulate_versionnumber_cache(SiteTree::class, Versioned::DRAFT);
|
||||
Versioned::prepopulate_versionnumber_cache(SiteTree::class, Versioned::LIVE);
|
||||
$html = $this->getSiteTreeFor($this->config()->get('tree_class'));
|
||||
$treeClass = $this->config()->get('tree_class');
|
||||
$filter = $this->getSearchFilter();
|
||||
|
||||
DataObject::singleton($treeClass)->prepopulateTreeDataCache(null, [
|
||||
'childrenMethod' => $filter ? $filter->getChildrenMethod() : 'AllChildrenIncludingDeleted',
|
||||
'numChildrenMethod' => $filter ? $filter->getNumChildrenMethod() : 'numChildren',
|
||||
]);
|
||||
|
||||
$html = $this->getSiteTreeFor($treeClass);
|
||||
|
||||
$this->extend('updateSiteTreeAsUL', $html);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user