コード例 #1
0
 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;
 }
コード例 #2
0
ファイル: AjaxController.php プロジェクト: jiiarra/site
 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;
 }
コード例 #3
0
ファイル: RssReader.php プロジェクト: jannev/site
 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;
 }
コード例 #4
0
ファイル: CampaignController.php プロジェクト: jannev/site
 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);
     }
 }
コード例 #5
0
ファイル: IndexController.php プロジェクト: jannev/site
 /**
  *	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;
 }
コード例 #6
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;
 }
コード例 #7
0
ファイル: GroupController.php プロジェクト: jiiarra/site
 /**
  * waitinlistAction
  *
  * Waiting list for group
  */
 public function waitinglistAction()
 {
     $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;
         $usrHasGrpModel = new Default_Model_UserHasGroup();
         $usrHasGrpWaitingModel = new Default_Model_UserHasGroupWaiting();
         $grpmodel = new Default_Model_Groups();
         $grp = $grpmodel->getGroupData($grpId);
         // Accept or deny button was pressed
         if ($this->getRequest()->isPost()) {
             // Get the IDs of the first and last selected user
             $firstUsrId = $this->getRequest()->getPost('accept_or_deny_first');
             $lastUsrId = $this->getRequest()->getPost('accept_or_deny_last');
             $privateMessagesModel = new Default_Model_PrivateMessages();
             // Accept or deny selected user
             for ($i = $firstUsrId; $i <= $lastUsrId; $i++) {
                 if ($this->getRequest()->getPost('select_' . $i) == 'accept') {
                     $usrHasGrpWaitingModel->removeUserWaitingFromGroup($grpId, $i);
                     $usrHasGrpModel->addUserToGroup($grpId, $i);
                     // Send privamessage
                     $usermessage = array();
                     $usermessage['privmsg_sender_id'] = 0;
                     $usermessage['privmsg_receiver_id'] = $i;
                     $usermessage['privmsg_header'] = $grp['group_name_grp'] . ' waiting list';
                     $link = $this->_urlHelper->url(array('groupid' => $grpId, 'language' => $this->view->language), 'group_shortview', true);
                     $usermessage['privmsg_message'] = 'You have been accepted to <a href="' . $link . '">' . $grp['group_name_grp'] . ' group.</a>';
                     $privateMessagesModel->addMessage($usermessage);
                 } else {
                     if ($this->getRequest()->getPost('select_' . $i) == 'deny') {
                         $usrHasGrpWaitingModel->removeUserWaitingFromGroup($grpId, $i);
                         // Send privamessage
                         $usermessage = array();
                         $usermessage['privmsg_sender_id'] = 0;
                         $usermessage['privmsg_receiver_id'] = $i;
                         $usermessage['privmsg_header'] = $grp['group_name_grp'] . ' waiting list';
                         $link = $this->_urlHelper->url(array('groupid' => $grpId, 'language' => $this->view->language), 'group_shortview', true);
                         $usermessage['privmsg_message'] = 'You have not been approved by the <a href="' . $link . '">' . $grp['group_name_grp'] . ' group.</a>';
                         $privateMessagesModel->addMessage($usermessage);
                     }
                 }
             }
         }
         $users = $usrHasGrpWaitingModel->getAllWaitingUsersInGroup($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);
         }
         $this->view->grp = $grp;
         $this->view->users = $users;
     } else {
         // If not logged, redirecting to system message page
         $message = 'You must login in!';
         $url = $this->_urlHelper->url(array('controller' => 'msg', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true);
         $this->flash($message, $url);
     }
 }
コード例 #8
0
ファイル: Groups.php プロジェクト: jannev/site
 /**
  *   removeGroup
  *   Removes the group from the database
  *
  *   @param int id_grp
  *   @author Mikko Aatola
  */
 public function removeGroup($id_grp = 0)
 {
     if (!$id_grp) {
         return false;
     }
     // Delete the group's campaigns.
     $data = $this->_db->select()->from('campaigns_cmp', 'id_cmp')->where('id_grp_cmp = ?', $id_grp);
     $campaigns = $this->_db->fetchAll($data);
     $cmpModel = new Default_Model_Campaigns();
     foreach ($campaigns as $cmp) {
         $cmpModel->removeCampaign($cmp['id_cmp']);
     }
     // Delete group weblinks
     $grpWeblinksModel = new Default_Model_GroupWeblinks();
     $grpWeblinksModel->removeGroupWeblinks($id_grp);
     // Delete group-admin links from grp_has_admin_usr.
     $grpAdm = new Default_Model_GroupAdmins();
     $grpAdm->removeAdminsFromGroup($id_grp);
     // Delete groups files
     $filesModel = new Default_Model_Files();
     $filesModel->removeFiles($id_grp, "group");
     // Delete group.
     $where = $this->getAdapter()->quoteInto('id_grp = ?', $id_grp);
     $this->delete($where);
 }
コード例 #9
0
ファイル: CampaignController.php プロジェクト: jiiarra/site
 /**
  * removecampaignlinkAction - Remove campaign link
  */
 public function removecampaignlinkAction()
 {
     // Get authentication
     $auth = Zend_Auth::getInstance();
     // If user has identity
     if ($auth->hasIdentity()) {
         $parentCmpId = $this->_request->getParam('parentcmpid');
         $this->view->parentcmpid = $parentCmpId;
         $childCmpId = $this->_request->getParam('childcmpid');
         $this->view->childcmpid = $childCmpId;
         if (!(isset($parentCmpId) && isset($childCmpId))) {
             $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($parentCmpId);
         $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);
         }
         $cmphascmpmodel = new Default_Model_CampaignHasCampaign();
         $cmphascmpmodel->removeCampaignFromCampaign($parentCmpId, $childCmpId);
         $cmphascmpmodel->removeCampaignFromCampaign($childCmpId, $parentCmpId);
         // TODO:
         // Tell the user that the unlink was created.
         // Redirect back to the current campaign's page.
         $target = $this->_urlHelper->url(array('cmpid' => $parentCmpId, '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);
     }
 }
コード例 #10
0
ファイル: GroupController.php プロジェクト: jaakkop/site
 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;
         $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 {
             // Remove user from group.
             $usrHasGroupModel = new Default_Model_UserHasGroup();
             $usrHasGroupModel->removeUserFromGroup($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);
     }
 }