aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Lange <code@nerdmind.de>2018-04-01 16:18:47 +0200
committerThomas Lange <code@nerdmind.de>2018-04-01 16:18:47 +0200
commit2a017afea40941f6cc18208a6f595ee129ae143c (patch)
tree9e922b86b12071cc74241d521eb69a677f54c5ea
parent1da2c1e38a3b47840243b2021b41130ac667eba5 (diff)
downloadblog-2a017afea40941f6cc18208a6f595ee129ae143c.tar.gz
blog-2a017afea40941f6cc18208a6f595ee129ae143c.tar.xz
blog-2a017afea40941f6cc18208a6f595ee129ae143c.zip
Add method "getSearchResults" to Page and Post class
-rw-r--r--core/namespace/Page/Item.php14
-rw-r--r--core/namespace/Post/Item.php21
2 files changed, 35 insertions, 0 deletions
diff --git a/core/namespace/Page/Item.php b/core/namespace/Page/Item.php
index 4206f2f..cd2c94f 100644
--- a/core/namespace/Page/Item.php
+++ b/core/namespace/Page/Item.php
@@ -41,6 +41,20 @@ class Item extends \Item {
}
#===============================================================================
+ # Return search results as Page\Attribute
+ #===============================================================================
+ public static function getSearchResults($search, \Database $Database): array {
+ $Statement = $Database->prepare(sprintf("SELECT * FROM %s WHERE
+ MATCH(name, body) AGAINST(? IN BOOLEAN MODE) LIMIT 20", Attribute::TABLE));
+
+ if($Statement->execute([$search])) {
+ return $Statement->fetchAll($Database::FETCH_CLASS, 'Page\Attribute');
+ }
+
+ return [];
+ }
+
+ #===============================================================================
# Return associated User\Attribute
#===============================================================================
public function getUserAttribute() {
diff --git a/core/namespace/Post/Item.php b/core/namespace/Post/Item.php
index d5b7f2e..71d8014 100644
--- a/core/namespace/Post/Item.php
+++ b/core/namespace/Post/Item.php
@@ -48,6 +48,27 @@ class Item extends \Item {
}
#===============================================================================
+ # Return search results as Post\Attribute
+ #===============================================================================
+ public static function getSearchResults($search, array $date, \Database $Database): array {
+ $D = ($D = intval($date[0])) !== 0 ? $D : 'NULL';
+ $M = ($M = intval($date[1])) !== 0 ? $M : 'NULL';
+ $Y = ($Y = intval($date[2])) !== 0 ? $Y : 'NULL';
+
+ $Statement = $Database->prepare(sprintf("SELECT * FROM %s WHERE
+ ({$Y} IS NULL OR YEAR(time_insert) = {$Y}) AND
+ ({$M} IS NULL OR MONTH(time_insert) = {$M}) AND
+ ({$D} IS NULL OR DAY(time_insert) = {$D}) AND
+ MATCH(name, body) AGAINST(? IN BOOLEAN MODE) LIMIT 20", Attribute::TABLE));
+
+ if($Statement->execute([$search])) {
+ return $Statement->fetchAll($Database::FETCH_CLASS, 'Post\Attribute');
+ }
+
+ return [];
+ }
+
+ #===============================================================================
# Return associated User\Attribute
#===============================================================================
public function getUserAttribute() {