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  'data-load-comment' => $comment->guid,
42  'class' => ['elgg-subtext', 'elgg-toggle-comment'],
43  ]);
44  }
45  }
46 
47  $params = [
48  'icon_entity' => $commenter,
49  'time_href' => $comment->getURL(),
50  'access' => false,
51  'title' => false,
52  'show_summary' => true,
53  'tag_name' => 'article',
54  'content' => $body,
55  'imprint' => elgg_extract('imprint', $vars, []),
56  'class' => elgg_extract_class($vars),
57  ];
58  $params = $params + $vars;
59 
60  if (!empty(elgg()->thread_preloader->getChildren($comment->guid))) {
61  $params['class'][] = 'with-children';
62  }
63 
64  if ($comment->isCreatedByContentOwner()) {
65  $params['class'][] = 'elgg-comment-by-owner';
66 
67  $params['imprint'][] = [
68  'icon_name' => 'user-edit',
69  'content' => elgg_echo('generic_comment:by_owner'),
70  ];
71  }
72 
73  echo elgg_view('object/elements/full', $params);
74 } else {
75  $friendlytime = elgg_view_friendly_time($comment->time_created);
76  $excerpt = elgg_get_excerpt((string) $comment->description, 80);
78 
79  $body = elgg_format_element('span', ['class' => 'elgg-subtext'], "{$posted} ({$friendlytime}): {$excerpt}");
80 
82 }
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:76
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:77
$vars
Definition: theme.php:5
$body
Definition: comment.php:79
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