<?php /** * Search controller * * @author Pierre HUBERT */ class search { /** * Search for user in the database * * @param string $query The query to research on the database * @param int $limit The number of results to return on the screen (default: 10) * @return array the result of the result */ public function search_user(string $query, int $limit = 10) : array{ //Prepare query string $query = "%".str_replace(" ", "%", $query)."%"; //Prepare a request on the database $tableName = "utilisateurs"; $conditions = "WHERE (nom LIKE ?) || (prenom LIKE ?) || (CONCAT(prenom, '%', nom) LIKE ?) || (CONCAT(nom, '%', prenom) LIKE ?) LIMIT ".$limit*1; $datasCond = array($query, $query, $query, $query); $fields = array("ID"); //Perform the request on the database $results = CS::get()->db->select($tableName, $conditions, $datasCond, $fields); //Prepare return $return = array(); foreach($results as $value){ $return[] = $value["ID"]; } //Return result return $return; } /** * Search for groups in the database * * @param string $query * @param int $limit (default = 10) * @return array List of results */ public function search_group(string $query, int $limit = 10){ //Query string $query = "%".$query."%"; //Request $results = db()->select( GroupsComponent::GROUPS_LIST_TABLE, "WHERE name LIKE ? AND visibility != ".GroupInfo::SECRET_GROUP, array($query), array("id") ); //Parse and return results $list = array(); foreach($results as $el) $list[] = $el["id"]; return $list; } } //Register class Components::register("search", new search());