function endAction() { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $cmpId = $this->_request->getParam('id'); if (!$cmpId) { $target = $this->_urlHelper->url(array('controller' => 'index', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($target); } // Get group id from campaign info. $cmpModel = new Default_Model_Campaigns(); $cmp = $cmpModel->getCampaignById($cmpId)->toArray(); $grpId = $cmp['id_grp_cmp']; // Only group admins can end campaign. $grpAdminsModel = new Default_Model_GroupAdmins(); $grpAdmins = $grpAdminsModel->getGroupAdmins($grpId); $userIsGroupAdmin = $this->checkIfArrayHasKeyWithValue($grpAdmins, 'id_usr', $auth->getIdentity()->user_id); if (!$userIsGroupAdmin) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } // Check if campaign status is ended $status = $cmpModel->getStatus($cmpId); if ($status === "ended") { $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } // Chang end date to yesterday $cmpModel->endCampaign($cmpId, $cmp['start_time_cmp']); // Redirect back to the campaign page. $target = $this->_urlHelper->url(array('cmpid' => $cmpId, 'language' => $this->view->language), 'campaign_view', true); $this->_redirector->gotoUrl($target); } else { // Not logged in. $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } }
/** * viewAction * * Show the campaign view page */ public function viewAction() { $auth = Zend_Auth::getInstance(); $user = $auth->getIdentity(); $cmpid = $this->_request->getParam('cmpid'); // Get campaign & its contents. $cmpmodel = new Default_Model_Campaigns(); $cmp = $cmpmodel->getCampaignById($cmpid)->toArray(); $cmp['ingress_cmp'] = str_replace("\n", '<br>', $cmp['ingress_cmp']); $cmp['description_cmp'] = str_replace("\n", '<br>', $cmp['description_cmp']); $cnts = $cmpmodel->getAllContentsInCampaign($cmpid); // If user has identity if ($auth->hasIdentity()) { $this->view->identity = true; $uhgModel = new Default_Model_UserHasGroup(); $this->view->userHasGroup = $uhgModel->userHasGroup($cmp['id_grp_cmp'], $user->user_id); // Get group admins. $grpAdminsModel = new Default_Model_GroupAdmins(); $grpAdmins = $grpAdminsModel->getGroupAdmins($cmp['id_grp_cmp']); $this->view->userIsGroupAdmin = $this->checkIfArrayHasKeyWithValue($grpAdmins, 'id_usr', $user->user_id); } else { $this->view->identity = false; } // Campaign weblinks $campaignWeblinksModel = new Default_Model_CampaignWeblinks(); $cmp['campaignWeblinks'] = $campaignWeblinksModel->getCampaignWeblinks($cmpid); $i = 0; foreach ($cmp['campaignWeblinks'] as $weblink) { if (strlen($weblink['name_cwl']) == 0 || strlen($weblink['url_cwl']) == 0) { unset($cmp['campaignWeblinks'][$i]); } $i++; } // Get group info. $grpmodel = new Default_Model_Groups(); $grp = $grpmodel->getGroupData($cmp['id_grp_cmp']); $grpname = $grp['group_name_grp']; // Get campaign campaigns $cmpHasCmpModel = new Default_Model_CampaignHasCampaign(); $linkedcampaigns = $cmpHasCmpModel->getCampaignCampaigns($cmpid); $linkedcampaigns = array_merge($linkedcampaigns['parents'], $linkedcampaigns['childs']); $comments = new Oibs_Controller_Plugin_Comments("campaign", $cmpid); if ($this->view->identity) { $comments->allowComments(true); } $this->view->jsmetabox->append('commentUrls', $comments->getUrls()); $comments->loadComments(); $this->view->hasFeeds = Oibs_Controller_Plugin_RssReader::hasFeeds($cmpid, "campaign"); $this->view->comments = $comments; $this->view->campaign = $cmp; $this->view->cmpcnts = $cnts; $this->view->grpname = $grpname; $this->view->linkedcampaigns = $linkedcampaigns; $this->view->status = $cmpmodel->getStatus($cmpid); }