1: <?php
2: 3: 4: 5:
6:
7: if (!defined('XOOPS_ROOT_PATH')) exit();
8:
9: class StdCache_Initialize extends XCube_ActionFilter
10: {
11: function preBlockFilter()
12: {
13: $this->mController->mSetBlockCachePolicy->add(array(&$this, 'setForBlock'), XCUBE_DELEGATE_PRIORITY_FIRST + 10);
14: $this->mController->mSetModuleCachePolicy->add(array(&$this, 'setForModule'), XCUBE_DELEGATE_PRIORITY_FIRST + 10);
15: }
16:
17: function setForBlock($cacheInfo)
18: {
19: $user =& $this->mRoot->mContext->mXoopsUser;
20: $block =& $cacheInfo->mBlock;
21: switch ($block->getVar('show_func','n')) {
22: case 'b_legacy_mainmenu_show':
23: list($option) = explode('|', $block->getVar('options','n'));
24: if ($option) break;
25: $module = $this->mRoot->mContext->mXoopsModule;
26: $cacheInfo->mIdentityArr['dirname'] = is_object($module)?$module->getVar('dirname'):'';
27: break;
28:
29: }
30: if (is_object($user)) {
31: $cacheInfo->mGroupArr = $user->getGroups();
32: $cacheInfo->setEnableCache(!in_array(XOOPS_GROUP_ADMIN, $user->getGroups()));
33: }
34: else {
35: $cacheInfo->mGroupArr = array(XOOPS_GROUP_ANONYMOUS);
36: $cacheInfo->setEnableCache(true);
37: }
38: }
39:
40: function setForModule($cacheInfo)
41: {
42: $user =& $this->mRoot->mContext->mXoopsUser;
43: if (is_object($user)) {
44: $cacheInfo->mGroupArr = $user->getGroups();
45: $cacheInfo->setEnableCache(!in_array(XOOPS_GROUP_ADMIN, $user->getGroups()));
46: }
47: else {
48: $cacheInfo->mGroupArr = array(XOOPS_GROUP_ANONYMOUS);
49: $cacheInfo->setEnableCache(true);
50: }
51: }
52: }
53:
54: ?>