Elgg  Version master
comment.php
Go to the documentation of this file.
1 <?php
10 $full_view = elgg_extract('full_view', $vars, true);
11 
13 if (!$comment instanceof \ElggComment) {
14  return;
15 }
16 
17 $entity = $comment->getContainerEntity();
18 $commenter = $comment->getOwnerEntity();
19 if (!$entity instanceof \ElggEntity || !$commenter instanceof \ElggEntity) {
20  return;
21 }
22 
23 if ($comment->canEdit()) {
24  elgg_import_esm('elgg/comments');
25 }
26 
27 if ($full_view) {
28  if (elgg_extract('show_excerpt', $vars)) {
29  $body = elgg_view('output/longtext', [
30  'value' => elgg_get_excerpt((string) $comment->description),
31  ]);
32  } else {
33  $body = elgg_view('output/longtext', [
34  'value' => $comment->description,
35  ]);
36 
37  if (elgg_extract('show_add_form', $vars, true) && $comment->canComment()) {
38  $body .= elgg_view('output/url', [
39  'text' => elgg_echo('generic_comments:add'),
40  'href' => "#elgg-form-comment-save-{$comment->guid}",
41  'class' => ['elgg-toggle', 'elgg-subtext'],
42  ]);
43  }
44  }
45 
46  $params = [
47  'icon_entity' => $commenter,
48  'time_href' => $comment->getURL(),
49  'access' => false,
50  'title' => false,
51  'show_summary' => true,
52  'tag_name' => 'article',
53  'content' => $body,
54  'imprint' => elgg_extract('imprint', $vars, []),
55  'class' => elgg_extract_class($vars),
56  ];
57  $params = $params + $vars;
58 
59  if (!empty(elgg()->thread_preloader->getChildren($comment->guid))) {
60  $params['class'][] = 'with-children';
61  }
62 
63  if ($comment->isCreatedByContentOwner()) {
64  $params['class'][] = 'elgg-comment-by-owner';
65 
66  $params['imprint'][] = [
67  'icon_name' => 'user-edit',
68  'content' => elgg_echo('generic_comment:by_owner'),
69  ];
70  }
71 
72  echo elgg_view('object/elements/full', $params);
73 } else {
74  $friendlytime = elgg_view_friendly_time($comment->time_created);
75  $excerpt = elgg_get_excerpt((string) $comment->description, 80);
77 
78  $body = elgg_format_element('span', ['class' => 'elgg-subtext'], "{$posted} ({$friendlytime}): {$excerpt}");
79 
81 }
elgg
Definition: install.js:27
$params
Saves global plugin settings.
Definition: save.php:13
elgg_view_image_block(string $image, string $body, array $vars=[])
Wrapper function for the image block display pattern.
Definition: views.php:898
elgg_get_excerpt(string $text, int $num_chars=250)
Returns an excerpt.
Definition: output.php:83
$full_view
Elgg comment view.
Definition: comment.php:10
elgg_echo(string $message_key, array $args=[], string $language= '')
Elgg language module Functions to manage language and translations.
Definition: languages.php:17
$commenter
Definition: comment.php:18
$excerpt
Definition: comment.php:75
elgg_extract($key, $array, $default=null, bool $strict=true)
Checks for $array[$key] and returns its value if it exists, else returns $default.
Definition: elgglib.php:254
elgg_view(string $view, array $vars=[], string $viewtype= '')
Return a parsed view.
Definition: views.php:156
elgg_view_entity_icon(\ElggEntity $entity, string $size= 'medium', array $vars=[])
View the icon of an entity.
Definition: views.php:542
elgg_import_esm(string $name)
Helper functions for external files like css/js.
elgg_view_friendly_time($time, $time_updated=null)
Displays a UNIX timestamp in a friendly way.
Definition: views.php:832
$posted
Definition: comment.php:76
$vars
Definition: theme.php:5
$body
Definition: comment.php:78
if(!$comment instanceof\ElggComment) $entity
Definition: comment.php:17
elgg_format_element(string $tag_name, array $attributes=[], string $text= '', array $options=[])
Format an HTML element.
Definition: output.php:145
elgg_extract_class(array $array, array|string $existing=[], string $extract_key= 'class')
Extract class names from an array, optionally merging into a preexisting set.
Definition: elgglib.php:277
$comment
Definition: comment.php:12
elgg_view_entity_url(\ElggEntity $entity, array $options=[])
Helper function for outputting a link to an entity.
Definition: views.php:1444