/** * linkedgroupsAction * * @author Mikko Korpinen */ public function linkedgroupsAction() { // User identity, group header and group menu: // Group id $grpId = $this->_request->getParam('groupid'); $grpModel = new Default_Model_Groups(); // Check if group exists if (!isset($grpId) || !$grpModel->groupExistsById($grpId)) { $target = $this->_urlHelper->url(array('controller' => 'group', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($target); } // Group data $grpData = $this->getGroupData($grpId); // Menudata $menuData['id_grp'] = $grpId; $menuData['grp_action'] = 'linkedgroups'; $menuData['group_name_grp'] = $grpData['group_name_grp']; $menuData['grp_admins'] = $grpData['grp_admins']; // Set $this->view->... $this->view->grpData = $grpData; $this->view->menuData = $menuData; // Group membersAction special stuff: // Get linked groups $grpHasGrpModel = new Default_Model_GroupHasGroup(); $linkedgroups = $grpHasGrpModel->getGroupGroups($grpId); $linkedgroups = array_merge($linkedgroups['parents'], $linkedgroups['childs']); $usrHasGrpModel = new Default_Model_UserHasGroup(); $cmpModel = new Default_Model_Campaigns(); $linkedgroups_new = array(); foreach ($linkedgroups as $grp) { $grp['campaign_count'] = count($cmpModel->getCampaignsByGroup($grp['id_grp'])); $grp['member_count'] = count($usrHasGrpModel->getAllUsersInGroup($grp['id_grp'])); $linkedgroups_new[] = $grp; } // Set $this->view->... $this->view->linkedgroups = $linkedgroups_new; }
/** * unlinkgroupAction * * Unlink group from group. */ public function unlinkgroupAction() { $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; $grpmodel = new Default_Model_Groups(); $grp = $grpmodel->getGroupData($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); } $grpHasGrpModel = new Default_Model_GroupHasGroup(); $usrgrp = $grpHasGrpModel->getGroupGroups($grpId); if (!empty($usrgrp)) { $hasUserGroups = true; $usrgrp = array_merge($usrgrp['parents'], $usrgrp['childs']); } else { $hasUserGroups = false; } $this->view->grp = $grp; $this->view->usrgrp = $usrgrp; $this->view->hasUserGroups = $hasUserGroups; } else { // If not logged, redirecting to system message page $message = 'You must login in order to link groups!'; $url = $this->_urlHelper->url(array('controller' => 'msg', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->flash($message, $url); } }