blob: cd2c94fd349704b42da5b08466ea8a35d7b6abdc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
<?php
namespace Page;
class Item extends \Item {
const CONFIGURATION = 'PAGE';
#===============================================================================
# Return absolute page URL
#===============================================================================
public function getURL(): string {
if(\Application::get('PAGE.SLUG_URLS')) {
return \Application::getPageURL("{$this->Attribute->get('slug')}/");
}
return \Application::getPageURL("{$this->Attribute->get('id')}/");
}
#===============================================================================
# Return unique pseudo GUID
#===============================================================================
public function getGUID(): string {
foreach(\Application::get('PAGE.FEED_GUID') as $attribute) {
$attributes[] = $this->Attribute->get($attribute);
}
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 [];
}
#===============================================================================
# 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() {
$Statement = $this->Database->query(sprintf('SELECT * FROM user WHERE id = %d', $this->Attribute->get('user')));
return $Statement->fetchObject('User\Attribute');
}
}
?>
|