From 24578306b73f7016b75e7ea42a16f705f1539a17 Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Wed, 12 May 2021 09:43:57 -0400 Subject: [PATCH] Add feature requested in PR #136 - Allow modification of CacheFile string before output Co-authored-by: ethanbeyer --- wire/modules/PageRender.module | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/wire/modules/PageRender.module b/wire/modules/PageRender.module index 55b9f978..395db84f 100644 --- a/wire/modules/PageRender.module +++ b/wire/modules/PageRender.module @@ -11,8 +11,9 @@ * https://processwire.com * * @method renderPage(HookEvent $event) - * @method clearCacheFileAll(Page $page) - * @method clearCacheFilePages(PageArray $items, Page $page) + * @method void clearCacheFileAll(Page $page) + * @method void clearCacheFilePages(PageArray $items, Page $page) + * @method string saveCacheFileReady(Page $page, $data) * */ @@ -327,6 +328,22 @@ class PageRender extends WireData implements Module, ConfigurableModule { } } + /** + * Hook called when cache file is about to be saved for a Page + * + * #pw-hooker + * + * @param Page $page + * @param string $data Data that will be saved to cache file + * @return string Data to save to cache file + * @since 3.0.178 + * + */ + public function ___saveCacheFileReady(Page $page, $data) { + if($page) {} // ignore + return $data; + } + /** * Hook called before any other hooks to Page::render * @@ -547,7 +564,11 @@ class PageRender extends WireData implements Module, ConfigurableModule { } } - if($data && $cacheAllowed && $cacheFile) $cacheFile->save($data); + if($data && $cacheAllowed && $cacheFile) { + $data = $this->saveCacheFileReady($page, $data); + $cacheFile->save($data); + } + $event->return = $data; if(!$of) $page->of($of);