/** * infoAction * * @author Mikko Korpinen */ public function infoAction() { // 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'] = 'info'; $menuData['group_name_grp'] = $grpData['group_name_grp']; $menuData['grp_admins'] = $grpData['grp_admins']; // Set $this->view->... $this->view->menuData = $menuData; // Group infoAction special stuff: // Group weblinks $groupWeblinksModel = new Default_Model_GroupWeblinks(); $grpData['groupWeblinks'] = $groupWeblinksModel->getGroupWeblinks($grpId); $i = 0; foreach ($grpData['groupWeblinks'] as $weblink) { if (strlen($weblink['name_gwl']) == 0 || strlen($weblink['url_gwl']) == 0) { unset($grpData['groupWeblinks'][$i]); } $i++; } // Group files $filesModel = new Default_Model_Files(); $files = $filesModel->getFilenames($grpId, "group"); // Set $this->view->... $this->view->grpData = $grpData; $this->view->files = $files; }
function editAction() { $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $grpId = $this->_request->getParam('id'); if (!$grpId) { $target = $this->_urlHelper->url(array('controller' => 'index', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($target); } // Only group admins get to edit group info. $grpAdminsModel = new Default_Model_GroupAdmins(); $grpAdmins = $grpAdminsModel->getGroupAdmins($grpId); $userIsGroupAdmin = $this->checkIfArrayHasKeyWithValue($grpAdmins, 'id_usr', $auth->getIdentity()->user_id); if (!$userIsGroupAdmin) { $target = $this->_urlHelper->url(array('groupid' => $grpId, 'language' => $this->view->language), 'group_shortview', true); $this->_redirector->gotoUrl($target); } // Get existing group info. $grpModel = new Default_Model_Groups(); $grpData = $grpModel->getGroupData($grpId); // Create the form in edit mode. $form = new Default_Form_AddGroupForm($this, array('mode' => 'edit', 'oldname' => $grpData['group_name_grp'])); // Populate the form. $formData = array(); $formData['groupname'] = $grpData['group_name_grp']; $formData['grouptype'] = $grpData['id_type_grp']; $formData['groupdesc'] = $grpData['description_grp']; $formData['groupbody'] = $grpData['body_grp']; // Get group weblinks $groupWeblinksModel = new Default_Model_GroupWeblinks(); $groupWeblinks = $groupWeblinksModel->getGroupWeblinks($grpId); foreach ($groupWeblinks as $groupWeblink) { $formData['weblinks_name_site' . $groupWeblink['count_gwl']] = $groupWeblink['name_gwl']; $formData['weblinks_url_site' . $groupWeblink['count_gwl']] = $groupWeblink['url_gwl']; } $form->populate($formData); $this->view->form = $form; $this->view->grpName = $grpData['group_name_grp']; // If the form is posted and valid, save the changes to db. $request = $this->getRequest(); if ($request->isPost()) { $post = $request->getPost(); if ($form->isValid($post)) { // Change existing group info. $groupModel = new Default_Model_Groups(); $newGroupId = $groupModel->editGroup($grpId, $this->replaceWhitespace($post['groupname']), $post['grouptype'], $post['groupdesc'], $post['groupbody']); // Set weblinks if (isset($post['weblinks_name_site1']) && isset($post['weblinks_url_site1'])) { $groupWeblinksModel->setWeblink($grpId, $post['weblinks_name_site1'], $post['weblinks_url_site1'], 1); } if (isset($post['weblinks_name_site2']) && isset($post['weblinks_url_site2'])) { $groupWeblinksModel->setWeblink($grpId, $post['weblinks_name_site2'], $post['weblinks_url_site2'], 2); } if (isset($post['weblinks_name_site3']) && isset($post['weblinks_url_site3'])) { $groupWeblinksModel->setWeblink($grpId, $post['weblinks_name_site3'], $post['weblinks_url_site3'], 3); } if (isset($post['weblinks_name_site4']) && isset($post['weblinks_url_site4'])) { $groupWeblinksModel->setWeblink($grpId, $post['weblinks_name_site4'], $post['weblinks_url_site4'], 4); } if (isset($post['weblinks_name_site5']) && isset($post['weblinks_url_site5'])) { $groupWeblinksModel->setWeblink($grpId, $post['weblinks_name_site5'], $post['weblinks_url_site5'], 5); } // 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' => 'groupsandcampaigns', 'action' => 'index', 'language' => $this->view->language), 'lang_default', true); $this->_redirector->gotoUrl($target); } }