/** * 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; }
public function get() { $id = intval($_GET['id']); $this->loadModel('schnippet'); $schnippet = new Schnippet(); $schnippet->load($id); if ($schnippet->getMember('protected') == 'on' && (!isset($_SESSION[APP_SES . 'id']) || $_SESSION[APP_SES . 'id'] == 0)) { $_SESSION[APP_SES . 'route'] = '/application/schnippets&m=edit&id=' . $_GET['id']; gotoUrl('/?route=/users/users'); exit; } $this->loadModel(SLASH . 'users' . SLASH . 'user'); $data['user'] = new User(); $data['schnippet'] = $schnippet->getMembers(); $this->setTitle($schnippet->getMember('title')); $this->loadView(SLASH . 'application' . SLASH . 'get', TRUE, $data); }