1 | <?php |
||
2 | /** |
||
3 | * View for page object |
||
4 | * |
||
5 | * @uses $vars['entity'] The page object |
||
6 | * @uses $vars['full_view'] Whether to display the full view |
||
7 | * @uses $vars['revision'] This parameter not supported by elgg_view_entity() |
||
8 | */ |
||
9 | |||
10 | $full = elgg_extract('full_view', $vars, false); |
||
11 | $page = elgg_extract('entity', $vars, false); |
||
12 | $revision = elgg_extract('revision', $vars, false); |
||
13 | |||
14 | if (!$page instanceof ElggPage) { |
||
15 | return; |
||
16 | } |
||
17 | |||
18 | // pages used to use Public for write access |
||
19 | if ($page->write_access_id == ACCESS_PUBLIC) { |
||
20 | // this works because this metadata is public |
||
21 | $page->write_access_id = ACCESS_LOGGED_IN; |
||
22 | } |
||
23 | |||
24 | if ($revision) { |
||
25 | $annotation = $revision; |
||
26 | } else { |
||
27 | $annotation = $page->getAnnotations([ |
||
28 | 'annotation_name' => 'page', |
||
29 | 'limit' => 1, |
||
30 | 'order_by' => 'n_table.time_created desc, n_table.id desc', |
||
31 | ]); |
||
32 | if ($annotation) { |
||
0 ignored issues
–
show
|
|||
33 | $annotation = $annotation[0]; |
||
34 | } else { |
||
35 | elgg_log("Failed to access annotation for page with GUID {$page->guid}", 'WARNING'); |
||
36 | return; |
||
37 | } |
||
38 | } |
||
39 | |||
40 | $owner = $annotation->getOwnerEntity(); |
||
41 | $owner_icon = elgg_view_entity_icon($owner, 'small'); |
||
42 | |||
43 | $metadata = null; |
||
44 | // If we're looking at a revision, display annotation menu |
||
45 | if ($revision) { |
||
46 | $metadata = elgg_view_menu('annotation', [ |
||
47 | 'annotation' => $annotation, |
||
48 | 'sort_by' => 'priority', |
||
49 | 'class' => 'elgg-menu-hz float-alt', |
||
50 | ]); |
||
51 | } |
||
52 | |||
53 | if ($full) { |
||
54 | $body = elgg_view('output/longtext', ['value' => $annotation->value]); |
||
55 | |||
56 | $params = [ |
||
57 | 'entity' => $page, |
||
58 | 'metadata' => $metadata, |
||
59 | 'handler' => 'pages', |
||
60 | 'title' => false, |
||
61 | ]; |
||
62 | |||
63 | $params = $params + $vars; |
||
64 | $summary = elgg_view('object/elements/summary', $params); |
||
65 | |||
66 | echo elgg_view('object/elements/full', [ |
||
67 | 'entity' => $page, |
||
68 | 'icon' => $owner_icon, |
||
69 | 'summary' => $summary, |
||
70 | 'body' => $body, |
||
71 | 'show_responses' => elgg_extract('show_responses', $vars, false), |
||
72 | ]); |
||
73 | } else { |
||
74 | // brief view |
||
75 | $params = [ |
||
76 | 'entity' => $page, |
||
77 | 'metadata' => $metadata, |
||
78 | 'handler' => 'pages', |
||
79 | 'content' => elgg_get_excerpt($page->description), |
||
80 | 'icon' => $owner_icon, |
||
81 | ]; |
||
82 | $params = $params + $vars; |
||
83 | echo elgg_view('object/elements/summary', $params); |
||
84 | } |
||
85 |
This check marks implicit conversions of arrays to boolean values in a comparison. While in PHP an empty array is considered to be equal (but not identical) to false, this is not always apparent.
Consider making the comparison explicit by using
empty(..)
or! empty(...)
instead.