XCL Web Application Platform 2.5.0
The XoopsCube Legacy Project
Loading...
Searching...
No Matches
Initialize.class.php
1<?php
7
8if (!defined('XOOPS_ROOT_PATH')) {
9 exit();
10}
11
13{
14 public function preBlockFilter()
15 {
16 $this->mController->mSetBlockCachePolicy->add([&$this, 'setForBlock'], XCUBE_DELEGATE_PRIORITY_FIRST + 10);
17 $this->mController->mSetModuleCachePolicy->add([&$this, 'setForModule'], XCUBE_DELEGATE_PRIORITY_FIRST + 10);
18 }
19
20 public function setForBlock($cacheInfo)
21 {
22 $user =& $this->mRoot->mContext->mXoopsUser;
23 $block =& $cacheInfo->mBlock;
24 switch ($block->getVar('show_func', 'n')) {
25 case 'b_legacy_mainmenu_show': // mainmenu context
26 [$option] = explode('|', $block->getVar('options', 'n'));
27 if ($option) {
28 break;
29 } // but options setting no context
30 $module = $this->mRoot->mContext->mXoopsModule;
31 $cacheInfo->mIdentityArr['dirname'] = is_object($module)?$module->getVar('dirname'):'';
32 break;
33 // something other block with context cache
34 }
35 if (is_object($user)) {
36 $cacheInfo->mGroupArr = $user->getGroups();
37 $cacheInfo->setEnableCache(!in_array(XOOPS_GROUP_ADMIN, $user->getGroups()));
38 } else {
39 $cacheInfo->mGroupArr = [XOOPS_GROUP_ANONYMOUS];
40 $cacheInfo->setEnableCache(true);
41 }
42 }
43
44 public function setForModule($cacheInfo)
45 {
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()));
50 } else {
51 $cacheInfo->mGroupArr = [XOOPS_GROUP_ANONYMOUS];
52 $cacheInfo->setEnableCache(true);
53 }
54 }
55}
preBlockFilter()
[Abstract] Executes the logic, when the controller executes preBlockFilter().