/** * getGroupData - Get group data and realted stuff * * @param int $grpId * @return array */ private function getGroupData($grpId) { // Get authentication $auth = Zend_Auth::getInstance(); // Get group data $grpModel = new Default_Model_Groups(); $grpData = $grpModel->getGroupData($grpId); $grpData['description_grp'] = $this->oibs_nl2p($grpData['description_grp']); //$grpData['description_grp'] = str_replace("\n", '<br>', $grpData['description_grp']); $grpData['body_grp'] = $this->oibs_nl2p($grpData['body_grp'], ""); //$grpData['body_grp'] = str_replace("\n", '<br>', $grpData['body_grp']); // User has identity if ($auth->hasIdentity()) { $grpData['user_identity'] = true; $grpData['user_id'] = $auth->getIdentity()->user_id; } else { $grpData['user_identity'] = false; } // Group admins $grpAdminsModel = new Default_Model_GroupAdmins(); $grpAdmins = $grpAdminsModel->getGroupAdmins($grpId); $grpData['grp_admins'] = $grpAdmins; $user = $auth->getIdentity(); $grpData['user_is_group_admin'] = isset($user->user_id) ? $this->checkIfArrayHasKeyWithValue($grpAdmins, 'id_usr', $user->user_id) : false; // Group type $grpTypeId = $grpModel->getGroupTypeId($grpId); $grpTypeModel = new Default_Model_GroupTypes(); $grpData['is_closed'] = $grpTypeModel->isClosed($grpTypeId); // usrHasGrp models if (isset($user->user_id)) { $usrHasGrpModel = new Default_Model_UserHasGroup(); $grpData['user_has_group'] = $usrHasGrpModel->userHasGroup($grpId, $user->user_id); $usrHasGrpWaitingModel = new Default_Model_UserHasGroupWaiting(); $grpData['user_has_group_waiting'] = $usrHasGrpWaitingModel->userWaitingGroup($grpId, $user->user_id); $grpData['usr_waiting_count'] = $usrHasGrpWaitingModel->getUserCountByGroup($grpId); } else { $grpData['user_has_group'] = false; $grpData['user_has_group_waiting'] = false; } return $grpData; }
/** * waitinlistAction * * Waiting list for group */ public function waitinglistAction() { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $usrId = $auth->getIdentity()->user_id; $grpId = $this->_request->getParam('grpid'); if (!isset($grpId)) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'group', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } $this->view->grpid = $grpId; $usrHasGrpModel = new Default_Model_UserHasGroup(); $usrHasGrpWaitingModel = new Default_Model_UserHasGroupWaiting(); $grpmodel = new Default_Model_Groups(); $grp = $grpmodel->getGroupData($grpId); // Accept or deny button was pressed if ($this->getRequest()->isPost()) { // Get the IDs of the first and last selected user $firstUsrId = $this->getRequest()->getPost('accept_or_deny_first'); $lastUsrId = $this->getRequest()->getPost('accept_or_deny_last'); $privateMessagesModel = new Default_Model_PrivateMessages(); // Accept or deny selected user for ($i = $firstUsrId; $i <= $lastUsrId; $i++) { if ($this->getRequest()->getPost('select_' . $i) == 'accept') { $usrHasGrpWaitingModel->removeUserWaitingFromGroup($grpId, $i); $usrHasGrpModel->addUserToGroup($grpId, $i); // Send privamessage $usermessage = array(); $usermessage['privmsg_sender_id'] = 0; $usermessage['privmsg_receiver_id'] = $i; $usermessage['privmsg_header'] = $grp['group_name_grp'] . ' waiting list'; $link = $this->_urlHelper->url(array('groupid' => $grpId, 'language' => $this->view->language), 'group_shortview', true); $usermessage['privmsg_message'] = 'You have been accepted to <a href="' . $link . '">' . $grp['group_name_grp'] . ' group.</a>'; $privateMessagesModel->addMessage($usermessage); } else { if ($this->getRequest()->getPost('select_' . $i) == 'deny') { $usrHasGrpWaitingModel->removeUserWaitingFromGroup($grpId, $i); // Send privamessage $usermessage = array(); $usermessage['privmsg_sender_id'] = 0; $usermessage['privmsg_receiver_id'] = $i; $usermessage['privmsg_header'] = $grp['group_name_grp'] . ' waiting list'; $link = $this->_urlHelper->url(array('groupid' => $grpId, 'language' => $this->view->language), 'group_shortview', true); $usermessage['privmsg_message'] = 'You have not been approved by the <a href="' . $link . '">' . $grp['group_name_grp'] . ' group.</a>'; $privateMessagesModel->addMessage($usermessage); } } } } $users = $usrHasGrpWaitingModel->getAllWaitingUsersInGroup($grpId); // Is user group admin? $grpadminmodel = new Default_Model_GroupAdmins(); if (!$grpadminmodel->userIsAdmin($grpId, $usrId)) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'group', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } $this->view->grp = $grp; $this->view->users = $users; } else { // If not logged, redirecting to system message page $message = 'You must login in!'; $url = $this->_urlHelper->url(array('controller' => 'msg', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->flash($message, $url); } }