21 public $_mActiveModules = [];
22 public $_mActiveModulesLoadedFlag =
false;
23 public $_mActiveBlocks = [];
24 public $_mActiveBlocksLoadedFlag =
false;
28 public $mSystemPermissions;
29 public $mBlockPermissions;
34 public function getDefaultView(&$controller, &$xoopsUser)
39 if (!is_object($this->mGroup)) {
40 return USER_FRAME_VIEW_ERROR;
43 $root =& XCube_Root::getSingleton();
44 $root->mLanguageManager->loadModuleAdminMessageCatalog(
'system');
45 $root->mLanguageManager->loadModinfoMessageCatalog(
'system');
50 $memberHandler =& xoops_gethandler(
'member');
52 $total = $memberHandler->getUserCountByGroup($this->mGroup->getVar(
'groupid'));
53 $this->mPageNavi =
new XCube_PageNavigator(
'./index.php?action=GroupProperty', XCUBE_PAGENAVI_START | XCUBE_PAGENAVI_PERPAGE);
54 $this->mPageNavi->setTotalItems($total);
55 $this->mPageNavi->addExtra(
'groupid', $this->mGroup->get(
'groupid'));
57 $this->mPageNavi->fetch();
59 $this->mUsers =& $memberHandler->getUsersByGroup($this->mGroup->getVar(
'groupid'),
true, $this->mPageNavi->getPerPage(), $this->mPageNavi->getStart());
61 $moduleHandler =& xoops_gethandler(
'module');
65 if (file_exists(XOOPS_ROOT_PATH .
'/modules/system/constants.php')) {
66 if ($moduleHandler->getByDirname(
'system')) {
67 require_once XOOPS_ROOT_PATH .
'/modules/system/constants.php';
68 $fileHandler = opendir(XOOPS_ROOT_PATH .
'/modules/system/admin');
69 while ($file = readdir($fileHandler)) {
70 $infoFile = XOOPS_ROOT_PATH .
'/modules/system/admin/' . $file .
'/xoops_version.php';
71 if (file_exists($infoFile)) {
72 require_once $infoFile;
73 if (!empty($modversion[
'category'])) {
75 $this->mSystemPermissions[] =
new User_Permission($this->mGroup->getVar(
'groupid'), $item);
87 $this->_loadActiveModules();
89 $t_activeModuleIDs = [];
91 foreach ($this->_mActiveModules as $module) {
93 $this->mPermissions[] =
new User_Permission($this->mGroup->getVar(
'groupid'), $item);
95 $t_activeModuleIDs[] = $module->get(
'mid');
104 $blockHandler = xoops_gethandler(
'block');
105 $this->_loadActiveBlocks();
107 foreach ([0, 1, 3, 4, 5] as $side) {
108 $this->mBlockPermissions[$idx] = [];
110 foreach ($this->_mActiveBlocks[$side] as $block) {
112 $this->mBlockPermissions[$idx][] =
new User_Permission($this->mGroup->get(
'groupid'), $item);
120 return USER_FRAME_VIEW_INDEX;
123 public function _loadActiveModules()
125 if ($this->_mActiveModulesLoadedFlag) {
129 $moduleHandler =& xoops_gethandler(
'module');
130 $this->_mActiveModules =& $moduleHandler->getObjects(
new Criteria(
'isactive', 1));
132 $this->_mActiveModulesLoadedFlag =
true;
135 public function _loadActiveBlocks()
137 if ($this->_mActiveBlocksLoadedFlag) {
141 $this->_loadActiveModules();
143 $t_activeModuleIDs = [];
144 foreach ($this->_mActiveModules as $module) {
145 $t_activeModuleIDs[] = $module->get(
'mid');
147 $t_activeModuleIDs[] = 0;
149 $blockHandler = xoops_gethandler(
'block');
150 foreach ([0, 1, 3, 4, 5] as $side) {
151 $this->_mActiveBlocks[$side] = [];
152 $blockArr =& $blockHandler->getAllBlocks(
'object', $side,
null);
154 foreach ($blockArr as $block) {
155 if ($block->get(
'visible') && in_array($block->get(
'mid'), $t_activeModuleIDs)) {
156 $this->_mActiveBlocks[$side][] =& $block;
164 $this->_mActiveBlocksLoadedFlag =
true;
167 public function _loadGroup()
169 $id = xoops_getrequest(
'groupid');
171 $handler =& xoops_getmodulehandler(
'groups');
172 $this->mGroup =& $handler->get($id);
175 public function executeViewIndex(&$controller, &$xoopsUser, &$render)
177 $render->setTemplateName(
'group_property.html');
178 $render->setAttribute(
'group', $this->mGroup);
179 $render->setAttribute(
'modulePermissions', $this->mPermissions);
180 $render->setAttribute(
'blockPermissions', $this->mBlockPermissions);
181 $render->setAttribute(
'systemPermissions', $this->mSystemPermissions);
182 $render->setAttribute(
'users', $this->mUsers);
183 $render->setAttribute(
'pageNavi', $this->mPageNavi);