Source of file RebuildSimpleCacheTask.php
Size: 1,471 Bytes - Last Modified: 2021-12-23T10:26:52+00:00
/var/www/docs.ssmods.com/process/src/code/jobs/RebuildSimpleCacheTask.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | <?php class RebuildSimpleCacheTask extends BuildTask { public function run($request) { if (isset($_GET['Types']) && (Director::is_cli() || Permission::check('ADMIN'))) { $types = explode(',', $_GET['Types']); $classes = array(); foreach ($types as $t) { if (class_exists($t)) { $pages = SiteTree::get()->filter(array('ClassName' => $t)); $urls = array(); // only used for later context $cachedObject = null; foreach ($pages as $object) { if ($object->SiteID && class_exists('Multisites')) { // let's set the base directly $base = $object->Site()->getUrl(); if(substr($base, -1) !== '/') { // ensures base URL has a trailing slash $base .= '/'; } Config::inst()->update('Director', 'alternate_base_url', $base); } if (singleton('SimpleCachePublisher')->dontCache($object)) { continue; } if ($object->hasMethod('pagesAffectedByChanges')) { $pageUrls = $object->pagesAffectedByChanges(); foreach ($pageUrls as $url) { $urls[] = $url; } } else { $urls[] = $object->AbsoluteLink(); } $cachedObject = $object; } if ($cachedObject) { $job = new SimpleCachePublishingJob($cachedObject, $urls); singleton('QueuedJobService')->queueJob($job); } } } } } } |