18 public $mUserObjects = [];
19 public $mActionForm =
null;
20 public $mpageArr = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 0];
21 private $mAvatarWidth;
22 private $mAvatarHeight;
23 private $mAvatarMaxfilesize;
25 public function prepare(&$controller, &$xoopsUser, $moduleConfig)
28 $this->mActionForm->prepare();
30 $this->mAvatarWidth = $moduleConfig[
'avatar_width'];
31 $this->mAvatarHeight = $moduleConfig[
'avatar_height'];
32 $this->mAvatarMaxfilesize = $moduleConfig[
'avatar_maxsize'];
35 public function &_getHandler()
37 $handler =& xoops_getmodulehandler(
'users');
41 public function &_getPageNavi()
43 $navi =
new XCube_PageNavigator($this->_getBaseUrl(), XCUBE_PAGENAVI_START | XCUBE_PAGENAVI_PERPAGE);
45 $root =& XCube_Root::getSingleton();
46 $perpage = $root->mContext->mRequest->getRequest($navi->mPrefix.
'perpage');
48 if (isset($perpage) && 0 == (
int)$perpage) {
54 public function &_getFilterForm()
60 public function _getBaseUrl()
62 return './index.php?action=UserList';
65 public function executeViewIndex(&$controller, &$xoopsUser, &$render)
67 $render->setTemplateName(
'user_list.html');
68 $render->setAttribute(
'objects', $this->mObjects);
69 $render->setAttribute(
'pageNavi', $this->mFilter->mNavi);
70 $render->setAttribute(
'actionForm', $this->mActionForm);
71 $render->setAttribute(
'filterForm', $this->mFilter);
72 $render->setAttribute(
'pageArr', $this->mpageArr);
74 $member_handler =& $this->_getHandler();
75 $active_total = $member_handler->getCount(
new Criteria(
'level', 0,
'>'));
76 $inactive_total = $member_handler->getCount(
new Criteria(
'level', 0));
77 $render->setAttribute(
'activeUserTotal', $active_total);
78 $render->setAttribute(
'inactiveUserTotal', $inactive_total);
79 $render->setAttribute(
'UserTotal', $active_total+$inactive_total);
82 $render->setAttribute(
'avatar_width', $this->mAvatarWidth);
83 $render->setAttribute(
'avatar_height', $this->mAvatarHeight);
84 $render->setAttribute(
'avatar_maxsize', $this->mAvatarMaxfilesize);
87 public function execute(&$controller, &$xoopsUser)
89 $form_cancel = $controller->mRoot->mContext->mRequest->getRequest(
'_form_control_cancel');
90 if (
null != $form_cancel) {
91 return USER_FRAME_VIEW_CANCEL;
94 $this->mActionForm->fetch();
95 $this->mActionForm->validate();
97 if ($this->mActionForm->hasError()) {
98 return $this->_processConfirm($controller, $xoopsUser);
100 return $this->_processSave($controller, $xoopsUser);
104 public function _processConfirm(&$controller, &$xoopsUser)
106 $levelArr = $this->mActionForm->get(
'level');
107 $userHandler =& xoops_getmodulehandler(
'users');
111 foreach (array_keys($levelArr) as $uid) {
112 $user =& $userHandler->get($uid);
113 if (is_object($user)) {
114 $this->mUserObjects[$uid] =& $user;
119 return USER_FRAME_VIEW_INPUT;
122 public function _processSave(&$controller, &$xoopsUser)
124 $levelArr = $this->mActionForm->get(
'level');
125 $userHandler =& xoops_gethandler(
'user');
127 foreach (array_keys($levelArr) as $uid) {
129 $user =& $userHandler->get($uid);
130 if (is_object($user)) {
131 $olddata[
'level'] = $user->get(
'level');
132 $olddata[
'posts'] = $user->get(
'posts');
133 $newdata[
'level'] = $this->mActionForm->get(
'level', $uid);
134 $newdata[
'posts'] = $this->mActionForm->get(
'posts', $uid);
135 if (count(array_diff_assoc($olddata, $newdata)) > 0) {
136 $user->set(
'level', $this->mActionForm->get(
'level', $uid));
137 $user->set(
'posts', $this->mActionForm->get(
'posts', $uid));
138 if (!$userHandler->insert($user)) {
139 return USER_FRAME_VIEW_ERROR;
146 foreach (array_keys($levelArr) as $uid) {
147 if ((1 == $this->mActionForm->get(
'delete', $uid)) && (1 != $uid)) {
148 $user =& $userHandler->get($uid);
149 if (is_object($user)) {
150 XCube_DelegateUtils::call(
'Legacy.Admin.Event.UserDelete',
new XCube_Ref($user));
151 $memberhandler =& xoops_gethandler(
'member');
152 if ($memberhandler->delete($user)) {
153 XCube_DelegateUtils::call(
'Legacy.Admin.Event.UserDelete.Success',
new XCube_Ref($user));
155 XCube_DelegateUtils::call(
'Legacy.Admin.Event.UserDelete.Fail',
new XCube_Ref($user));
156 return USER_FRAME_VIEW_ERROR;
162 return USER_FRAME_VIEW_SUCCESS;
173 $render->setTemplateName(
'user_list_confirm.html');
174 $render->setAttribute(
'userObjects', $this->mUserObjects);
175 $render->setAttribute(
'actionForm', $this->mActionForm);
181 $t_arr = $this->mActionForm->get(
'level');
182 $render->setAttribute(
'uids', array_keys($t_arr));
186 public function executeViewSuccess(&$controller, &$xoopsUser, &$renderer)
188 $controller->executeForward(
'./index.php?action=UserList');
191 public function executeViewError(&$controller, &$xoopsUser, &$renderer)
193 $controller->executeRedirect(
'./index.php?action=UserList', 1, _MD_USER_ERROR_DBUPDATE_FAILED);
196 public function executeViewCancel(&$controller, &$xoopsUser, &$renderer)
198 $controller->executeForward(
'./index.php?action=UserList');