From 80808a15373ba4beb768ee899b27231e9286f53e Mon Sep 17 00:00:00 2001 From: Jeremy Thomerson Date: Tue, 4 Jun 2013 13:28:36 +0000 Subject: [PATCH] ENHANCEMENT: allow disabling of Versioned prepopulate_versionnumber_cache In large sites this can take a very long time, drastically slowing down the CMS admin. Even though the versions will then need to be queried individually, this is still significantly faster than loading hundreds of thousands of version numbers in one query and populating the cache array. --- model/Versioned.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/model/Versioned.php b/model/Versioned.php index 759338430..b2e2de3a0 100644 --- a/model/Versioned.php +++ b/model/Versioned.php @@ -79,6 +79,14 @@ class Versioned extends DataExtension { 'Version' => 'Int' ); + /** + * Used to enable or disable the prepopulation of the version number cache. + * Defaults to true. + * + * @var boolean + */ + private static $prepopulate_versionnumber_cache = true; + /** * Keep track of the archive tables that have been created. * @@ -1095,6 +1103,9 @@ class Versioned extends DataExtension { * @param array $idList */ public static function prepopulate_versionnumber_cache($class, $stage, $idList = null) { + if (!Config::inst()->get('Versioned', 'prepopulate_versionnumber_cache')) { + return; + } $filter = ""; if($idList) {