1
0
Fork 0
mirror of https://github.com/wallabag/wallabag.git synced 2025-09-15 18:57:05 +00:00

Important fixes for search engine (thx @mariroz)

So sorry for the mess... :(
* search only in users' own articles
* sanitized what is searched
* display what is searched
* pagination, sorting available when searching
* use existing function to query db
* bad encoding caracters fixed
* link to JQuery into default theme, no longer in each theme
* some spaces instead of tabs
This commit is contained in:
tcit 2014-04-02 17:44:47 +02:00
parent 22db488d21
commit d967a1fa14
7 changed files with 45 additions and 20 deletions

View file

@ -389,12 +389,13 @@ class Database {
return $this->getHandle()->lastInsertId($column);
}
public function search($term){
$search = '%'.$term.'%';
$query = $this->getHandle()->prepare("SELECT * FROM entries WHERE content LIKE ? OR title LIKE ? OR url LIKE ?"); //searches in content, title and URL
$query->execute(array($search,$search,$search));
$entries = $query->fetchAll();
return $entries;
public function search($term,$id,$limit = ''){
$search = '%'.$term.'%';
$sql_action = ("SELECT * FROM entries WHERE user_id=? AND (content LIKE ? OR title LIKE ? OR url LIKE ?) "); //searches in content, title and URL
$sql_action .= $this->getEntriesOrder().' ' . $limit;
$params_action = array($id,$search,$search,$search);
$query = $this->executeQuery($sql_action, $params_action);
return $query->fetchAll();
}
public function retrieveAllTags($user_id, $term = null) {

View file

@ -604,12 +604,18 @@ class Poche
);
break;
case 'search':
if (isset($_GET['search'])){
$search = $_GET['search'];
$tpl_vars['entries'] = $this->store->search($search);
$tpl_vars['nb_results'] = count($tpl_vars['entries']);
}
case 'search':
if (isset($_GET['search'])){
$search = filter_var($_GET['search'], FILTER_SANITIZE_STRING);
$tpl_vars['entries'] = $this->store->search($search,$this->user->getId());
$count = count($tpl_vars['entries']);
$this->pagination->set_total($count);
$page_links = str_replace(array('previous', 'next'), array(_('previous'), _('next')),
$this->pagination->page_links('?view=' . $view . '?search=' . $search . '&sort=' . $_SESSION['sort'] . '&' ));
$tpl_vars['page_links'] = $page_links;
$tpl_vars['nb_results'] = $count;
$tpl_vars['search_term'] = $search;
}
break;
case 'view':
$entry = $this->store->retrieveOneById($id, $this->user->getId());