Exemple #1
0
 /**
  * Search functionality
  *
  * takes an object with optional members set and returns an array of matching objects
  *
  * @var stdClass $searchObject
  * @var string $order
  * @var string
  *
  * @return array
  */
 public function search($searchObject, $order = "{Schnippet::dbPrimaryKey} ASC", $limit = "0, 18446744073709551615")
 {
     $where = '1 = 1';
     $prepArray = array();
     if (isset($searchObject->user) && !empty($searchObject->user) && $searchObject->user != 'all') {
         $where .= " AND user = ?";
         $prepArray[] = $searchObject->user;
     }
     if (isset($searchObject->lang) && !empty($searchObject->lang) && $searchObject->lang != 'all') {
         $where .= " AND lang = ?";
         $prepArray[] = $searchObject->lang;
     }
     if (isset($searchObject->title) && !empty($searchObject->title)) {
         $where .= " AND title like ?";
         $prepArray[] = "%{$searchObject->title}%";
     }
     if (isset($searchObject->code) && !empty($searchObject->code)) {
         $where .= " AND MATCH(code) AGAINST(?)";
         $prepArray[] = $searchObject->code;
     }
     if (isset($searchObject->start_date) && isset($searchObject->end_date) && !empty($searchObject->start_date) && !empty($searchObject->end_date)) {
         $where .= " AND `time` BETWEEN ? AND ?";
         $prepArray[] = strtotime($searchObject->start_date);
         $prepArray[] = strtotime($searchObject->end_date);
     }
     if (!isset($_SESSION[APP_SES . 'id']) || $_SESSION[APP_SES . 'id'] == 0) {
         $where .= " AND `protected` = 'off'";
     }
     $sql = "SELECT * FROM {$this->table} WHERE {$where} ORDER BY {$order} LIMIT {$limit}";
     $query = $this->db->prepare($sql);
     $query->execute($prepArray);
     $result = array();
     while ($row = $query->fetch()) {
         $schnippet = new Schnippet();
         $schnippet->load($row['id']);
         $result[] = $schnippet;
         unset($schnippet);
     }
     return $result;
 }
Exemple #2
0
 public function search()
 {
     $this->loadModel('schnippet');
     $schnippet = new Schnippet();
     if ($_GET['search'] == 'latest') {
         $data['title'] = 'Latest Schnippets';
         $searchObject = new stdClass();
         $order = 'time DESC';
         $limit = '0, 25';
     } else {
         if ($_GET['search'] == 'search') {
             $data['title'] = 'Search Results';
             $searchObject = (object) $_GET;
             $order = 'title ASC';
             $limit = '0, 18446744073709551615';
         }
     }
     $this->loadModel(SLASH . 'users' . SLASH . 'user');
     $data['user'] = new User();
     $result = $schnippet->search($searchObject, $order, $limit);
     $data['result'] = $result;
     $this->loadView(SLASH . 'application' . SLASH . 'search', FALSE, $data);
 }