1: <?php
2: 3: 4: 5:
6:
7: if (!defined('XOOPS_ROOT_PATH')) exit();
8:
9: require_once XOOPS_ROOT_PATH."/core/XCube_PageNavigator.class.php";
10: require_once XOOPS_MODULE_PATH."/user/admin/forms/GroupMemberEditForm.class.php";
11:
12: if (!defined('USER_GROUPMEMBER_DEFAULT_PERPAGE')) {
13: define ('USER_GROUPMEMBER_DEFAULT_PERPAGE', 10);
14: }
15:
16: 17: 18: 19: 20:
21: class User_GroupMemberAction extends User_Action
22: {
23: 24: 25: 26: 27:
28: var $mGroup = null;
29:
30: 31: 32:
33: var $mUsers = array();
34: var $mPageNavi = null;
35:
36: 37: 38:
39: var $mNoUsers = array();
40: var $mNoPageNavi = null;
41:
42: var $mActionForm = null;
43:
44: function prepare(&$controller, &$xoopsUser, $moduleConfig)
45: {
46:
47:
48:
49: $this->mActionForm =new User_GroupMemberEditForm();
50: $this->mActionForm->prepare();
51: }
52:
53: function getDefaultView(&$controller, &$xoopsUser)
54: {
55: $this->_loadGroup();
56: if (!is_object($this->mGroup)) {
57: return USER_FRAME_VIEW_ERROR;
58: }
59:
60: $memberHandler =& xoops_gethandler('member');
61: $groupid = $this->mGroup->getVar('groupid');
62:
63:
64:
65:
66: $total = $memberHandler->getUserCountByGroup($groupid);
67:
68: $this->mPageNavi =new XCube_PageNavigator("./index.php?action=GroupMember", XCUBE_PAGENAVI_START | XCUBE_PAGENAVI_PERPAGE);
69: $this->mPageNavi->setTotalItems($total);
70: $this->mPageNavi->addExtra('groupid', $groupid);
71: $this->mPageNavi->setPerpage(USER_GROUPMEMBER_DEFAULT_PERPAGE);
72:
73: $this->mPageNavi->fetch();
74:
75: $this->mUsers =& $memberHandler->getUsersByGroup($groupid, true, $this->mPageNavi->getPerpage(), $this->mPageNavi->getStart());
76:
77:
78:
79:
80: $total = $memberHandler->getUserCountByNoGroup($groupid);
81:
82: $this->mNoPageNavi=new XCube_PageNavigator("./index.php?action=GroupMember", XCUBE_PAGENAVI_START | XCUBE_PAGENAVI_PERPAGE);
83: $this->mNoPageNavi->setTotalItems($total);
84: $this->mNoPageNavi->addExtra('groupid', $groupid);
85: $this->mNoPageNavi->setPrefix("no");
86: $this->mNoPageNavi->setPerpage(USER_GROUPMEMBER_DEFAULT_PERPAGE);
87:
88: $this->mNoPageNavi->fetch();
89:
90: $this->mNoUsers =& $memberHandler->getUsersByNoGroup($groupid, true, $this->mNoPageNavi->getPerpage(), $this->mNoPageNavi->getStart());
91:
92: return USER_FRAME_VIEW_INDEX;
93: }
94:
95: function execute(&$controller, &$xoopsUser)
96: {
97: $this->_loadGroup();
98: if (!is_object($this->mGroup)) {
99: return USER_FRAME_VIEW_ERROR;
100: }
101:
102: $this->mActionForm->fetch();
103: $this->mActionForm->validate();
104:
105: if ($this->mActionForm->hasError()) {
106: return $this->getDefaultView($controller, $xoopsUser);
107: }
108:
109: $memberHandler =& xoops_gethandler('member');
110: $userHandler =& xoops_getmodulehandler('users');
111:
112: foreach($this->mActionForm->get('uid') as $uid => $value) {
113: $user =& $userHandler->get($uid);
114:
115: if (is_object($user)) {
116: if ($value == 1) {
117: $memberHandler->addUserToGroup($this->mGroup->get('groupid'), $uid);
118: }
119: elseif ($value == 2) {
120: $memberHandler->removeUserFromGroup($this->mGroup->get('groupid'), $uid);
121: }
122: }
123: }
124:
125: return $this->getDefaultView($controller, $xoopsUser);
126: }
127:
128: function _loadGroup()
129: {
130: if (!is_object($this->mGroup)) {
131: $id = xoops_getrequest('groupid');
132:
133: $handler =& xoops_getmodulehandler('groups');
134: $this->mGroup =& $handler->get($id);
135: }
136: }
137:
138: function executeViewIndex(&$controller, &$xoopsUser, &$render)
139: {
140: $render->setTemplateName("group_member.html");
141: $render->setAttribute("group", $this->mGroup);
142:
143: $render->setAttribute("users", $this->mUsers);
144: $render->setAttribute("pageNavi", $this->mPageNavi);
145:
146: $render->setAttribute("noUsers", $this->mNoUsers);
147: $render->setAttribute("noPageNavi", $this->mNoPageNavi);
148:
149: $render->setAttribute("actionForm", $this->mActionForm);
150: }
151: }
152:
153: ?>
154: