/** * Searches for members * It also handles followings: * * Master member of a member * CODE: member_index */ public function executeIndex(sfWebRequest $request) { # security if (!$this->getUser()->hasCredential(array('Administrator', 'Staff', 'Pilot', 'Member', 'Coordinator', 'Volunteer'), false)) { $this->getUser()->setFlash("warning", 'You don\'t have permission to access this url ' . $request->getReferer()); $this->redirect('dashboard/index'); } $this->getUser()->addRecentItem('Member', 'member', 'member/index'); # for navigation menu sfContext::getInstance()->getConfiguration()->loadHelpers('Partial'); slot('nav_menu', array('mission_coord', '')); # handle the master member if ($request->hasParameter('master_for') && $this->getUser()->hasCredential(array('Administrator', 'Staff', 'Member'), false)) { $this->master_for = MemberPeer::retrieveByPK($request->getParameter('master_for')); } else { $this->master_for = null; } // $this->member_id = $this->getRequestParameter('member_id'); $exclude_ids = array(); if ($this->master_for) { $exclude_ids[] = $this->master_for->getId(); } # filter $this->processFilter($request); if ($request->isMethod('post') || $request->getParameter('page')) { $this->pager = MemberPeer::getPager($this->max, $this->page, $this->member_Ex_id, $this->firstname, $this->lastname, $this->city, $this->state, $this->country, $this->wing_name, $this->active, $this->flight_status, $exclude_ids); $this->members = $this->pager->getResults(); } $this->is_active = $request->getParameter('actives'); # one result with member_id search will go to member view if (count($this->members) == 1 && $this->member_id > 0) { if ($this->master_for) { $url_add = '&master_for=' . $this->master_for->getId(); } else { $url_add = ''; } $this->redirect('@member_view?id=' . $this->members[0]->getId() . $url_add); } }