예제 #1
0
 public function indexAction()
 {
     $this->_delete();
     $this->_multi();
     $page = (int) $this->_request->get("page", 1);
     if ($page < 1) {
         $page = 1;
     }
     $perPage = $this->_getPerPage();
     $qstring = array();
     $sq1 = new Daq_Db_Query();
     $sq1->select("count(*) AS `c_all`")->from("Wpjb_Model_Job t2")->where("t2.job_category=t1.id");
     $query = new Daq_Db_Query();
     $query->select("*");
     $query->from("Wpjb_Model_Application t");
     $query->join("t.job t2");
     $query->order("is_rejected ASC, applied_at DESC");
     $query->limitPage($page, $perPage);
     if ($this->_request->get("job") > 0) {
         $jId = $this->_request->get("job");
         $query->where("job_id = ?", $jId);
         $this->view->job = new Wpjb_Model_Job($jId);
         $qstring["job"] = $jId;
     }
     $result = $query->execute();
     $total = (int) $query->select("COUNT(*) as `total`")->limit(1)->fetchColumn();
     $this->view->current = $page;
     $this->view->total = ceil($total / $perPage);
     $this->view->data = $result;
     $qs = "";
     foreach ($qstring as $k => $v) {
         $qs .= $k . "/" . esc_html((string) $v);
     }
     $this->view->qstring = $qs;
 }
예제 #2
0
 public static function search($query, $category, $degree, $experience, $posted, $count, $page)
 {
     $select = new Daq_Db_Query();
     $select->select()->from("Wpjb_Model_Resume t1")->join("t1.users t2")->where("is_active = 1")->order("updated_at DESC");
     if (Wpjb_Project::getInstance()->conf("cv_approval") == 1) {
         $select->where("is_approved = ?", Wpjb_Model_Resume::RESUME_APPROVED);
     }
     if ($query) {
         $search = $query;
         $q = "MATCH(title, headline, experience, education)";
         $q .= "AGAINST (? IN BOOLEAN MODE)";
         $select->where($q, $search);
     }
     if (is_array($category)) {
         $category = array_map("intval", $category);
         $select->where("category_id IN (?)", join(",", $category));
     } elseif ($category) {
         $select->where("category_id = ?", $category);
     }
     if (is_array($degree)) {
         $degree = array_map("intval", $degree);
         $select->where("category_id IN (?)", join(",", $degree));
     } elseif ($degree) {
         $select->where("degree = ?", $degree);
     }
     if (is_array($experience)) {
         $experience = array_map("intval", $experience);
         $select->where("category_id IN (?)", join(",", $experience));
     } elseif ($experience) {
         $select->where("years_experience = ?", $experience);
     }
     if ($posted) {
         $days = posted;
         if ($days == 1) {
             $time = date("Y-m-d");
             $select->where("DATE(updated_at) = ?", date("Y-m-d"));
         } elseif ($days == 2) {
             $time = date("Y-m-d", strtotime("yesterday"));
             $select->where("DATE(updated_at) = ?", date("Y-m-d", strtotime("now -1 day")));
         } else {
             $select->where("updated_at >= DATE_SUB(NOW(), INTERVAL ? DAY)", (int) $days);
         }
     }
     $itemsFound = $select->select("COUNT(*) AS cnt")->fetchColumn();
     $select->select("*");
     if ($count > 0) {
         $select->limitPage($page, $count);
     }
     $list = $select->execute();
     $response = new stdClass();
     $response->resume = $list;
     $response->page = (int) $page;
     $response->perPage = (int) $count;
     $response->count = count($list);
     $response->total = (int) $itemsFound;
     return $response;
 }