Elgg  Version 6.3
queue.php
Go to the documentation of this file.
1 <?php
8 
9 $header = '<tr><th>' . elgg_echo('admin:statistics:queue:name') . '</th>';
10 $header .= '<th>' . elgg_echo('admin:statistics:queue:row_count') . '</th>';
11 $header .= '<th>' . elgg_echo('admin:statistics:queue:oldest') . '</th>';
12 $header .= '<th>' . elgg_echo('admin:statistics:queue:newest') . '</th></tr>';
13 
14 $qb = Select::fromTable(DatabaseQueue::TABLE_NAME);
15 $qb->select('DISTINCT name');
16 
17 $queue_names = _elgg_services()->db->getData($qb);
18 if (empty($queue_names)) {
19  return;
20 }
21 
22 $rows = '';
23 foreach ($queue_names as $queue) {
24  $qb = Select::fromTable(DatabaseQueue::TABLE_NAME);
25  $qb->select('COUNT(*) AS total');
26  $qb->where($qb->compare('name', '=', $queue->name, ELGG_VALUE_STRING, true));
27 
28  $row_count = _elgg_services()->db->getDataRow($qb);
29  $row_count = empty($row_count) ? 0 : elgg_number_format($row_count->total);
30 
31  $qb = Select::fromTable(DatabaseQueue::TABLE_NAME);
32  $qb->select('MIN(timestamp) AS min');
33  $qb->where($qb->compare('name', '=', $queue->name, ELGG_VALUE_STRING, true));
34 
35  $oldest = _elgg_services()->db->getDataRow($qb);
36  $oldest = empty($oldest) ? 0 : (int) $oldest->min;
37  $oldest = elgg_view('output/datetime-local', ['value' => $oldest]);
38 
39  $qb = Select::fromTable(DatabaseQueue::TABLE_NAME);
40  $qb->select('MAX(timestamp) AS max');
41  $qb->where($qb->compare('name', '=', $queue->name, ELGG_VALUE_STRING, true));
42 
43  $newest = _elgg_services()->db->getDataRow($qb);
44  $newest = empty($newest) ? 0 : (int) $newest->max;
45  $newest = elgg_view('output/datetime-local', ['value' => $newest]);
46 
47  $rows .= "<tr><td>{$queue->name}</td><td>{$row_count}</td><td>{$oldest}</td><td>{$newest}</td></tr>";
48 }
49 
50 $body = "<table class='elgg-table'><thead>{$header}</thead><tbody>{$rows}</tbody></table>";
51 
52 echo elgg_view_module('info', elgg_echo('admin:statistics:queue'), $body);
Query builder for fetching data from the database.
Definition: Select.php:8
FIFO queue that uses the database for persistence.
const ELGG_VALUE_STRING
Definition: constants.php:112
_elgg_services()
Get the global service provider.
Definition: elgglib.php:337
elgg_echo(string $message_key, array $args=[], string $language='')
Elgg language module Functions to manage language and translations.
Definition: languages.php:17
elgg_view_module(string $type, string $title, string $body, array $vars=[])
Wrapper function for the module display pattern.
Definition: views.php:922
elgg_view(string $view, array $vars=[], string $viewtype='')
Return a parsed view.
Definition: views.php:156
elgg_number_format(float $number, int $decimals=0)
Format a number with grouped thousands using language specific separators.
Definition: output.php:368
foreach($queue_names as $queue) $body
Definition: queue.php:50
$qb
Definition: queue.php:14
if(empty($queue_names)) $rows
Definition: queue.php:22
$header
Definition: queue.php:9
$queue_names
Definition: queue.php:17