/** * viewAction - shows an individual group's page * * @author Mikko Aatola */ function viewAction() { // Get authentication $auth = Zend_Auth::getInstance(); // If user has identity if ($auth->hasIdentity()) { // Get data for this specific group. $grpId = $this->_request->getParam('groupid'); $grpModel = new Default_Model_Groups(); $usrHasGrpModel = new Default_Model_UserHasGroup(); $grpAdminsModel = new Default_Model_GroupAdmins(); $campaignModel = new Default_Model_Campaigns(); $grpAdmins = $grpAdminsModel->getGroupAdmins($grpId); $user = $auth->getIdentity(); // Add data to the view. $this->view->grpId = $grpId; $this->view->grpData = $grpModel->getGroupData($grpId); $this->view->grpUsers = $usrHasGrpModel->getAllUsersInGroup($grpId); $this->view->grpAdmins = $grpAdmins; $this->view->userHasGroup = $usrHasGrpModel; $this->view->campaigns = $campaignModel->getCampaignsByGroup($grpId); $this->view->userIsGroupAdmin = $this->checkIfArrayHasKeyWithValue($grpAdmins, 'id_usr', $user->user_id); } else { // Groups are only visible to registered users. $target = $this->_urlHelper->url(array('controller' => 'index', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($target); } }
public function indexAction() { $grpmodel = new Default_Model_Groups(); $cmpmodel = new Default_Model_Campaigns(); $grpadm = new Default_Model_GroupAdmins(); // If you find a better way to do this, be my guest. $cmps = $cmpmodel->getRecent(15); $cmps_new = array(); foreach ($cmps as $cmp) { $grp = $grpmodel->getGroupData($cmp['id_grp_cmp']); $cmp['group_name_grp'] = $grp['group_name_grp']; $cmps_new[] = $cmp; } // See previous comment. $grps = $grpmodel->getRecent(12); $grps_new = array(); foreach ($grps as $grp) { $adm = $grpadm->getGroupAdmins($grp['id_grp']); $grp['id_admin'] = $adm[0]['id_usr']; $grp['login_name_admin'] = $adm[0]['login_name_usr']; $grps_new[] = $grp; } $this->view->campaigns = $cmps_new; $this->view->groups = $grps_new; }
function getrecentgroupsAction() { $offset = isset($this->params['offset']) ? $this->params['offset'] : 0; $grpmodel = new Default_Model_Groups(); $grpadm = new Default_Model_GroupAdmins(); $usrHasGrp = new Default_Model_UserHasGroup(); $cmpmodel = new Default_Model_Campaigns(); $grps = $grpmodel->getRecentFromOffset($offset, 10); $grps_new = array(); foreach ($grps as $grp) { $adm = $grpadm->getGroupAdmins($grp['id_grp']); $grp['id_admin'] = $adm[0]['id_usr']; $grp['login_name_admin'] = $adm[0]['login_name_usr']; $grp['campaign_count'] = count($cmpmodel->getCampaignsByGroup($grp['id_grp'])); $grp['member_count'] = count($usrHasGrp->getAllUsersInGroup($grp['id_grp'])); $grps_new[] = $grp; } $this->view->recentgroups = $grps_new; }
private function isGroupAdmin($userId) { $groupModel = new Default_Model_GroupAdmins(); foreach ($groupModel->getGroupAdmins($this->id) as $user) { if ($user['id_usr'] == $userId) { $this->admin = true; return true; } } return false; }
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); } }
/** * Show mainpage and list newest and most viewed ideas and problems */ function indexAction() { // Variable for number recent campaigns to be sent to view $recentCampaignsCount = 0; $this->view->title = "index-home"; // Get cache from registry $cache = Zend_Registry::get('cache'); // $contentTypesModel = new Default_Model_ContentTypes(); // $userModel = new Default_Model_User(); // Load recent posts from cache $cachePosts = 'IndexPosts_' . $this->view->language; if (!($result = $cache->load($cachePosts))) { $contentModel = new Default_Model_Content(); $contentHasTagModel = new Default_Model_ContentHasTag(); // get data //($cty = 'all', $page = 1, $count = -1, $order = 'created', $lang = 'en', $ind = 0) $recentposts_raw = $contentModel->listRecent('all', 12, -1, 'created', $this->view->language, -1); $recentposts = array(); $i = 0; // gather data for recent posts foreach ($recentposts_raw as $post) { $recentposts[$i] = $post; $recentposts[$i]['tags'] = $contentHasTagModel->getContentTags($post['id_cnt']); $i++; } // Save recent posts data to cache $cache->save($recentposts, $cachePosts); } else { $recentposts = $result; } // Load most popular tags from cache if (!($result = $cache->load('IndexTags'))) { $tagsModel = new Default_Model_Tags(); $tags = $tagsModel->getPopular(20); /* // resize tags foreach ($tags as $k => $tag) { $size = round(50 + ($tag['count'] * 30)); if ($size > 300) { $size = 300; } $tags[$k]['tag_size'] = $size; } */ // Action helper for tags $tags = $this->_helper->tagsizes->popularTagCalc($tags); // Action helper for define is tag running number divisible by two $tags = $this->_helper->tagsizes->isTagDivisibleByTwo($tags); // Save most popular tags data to cache $cache->save($tags, 'IndexTags'); } else { $tags = $result; } // Laod most active users from cache if (!($result = $cache->load('IndexUsers'))) { $contentHasUserModel = new Default_Model_ContentHasUser(); $activeusers = $contentHasUserModel->getMostActive(5); // Save most active users data to cache $cache->save($activeusers, 'IndexUsers'); } else { $activeusers = $result; } // inject data to view if (isset($recentposts)) { $this->view->recentposts = $recentposts; } else { $this->view->recentposts = ''; } // Get recent campaigns $grpmodel = new Default_Model_Groups(); $campaignModel = new Default_Model_Campaigns(); $recentcampaigns = $campaignModel->getRecent(5); // If you find (time to think of) a better way to do this, be my guest. $cmps_new = array(); foreach ($recentcampaigns as $cmp) { $grp = $grpmodel->getGroupData($cmp['id_grp_cmp']); $cmp['group_name_grp'] = $grp['group_name_grp']; $cmps_new[] = $cmp; } // Get recent groups $grps = $grpmodel->getRecent(5); $grps_new = array(); $grpadm = new Default_Model_GroupAdmins(); foreach ($grps as $grp) { $adm = $grpadm->getGroupAdmins($grp['id_grp']); $grp['id_admin'] = $adm[0]['id_usr']; $grp['login_name_admin'] = $adm[0]['login_name_usr']; $grps_new[] = $grp; } $this->view->campaigns = $cmps_new; $this->view->groups = $grps_new; $this->view->poptags = $tags; $this->view->activeusers = $activeusers; $this->view->isLoggedIn = Zend_Auth::getInstance()->hasIdentity(); $this->view->recentCampaignsCount = $recentCampaignsCount; }
/** * 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; }
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); } }
/** * adminunlinkAction * * Shows contents which are linket to campaign. Campaign(group) admin can select and remove link. * * @author Mikko Korpinen */ public function adminunlinkAction() { // Get authentication $auth = Zend_Auth::getInstance(); // If user has identity if ($auth->hasIdentity()) { // Get requests $params = $this->getRequest()->getParams(); $relatestoid = $params['relatestoid']; $groupId = $params['groupid']; if (!isset($relatestoid) && !isset($groupId)) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } $groupAdminsModel = new Default_Model_GroupAdmins(); $groupAdmins = $groupAdminsModel->getGroupAdmins($groupId); $user = $auth->getIdentity(); if (!$groupAdminsModel->userIsAdmin($groupId, $user->user_id)) { $redirectUrl = $this->_urlHelper->url(array('controller' => 'campaign', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($redirectUrl); } $campaignModel = new Default_Model_Campaigns(); $campaignexists = $campaignModel->campaignExists($relatestoid); if ($campaignexists) { $relatesToCampaign = $campaignModel->getCampaignById($relatestoid); $this->view->relatesToCampaignName = $relatesToCampaign['name_cmp']; $campaignContents = $campaignModel->getAllContentsInCampaign($relatestoid); $campaignFlagContents = array(); $campaignNormalContents = array(); $contentflagmodel = new Default_Model_ContentFlags(); // Check if content is flaged foreach ($campaignContents as $content) { $cfl_ids = $contentflagmodel->getFlagsByContentId($content['id_cnt']); if (!empty($cfl_ids)) { $campaignFlagContents[] = $content; } else { $campaignNormalContents[] = $content; } } } $this->view->campaignexists = $campaignexists; $this->view->relatesToId = $relatestoid; $this->view->contents = $campaignNormalContents; $this->view->flagcontents = $campaignFlagContents; $this->view->userIsGroupAdmin = $this->checkIfArrayHasKeyWithValue($groupAdmins, 'id_usr', $user->user_id); } 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); } }