16 $this->mController->mSetBlockCachePolicy->add([&$this,
'setForBlock'], XCUBE_DELEGATE_PRIORITY_FIRST + 10);
17 $this->mController->mSetModuleCachePolicy->add([&$this,
'setForModule'], XCUBE_DELEGATE_PRIORITY_FIRST + 10);
20 public function setForBlock($cacheInfo)
22 $user =& $this->mRoot->mContext->mXoopsUser;
23 $block =& $cacheInfo->mBlock;
24 switch ($block->getVar(
'show_func',
'n')) {
25 case 'b_legacy_mainmenu_show':
26 [$option] = explode(
'|', $block->getVar(
'options',
'n'));
30 $module = $this->mRoot->mContext->mXoopsModule;
31 $cacheInfo->mIdentityArr[
'dirname'] = is_object($module)?$module->getVar(
'dirname'):
'';
35 if (is_object($user)) {
36 $cacheInfo->mGroupArr = $user->getGroups();
37 $cacheInfo->setEnableCache(!in_array(XOOPS_GROUP_ADMIN, $user->getGroups()));
39 $cacheInfo->mGroupArr = [XOOPS_GROUP_ANONYMOUS];
40 $cacheInfo->setEnableCache(
true);
44 public function setForModule($cacheInfo)
46 $user =& $this->mRoot->mContext->mXoopsUser;
47 if (is_object($user)) {
48 $cacheInfo->mGroupArr = $user->getGroups();
49 $cacheInfo->setEnableCache(!in_array(XOOPS_GROUP_ADMIN, $user->getGroups()));
51 $cacheInfo->mGroupArr = [XOOPS_GROUP_ANONYMOUS];
52 $cacheInfo->setEnableCache(
true);