function leaveAction() { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { // Get group id and user id. $grpId = $this->_request->getParam('groupid'); $usrId = $auth->getIdentity()->user_id; // Get confirm 0 = question, 1 = leave and delete also content links from group campaigns, 2 = leave only $confirm = $this->_request->getParam('confirm'); $groupAdminsModel = new Default_Model_GroupAdmins(); if ($groupAdminsModel->userIsAdmin($grpId, $usrId)) { // Group admin can't leave the group. $message = "You can't leave this group " . "because you're its admin."; $url = $this->_urlHelper->url(array('controller' => 'msg', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->flash($message, $url); } else { // Get group campaings where user have content linked $usrModel = new Default_Model_User(); $campaigns = $usrModel->getUserCampaignsWhereUserHasContent($usrId, $grpId); //echo '<pre>'; var_dump($campaigns); //$contents = $usrModel->getUserContentsInCampaign($usrId, $campaigns[1]['id_cmp']); //echo '<pre>'; var_dump($contents); if (isset($confirm) && $confirm == 1) { // Leave group and delete all content linking from group campaigns $usrHasGroupModel = new Default_Model_UserHasGroup(); $cmpHasCntModel = new Default_Model_CampaignHasContent(); $usrHasGroupModel->removeUserFromGroup($grpId, $usrId); foreach ($campaigns as $campaign) { $contents = $usrModel->getUserContentsInCampaign($usrId, $campaign['id_cmp']); foreach ($contents as $content) { $cmpHasCntModel->removeContentFromCampaign($content['id_cmp'], $content['id_cnt']); } } $redirect = true; } elseif (isset($confirm) && $confirm == 2) { // Only leave campaign $usrHasGroupModel = new Default_Model_UserHasGroup(); $usrHasGroupModel->removeUserFromGroup($grpId, $usrId); $redirect = true; } else { // No confirmation yet $this->view->campaigns = $campaigns; $this->view->contentInCampaigns = count($campaigns); $this->view->grpId = $grpId; $redirect = false; } } if ($redirect) { // 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 $target = $this->_urlHelper->url(array('controller' => 'index', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($target); } }
/** * removeadminlinkAction * * Remove link to content from campaign * * @author Mikko Korpinen */ public function removeadminlinksAction() { // Get authentication $auth = Zend_Auth::getInstance(); // If user has identity if ($auth->hasIdentity()) { $cmpId = $this->_request->getParam('cmpid'); $this->view->cmpid = $cmpId; $cntId = $this->_request->getParam('cntid'); $this->view->cntid = $cntId; if (!(isset($cmpId) && isset($cntId))) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } $cmpModel = new Default_Model_Campaigns(); $cmp = $cmpModel->getCampaignById($cmpId); $grpId = $cmp['id_grp_cmp']; $usrId = $auth->getIdentity()->user_id; $grpadminmodel = new Default_Model_GroupAdmins(); if (!$grpadminmodel->userIsAdmin($grpId, $usrId)) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } $cmphascntmodel = new Default_Model_CampaignHasContent(); $cmphascntmodel->removeContentFromCampaign($cmpId, $cntId); // TODO: // Tell the user that the unlink was created. // Redirect back to the current campaign's page. $target = $this->_urlHelper->url(array('cmpid' => $cmpId, 'language' => $this->view->language), 'campaign_view', true); $this->_redirector->gotoUrl($target); } else { // If not logged, redirecting to system message page $message = 'content-link-not-logged'; $url = $this->_urlHelper->url(array('controller' => 'msg', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->flash($message, $url); } }
/** * removelinkAction * * Remove link to content from campaign * * @author Mikko Korpinen */ public function removelinksAction() { $cmpId = $this->_request->getParam('cmpid'); $this->view->cmpid = $cmpId; $cntId = $this->_request->getParam('cntid'); $this->view->cntid = $cntId; if (!(isset($cmpId) && isset($cntId))) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector($redirectUrl); } $cmphascntmodel = new Default_Model_CampaignHasContent(); $cmphascntmodel->removeContentFromCampaign($cmpId, $cntId); // TODO: // Tell the user that the link was created. // Redirect back to the current campaign's page. $target = $this->_urlHelper->url(array('cmpid' => $cmpId, 'language' => $this->view->language), 'campaign_view', true); $this->_redirector->gotoUrl($target); }