@@ -17,7 +17,7 @@ component {
17
17
* @websitePermissionService.inject websitePermissionService
18
18
* @rulesEngineConditionService.inject rulesEngineConditionService
19
19
* @cloningService.inject presideObjectCloningService
20
- * @pageCache .inject cachebox:PresidePageCache
20
+ * @cachebox .inject cachebox
21
21
*/
22
22
public any function init (
23
23
required any loginService
@@ -30,7 +30,7 @@ component {
30
30
, required any websitePermissionService
31
31
, required any rulesEngineConditionService
32
32
, required any cloningService
33
- , required any pageCache
33
+ , required any cachebox
34
34
) {
35
35
_setLoginService ( arguments .loginService );
36
36
_setPageTypesService ( arguments .pageTypesService );
@@ -42,7 +42,7 @@ component {
42
42
_setWebsitePermissionService ( arguments .websitePermissionService );
43
43
_setRulesEngineConditionService ( arguments .rulesEngineConditionService );
44
44
_setCloningService ( arguments .cloningService );
45
- _setPageCache ( arguments .pageCache );
45
+ _setCachebox ( arguments .cachebox );
46
46
_setPageSlugsAreMultilingual ();
47
47
48
48
if ( $isFeatureEnabled ( " sitetree" ) ) {
@@ -1357,17 +1357,32 @@ component {
1357
1357
return page .id ?: " " ;
1358
1358
}
1359
1359
1360
- public void function clearPageCache ( required string pageId ) {
1361
- var pageUrl = ReReplace ( $getRequestContext ().buildLink ( page = arguments .pageId ), " ^https?://.*?/" , " /" );
1360
+ public void function clearAllCaches () {
1361
+ _getCachebox ().clearAll ();
1362
+ $announceInterception ( " onClearCaches" , {} );
1363
+ }
1364
+
1365
+ public void function clearPageCache ( string pageId = " " , string pageUrl = " " ) {
1366
+ var pageUrl = ReReplace ( Len ( arguments .pageId ) ? $getRequestContext ().buildLink ( page = arguments .pageId ) : arguments .pageUrl , " ^https?://.*?/" , " /" );
1362
1367
var sectionUrl = ReReplace ( pageUrl , " \.html$" , " /" );
1363
1368
1364
- _getPageCache ().clearByKeySnippet ( pageUrl );
1365
- _getPageCache ().clearByKeySnippet ( sectionUrl );
1369
+ if ( Len ( pageUrl ) ) {
1370
+ _getCachebox ().getCache ( " PresidePageCache" ).clearByKeySnippet ( pageUrl );
1371
+ _getCachebox ().getCache ( " PresidePageCache" ).clearByKeySnippet ( sectionUrl );
1366
1372
1367
- $announceInterception ( " onClearPageCaches" , {
1368
- pageUrl = pageUrl
1369
- , sectionUrl = sectionUrl
1370
- } );
1373
+ $announceInterception ( " onClearPageCaches" , {
1374
+ pageUrl = pageUrl
1375
+ , sectionUrl = sectionUrl
1376
+ } );
1377
+ }
1378
+ }
1379
+
1380
+ public void function clearPageTypeCaches ( required array pageTypes = [] ) {
1381
+ var pages = _getPObj ().selectData ( selectFields = [ " id" ], filter = { page_type = arguments .pageTypes } );
1382
+
1383
+ for ( var page in pages ) {
1384
+ clearPageCache ( pageId = page .id );
1385
+ }
1371
1386
}
1372
1387
1373
1388
// PRIVATE HELPERS
@@ -1821,11 +1836,11 @@ component {
1821
1836
_cloningService = arguments .cloningService ;
1822
1837
}
1823
1838
1824
- private any function _getPageCache () {
1825
- return _pageCache ;
1839
+ private any function _getCachebox () {
1840
+ return _cachebox ;
1826
1841
}
1827
- private void function _setPageCache ( required any pageCache ) {
1828
- _pageCache = arguments .pageCache ;
1842
+ private void function _setCachebox ( required any cachebox ) {
1843
+ _cachebox = arguments .cachebox ;
1829
1844
}
1830
1845
1831
1846
private void function _setPageSlugsAreMultilingual () {
0 commit comments