コード例 #1
0
ファイル: GroupController.php プロジェクト: jannev/site
 /**
  * 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;
 }
コード例 #2
0
ファイル: GroupController.php プロジェクト: jiiarra/site
 function joinAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         // Get group id and user id.
         $grpId = $this->_request->getParam('groupid');
         $usrId = $auth->getIdentity()->user_id;
         // Check group type
         $grpModel = new Default_Model_Groups();
         $grpTypeId = $grpModel->getGroupTypeId($grpId);
         $grpTypeModel = new Default_Model_GroupTypes();
         $isClosed = $grpTypeModel->isClosed($grpTypeId);
         if ($isClosed) {
             // Join the group waitinglist
             $usrHasGroupWaitingModel = new Default_Model_UserHasGroupWaiting();
             $usrHasGroupWaitingModel->addUserWaitingToGroup($grpId, $usrId);
             $privateMessagesModel = new Default_Model_PrivateMessages();
             $grpAdminsModel = new Default_Model_GroupAdmins();
             $grpAdmins = $grpAdminsModel->getGroupAdmins($grpId);
             $grpData = $grpModel->getGroupData($grpId);
             foreach ($grpAdmins as $admin) {
                 $adminmessage = array();
                 $adminmessage['privmsg_sender_id'] = 0;
                 $adminmessage['privmsg_receiver_id'] = $admin['id_usr'];
                 $adminmessage['privmsg_header'] = $grpData['group_name_grp'] . ' group has new user in waiting list';
                 $link = $this->_urlHelper->url(array('controller' => 'group', 'action' => 'waitinglist', 'grpid' => $grpId, 'language' => $this->view->language), 'lang_default', true);
                 $adminmessage['privmsg_message'] = '<a href="' . $link . '">Check user(s) who want to join ' . $grpData['group_name_grp'] . ' group.</a>';
                 $privateMessagesModel->addMessage($adminmessage);
             }
             $usermessage = array();
             $usermessage['privmsg_sender_id'] = 0;
             $usermessage['privmsg_receiver_id'] = $usrId;
             $usermessage['privmsg_header'] = $grpData['group_name_grp'] . ' waiting list';
             $link = $this->_urlHelper->url(array('groupid' => $grpId, 'language' => $this->view->language), 'group_shortview', true);
             $usermessage['privmsg_message'] = 'You are in waiting list for <a href="' . $link . '">' . $grpData['group_name_grp'] . ' group.</a>';
             $privateMessagesModel->addMessage($usermessage);
         } else {
             // Join the group.
             $usrHasGroupModel = new Default_Model_UserHasGroup();
             $usrHasGroupModel->addUserToGroup($grpId, $usrId);
         }
         // Redirect back to the group page.
         $target = $this->_urlHelper->url(array('groupid' => $grpId, 'language' => $this->view->language), 'group_shortview', true);
         $this->_redirector->gotoUrl($target);
     } else {
         // Not logged in - can't join a group.
         $target = $this->_urlHelper->url(array('controller' => 'index', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
         $this->_redirector->gotoUrl($target);
     }
 }