diff options
Diffstat (limited to 'core/namespace/Post/Item.php')
-rw-r--r-- | core/namespace/Post/Item.php | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/core/namespace/Post/Item.php b/core/namespace/Post/Item.php index 0f2c6a5..6109e20 100644 --- a/core/namespace/Post/Item.php +++ b/core/namespace/Post/Item.php @@ -27,23 +27,31 @@ class Item extends \Item { } #=============================================================================== - # Return unique post IDs for search results + # Return search results as Post\Attribute #=============================================================================== - public static function getSearchResultIDs($search, array $date, \Database $Database): array { + 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 id FROM %s WHERE + $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_COLUMN); + return $Statement->fetchAll($Database::FETCH_CLASS, 'Post\Attribute'); } return []; } + + #=============================================================================== + # Return associated User\Attribute + #=============================================================================== + public function getUserAttribute() { + $Statement = $this->Database->query(sprintf('SELECT * FROM user WHERE id = %d', $this->Attribute->get('user'))); + return $Statement->fetchObject('User\Attribute'); + } } |