Elgg  Version master
attributes.php
Go to the documentation of this file.
1 <?php
8 $entity = elgg_extract('entity', $vars);
9 if (!$entity instanceof \ElggUser) {
10  return;
11 }
12 
13 $data = [
14  [
15  elgg_echo('table_columns:fromProperty:name'),
16  $entity->getDisplayName(),
17  ],
18  [
19  elgg_echo('table_columns:fromProperty:username'),
20  $entity->username,
21  ],
22  [
23  elgg_echo('table_columns:fromProperty:email'),
24  $entity->email,
25  ],
26  [
27  elgg_echo('table_columns:fromView:time_created'),
28  elgg_view('output/datetime-local', ['value' => $entity->time_created, 'format' => elgg_echo('friendlytime:date_format')]),
29  ],
30  function() use ($entity) {
31  try {
32  $log = elgg_extract(0, \Elgg\SystemLog\SystemLog::instance()->getAll([
33  'object_id' => $entity->guid,
34  'event' => 'create:user',
35  'object_type' => 'user',
36  'limit' => 1,
37  ]));
38 
39  if ($log && !empty($log->ip_address)) {
40  return [' - ' . elgg_echo('usersettings:statistics:login_history:ip'), $log->ip_address];
41  }
42  } catch (\DI\NotFoundException $e) {
43  // somehow the service isn't correctly registered or unavailable
44  }
45  },
46  [
47  elgg_echo('table_columns:fromView:time_updated'),
48  elgg_view('output/datetime-local', ['value' => $entity->time_updated, 'format' => elgg_echo('friendlytime:date_format')]),
49  ],
50  [
51  elgg_echo('table_columns:fromView:last_action'),
52  elgg_view('output/datetime-local', ['value' => $entity->last_action, 'format' => elgg_echo('friendlytime:date_format')]),
53  ],
54  [
55  elgg_echo('table_columns:fromView:last_login'),
56  elgg_view('output/datetime-local', ['value' => $entity->last_login, 'format' => elgg_echo('friendlytime:date_format')]),
57  ],
58  [
59  elgg_echo('table_columns:fromView:prev_last_login'),
60  elgg_view('output/datetime-local', ['value' => $entity->prev_last_login, 'format' => elgg_echo('friendlytime:date_format')]),
61  ],
62  [
63  elgg_echo('table_columns:fromView:admin'),
64  $entity->isAdmin() ? elgg_echo('option:yes') : elgg_echo('option:no'),
65  ],
66  [
67  elgg_echo('table_columns:fromView:banned'),
68  $entity->isBanned() ? elgg_echo('option:yes') : elgg_echo('option:no'),
69  ],
70  [
71  elgg_echo('table_columns:fromProperty:validated'),
72  $entity->isValidated() ? elgg_echo('option:yes') : elgg_echo('option:no'),
73  ],
74 ];
75 
76 $rows = [];
77 foreach ($data as $row) {
78  $cells = [];
79 
80  if (is_callable($row)) {
81  $row = call_user_func($row);
82  if (!is_array($row)) {
83  continue;
84  }
85  }
86 
87  foreach ($row as $cell) {
88  $cells[] = elgg_format_element('td', [], (string) $cell);
89  }
90 
91  $rows[] = elgg_format_element('tr', [], implode(PHP_EOL, $cells));
92 }
93 
94 echo elgg_format_element('table', ['class' => 'elgg-table-alt'], implode(PHP_EOL, $rows));
$vars
Definition: theme.php:3
$entity
Show user attributes in admin listings.
Definition: attributes.php:8
if(! $entity instanceof \ElggUser) $data
Definition: attributes.php:13
$rows
Definition: attributes.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:240
elgg_echo(string $message_key, array $args=[], string $language='')
Elgg language module Functions to manage language and translations.
Definition: languages.php:17
elgg_view(string $view, array $vars=[], string $viewtype='')
Return a parsed view.
Definition: views.php:156
elgg_format_element(string $tag_name, array $attributes=[], string $text='', array $options=[])
Format an HTML element.
Definition: output.php:145