mirror of
				https://github.com/getgrav/grav.git
				synced 2025-10-31 18:36:12 +01:00 
			
		
		
		
	Should address issue #38 where some people are not getting cache clears
This commit is contained in:
		| @@ -66,6 +66,9 @@ class Cache extends Getters | |||||||
|         $this->key = substr(md5(($prefix ? $prefix : 'g') . $uri->rootUrl(true) . $this->config->key . GRAV_VERSION), 2, 8); |         $this->key = substr(md5(($prefix ? $prefix : 'g') . $uri->rootUrl(true) . $this->config->key . GRAV_VERSION), 2, 8); | ||||||
|  |  | ||||||
|         $this->driver = $this->getCacheDriver(); |         $this->driver = $this->getCacheDriver(); | ||||||
|  |  | ||||||
|  |         // Set the cache namespace to our unique key | ||||||
|  |         $this->driver->setNamespace($this->key); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @@ -132,7 +135,6 @@ class Cache extends Getters | |||||||
|     public function fetch($id) |     public function fetch($id) | ||||||
|     { |     { | ||||||
|         if ($this->enabled) { |         if ($this->enabled) { | ||||||
|             $id = $this->key . $id; |  | ||||||
|             return $this->driver->fetch($id); |             return $this->driver->fetch($id); | ||||||
|         } else { |         } else { | ||||||
|             return false; |             return false; | ||||||
| @@ -149,7 +151,6 @@ class Cache extends Getters | |||||||
|     public function save($id, $data, $lifetime = null) |     public function save($id, $data, $lifetime = null) | ||||||
|     { |     { | ||||||
|         if ($this->enabled) { |         if ($this->enabled) { | ||||||
|             $id = $this->key . $id; |  | ||||||
|             $this->driver->save($id, $data, $lifetime); |             $this->driver->save($id, $data, $lifetime); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -56,7 +56,6 @@ abstract class Folder | |||||||
|             } |             } | ||||||
|  |  | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         return $last_modified; |         return $last_modified; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -106,7 +106,7 @@ class Page | |||||||
|     public function init($file) |     public function init($file) | ||||||
|     { |     { | ||||||
|         $this->filePath($file->getPathName()); |         $this->filePath($file->getPathName()); | ||||||
|         $this->modified(filemtime($file->getPath())); |         $this->modified($file->getMTime()); | ||||||
|         $this->id($this->modified().md5($this->filePath())); |         $this->id($this->modified().md5($this->filePath())); | ||||||
|         $this->header(); |         $this->header(); | ||||||
|         $this->slug(); |         $this->slug(); | ||||||
|   | |||||||
| @@ -426,10 +426,17 @@ class Pages | |||||||
|             throw new \RuntimeException('Fatal error when creating page instances.'); |             throw new \RuntimeException('Fatal error when creating page instances.'); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         $last_modified = 0; | ||||||
|  |  | ||||||
|         /** @var \DirectoryIterator $file */ |         /** @var \DirectoryIterator $file */ | ||||||
|         foreach ($iterator as $file) { |         foreach ($iterator as $file) { | ||||||
|             $name = $file->getFilename(); |             $name = $file->getFilename(); | ||||||
|  |  | ||||||
|  |             $date = $file->getMTime(); | ||||||
|  |             if ($date > $last_modified) { | ||||||
|  |                 $last_modified = $date; | ||||||
|  |             } | ||||||
|  |  | ||||||
|             if ($file->isFile() && Utils::endsWith($name, CONTENT_EXT)) { |             if ($file->isFile() && Utils::endsWith($name, CONTENT_EXT)) { | ||||||
|  |  | ||||||
|                 $page->init($file); |                 $page->init($file); | ||||||
| @@ -465,8 +472,14 @@ class Pages | |||||||
|                     $this->grav->fireEvent('onFolderProcessed', new Event(['page' => $page])); |                     $this->grav->fireEvent('onFolderProcessed', new Event(['page' => $page])); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         // Override the modified and ID so that it takes the latest change | ||||||
|  |         // into account | ||||||
|  |         $page->modified($last_modified); | ||||||
|  |         $page->id($last_modified.md5($page->filePath())); | ||||||
|  |  | ||||||
|         // Sort based on Defaults or Page Overridden sort order |         // Sort based on Defaults or Page Overridden sort order | ||||||
|         $this->children[$page->path()] = $this->sort($page); |         $this->children[$page->path()] = $this->sort($page); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user