From b886b447c939db888aee84224995da58540b4503 Mon Sep 17 00:00:00 2001 From: Thomas Lange Date: Sun, 22 Oct 2017 21:04:02 +0200 Subject: Implemented: A full-text search functionality for posts and pages in the administration area. In addition, some markup within the "/*/index.php" files of the admin template was re-formatted. --- core/language/de.php | 12 ++++++++++++ core/language/en.php | 12 ++++++++++++ core/namespace/Page/Item.php | 14 ++++++++++++++ 3 files changed, 38 insertions(+) (limited to 'core') diff --git a/core/language/de.php b/core/language/de.php index a1f8060..5d29d5d 100644 --- a/core/language/de.php +++ b/core/language/de.php @@ -158,6 +158,12 @@ $LANGUAGE['delete_page'] = 'Seite löschen'; $LANGUAGE['delete_post'] = 'Beitrag löschen'; $LANGUAGE['delete_user'] = 'Benutzer löschen'; +#=============================================================================== +# Items search +#=============================================================================== +$LANGUAGE['search_page'] = 'Seiten durchsuchen'; +$LANGUAGE['search_post'] = 'Beiträge durchsuchen'; + #=============================================================================== # Item insert titles #=============================================================================== @@ -179,6 +185,12 @@ $LANGUAGE['title_page_delete'] = $LANGUAGE['delete_page']; $LANGUAGE['title_post_delete'] = $LANGUAGE['delete_post']; $LANGUAGE['title_user_delete'] = $LANGUAGE['delete_user']; +#=============================================================================== +# Item search titles +#=============================================================================== +$LANGUAGE['title_page_search'] = $LANGUAGE['search_page']; +$LANGUAGE['title_post_search'] = $LANGUAGE['search_post']; + #=============================================================================== # Item overview titles #=============================================================================== diff --git a/core/language/en.php b/core/language/en.php index 55c0ce3..dc70154 100644 --- a/core/language/en.php +++ b/core/language/en.php @@ -158,6 +158,12 @@ $LANGUAGE['delete_page'] = 'Delete page'; $LANGUAGE['delete_post'] = 'Delete post'; $LANGUAGE['delete_user'] = 'Delete user'; +#=============================================================================== +# Items search +#=============================================================================== +$LANGUAGE['search_page'] = 'Search in pages'; +$LANGUAGE['search_post'] = 'Search in posts'; + #=============================================================================== # Item insert titles #=============================================================================== @@ -179,6 +185,12 @@ $LANGUAGE['title_page_delete'] = $LANGUAGE['delete_page']; $LANGUAGE['title_post_delete'] = $LANGUAGE['delete_post']; $LANGUAGE['title_user_delete'] = $LANGUAGE['delete_user']; +#=============================================================================== +# Item search titles +#=============================================================================== +$LANGUAGE['title_page_search'] = $LANGUAGE['search_page']; +$LANGUAGE['title_post_search'] = $LANGUAGE['search_post']; + #=============================================================================== # Item overview titles #=============================================================================== diff --git a/core/namespace/Page/Item.php b/core/namespace/Page/Item.php index c6cece7..e3bf6a3 100644 --- a/core/namespace/Page/Item.php +++ b/core/namespace/Page/Item.php @@ -25,5 +25,19 @@ class Item extends \Item { return sha1(implode(NULL, $attributes)); } + + #=============================================================================== + # Return unique page IDs for search results + #=============================================================================== + public static function getSearchResultIDs($search, \Database $Database): array { + $Statement = $Database->prepare(sprintf("SELECT id FROM %s WHERE + MATCH(name, body) AGAINST(? IN BOOLEAN MODE) LIMIT 20", Attribute::TABLE)); + + if($Statement->execute([$search])) { + return $Statement->fetchAll($Database::FETCH_COLUMN); + } + + return []; + } } ?> \ No newline at end of file -- cgit v1.2.3