public function projectsAction() { /*--search options---*/ $search = trim($this->_getParam('search')); $status = trim($this->_getParam('status')); $project_manager_id = trim($this->_getParam('project_manager_id')); $team_leader_id = trim($this->_getParam('team_leader_id')); $where = '1=1'; $linkArray = array(); $this->view->search = "Search..."; if ($search != "" && $search != "Search...") { $where = "(p.title like '%{$search}%' or p.description like '%{$search}%' or p.client_info like '%{$search}%' or p.start_date like '%{$search}%' or p.end_date like '%{$search}%' or pm.first_name like '%{$search}%' or pm.last_name like '%{$search}%' or tl.first_name like '%{$search}%' or tl.last_name like '%{$search}%')"; $linkArray['search'] = $search; $this->view->search = $search; } if ($status != "") { if (is_null($where)) { $where .= " p.status='{$status}'"; } else { $where .= " and p.status='{$status}'"; } $linkArray['status'] = $status; $this->view->status = $status; } if ($project_manager_id != "") { if (is_null($where)) { $where .= " p.project_manager_id='{$project_manager_id}'"; } else { $where .= " and p.project_manager_id='{$project_manager_id}'"; } $linkArray['project_manager_id'] = $project_manager_id; $this->view->project_manager_id = $project_manager_id; } if ($team_leader_id != "") { if (is_null($where)) { $where .= " p.team_leader_id='{$team_leader_id}'"; } else { $where .= " and p.team_leader_id='{$team_leader_id}'"; } $linkArray['team_leader_id'] = $team_leader_id; $this->view->team_leader_id = $team_leader_id; } /*----search options----*/ $this->view->linkArray = $linkArray; $this->view->page_size = $page_size = $this->_getParam('page_size', 25); $page = $this->_getParam('page', 1); $model = new Application_Model_Project(); $table = $model->getMapper()->getDbTable(); $select = $table->select()->setIntegrityCheck(false)->from(array("p" => 'project'))->join(array("pm" => "user"), 'pm.id=p.project_manager_id', array("pm_first_name" => 'first_name', "pm_last_name" => 'last_name', 'pm_id' => 'id'))->join(array("tl" => "user"), 'tl.id=p.team_leader_id', array("tl_first_name" => 'first_name', "tl_last_name" => 'last_name', 'tl_id' => 'id'))->order('status Asc')->order('addedon desc')->where($where); //echo $sql = $select->__toString(); $paginator = Base_Paginator::factory($select); $paginator->setItemCountPerPage($page_size); $paginator->setCurrentPageNumber($page); $this->view->totalItems = $paginator->getTotalItemCount(); $this->view->paginator = $paginator; $this->view->projectManagers = $model->getActiveProjectManagers(); $this->view->teamLeaders = $model->getActiveTeamLeaders(); }