aboutsummaryrefslogtreecommitdiff
path: root/lib/notestorage.php
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2014-10-24 17:23:55 +0200
committerChristian Weiske <cweiske@cweiske.de>2014-10-24 17:23:55 +0200
commit16bb2f544c636425ed9e6bff90654b8fa3c0f2e3 (patch)
tree51d12b734fe762750299d5be5ae95cc95845c4ef /lib/notestorage.php
parent2b5ff5d48b4ec80e0e0e18188689edefaeefe91d (diff)
downloadgrauphel-16bb2f544c636425ed9e6bff90654b8fa3c0f2e3.tar.gz
grauphel-16bb2f544c636425ed9e6bff90654b8fa3c0f2e3.zip
support query splitting and quoting and search content and tags
Diffstat (limited to 'lib/notestorage.php')
-rw-r--r--lib/notestorage.php18
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/notestorage.php b/lib/notestorage.php
index 951bf06..67baa20 100644
--- a/lib/notestorage.php
+++ b/lib/notestorage.php
@@ -274,17 +274,27 @@ class NoteStorage
/**
* Search for a note
*
- * @param string $query Query string
+ * @param string $keywords AND-concatenated query strings
*
* @return array Database rows with note_guid and note_title
*/
- public function search($query)
+ public function search($keywords)
{
+ $sqlWhere = ' AND (note_title LIKE ? OR note_tags LIKE ? OR note_content LIKE ?)';
+ $arData = array(
+ $this->username
+ );
+ foreach ($keywords as $keyword) {
+ $arData[] = '%' . $keyword . '%';//title
+ $arData[] = '%' . $keyword . '%';//tags
+ $arData[] = '%' . $keyword . '%';//content
+ }
$result = \OC_DB::executeAudited(
'SELECT `note_guid`, `note_title`'
. ' FROM `*PREFIX*grauphel_notes`'
- . ' WHERE note_user = ? AND note_title LIKE ?',
- array($this->username, '%' . $query . '%')
+ . ' WHERE note_user = ?'
+ . str_repeat($sqlWhere, count($keywords)),
+ $arData
);
$notes = array();