v
Size: a a a
v
М
М
v
v
М
М
М
A
class Users extends ReportWidgetBase
{
public function render()
{
try {
$this->loadData();
} catch (Exception $ex) {
$this->vars['error'] = $ex->getMessage();
}
return $this->makePartial('widget');
}
public function defineProperties()
{
return [];
}
protected function loadData()
{
$this->addCss('/plugins/library/statistics/assets/style.css');
$startTime = Carbon::now()->subDays(30)->startOfDay();
$currentTime = Carbon::now();
$diff = $currentTime->diffInDays($startTime);
$user = '';
$total_users = '';
$total_count = 0;
for ($i = 0; $i < $diff; $i++) {
$startTime->startOfDay()->addDay();
$betweenDate = [
$startTime->toDateTimeString(),
$startTime->endOfDay()->toDateTimeString(),
];
// Выполняем подсчет статистики по регистрациям
$user_count = UserModel::whereBetween('created_at', $betweenDate)->count();
$total_count += $user_count;
$user .= '[' . $startTime->startOfDay()->timestamp * 1000 . ',' . $user_count . '],';
$total_users .= '[' . $startTime->startOfDay()->timestamp * 1000 . ',' . $total_count . '],';
}
$this->vars['user'] = rtrim($user, ',');
$this->vars['total_users'] = rtrim($total_users, ',');
}
}
М
class Users extends ReportWidgetBase
{
public function render()
{
try {
$this->loadData();
} catch (Exception $ex) {
$this->vars['error'] = $ex->getMessage();
}
return $this->makePartial('widget');
}
public function defineProperties()
{
return [];
}
protected function loadData()
{
$this->addCss('/plugins/library/statistics/assets/style.css');
$startTime = Carbon::now()->subDays(30)->startOfDay();
$currentTime = Carbon::now();
$diff = $currentTime->diffInDays($startTime);
$user = '';
$total_users = '';
$total_count = 0;
for ($i = 0; $i < $diff; $i++) {
$startTime->startOfDay()->addDay();
$betweenDate = [
$startTime->toDateTimeString(),
$startTime->endOfDay()->toDateTimeString(),
];
// Выполняем подсчет статистики по регистрациям
$user_count = UserModel::whereBetween('created_at', $betweenDate)->count();
$total_count += $user_count;
$user .= '[' . $startTime->startOfDay()->timestamp * 1000 . ',' . $user_count . '],';
$total_users .= '[' . $startTime->startOfDay()->timestamp * 1000 . ',' . $total_count . '],';
}
$this->vars['user'] = rtrim($user, ',');
$this->vars['total_users'] = rtrim($total_users, ',');
}
}
A
A
<div class="report-widget">
<h3 style="margin-bottom:5px;"></h3>
<?php if (!isset($error)): ?>
<div
data-control="chart-line"
data-time-mode="datetime"
data-chart-options="
xaxis: {
mode: 'time',
},
yaxis: {
min: 0,
},
series: {
lines: {show: true},
points: {show: true},
},
legend: {
show: true
},
"
class="height-200"
>
<span
data-chart="dataset"
data-set-color="#1A237E"
data-set-data="<?=$user; ?>"
data-set-label="Регистрация"
></span>
</div>
<?php else: ?>
<p class="flash-message static warning"><?= e($error) ?></p>
<?php endif ?>
</div>
М
<div class="report-widget">
<h3 style="margin-bottom:5px;"></h3>
<?php if (!isset($error)): ?>
<div
data-control="chart-line"
data-time-mode="datetime"
data-chart-options="
xaxis: {
mode: 'time',
},
yaxis: {
min: 0,
},
series: {
lines: {show: true},
points: {show: true},
},
legend: {
show: true
},
"
class="height-200"
>
<span
data-chart="dataset"
data-set-color="#1A237E"
data-set-data="<?=$user; ?>"
data-set-label="Регистрация"
></span>
</div>
<?php else: ?>
<p class="flash-message static warning"><?= e($error) ?></p>
<?php endif ?>
</div>
A
М
М
A
A
A
public function index()
{
$this->addCss('/plugins/library/statistics/assets/style.css');
$data = $this->getStatistics();
$order = '';
$total_orders = '';
foreach ($data as $key => $value) {
$order .= '[' . $key . ',' . $value['order'] . '],';
$total_orders .= '[' . $key . ',' . $value['total_order'] . '],';
}
$this->vars['order'] = rtrim($order, ','); // Количество в месяц
$this->vars['total_orders'] = rtrim($total_orders, ','); // Прирост в месяц с учётом предыдущих месяцев
}
private function getStatistics()
{
$startTime = Carbon::createFromDate(2017, 3)->startOfMonth();
$currentTime = Carbon::now();
$total_order_count = 0;
$count = [];
$diff = $currentTime->diffInMonths($startTime);
for ($i = 0; $i < $diff; $i++) {
$startTime->startOfMonth()->addMonth();
$betweenDate = [
$startTime->toDateTimeString(),
$startTime->endOfMonth()->toDateTimeString(),
];
$month = $startTime->startOfMonth()->timestamp * 1000;
// Выполняем подсчет статистики по заказам
$order_count = OrderModel::whereBetween('created_at', $betweenDate)->count();
$total_order_count += $order_count;
$count[$month]['order'] = $order_count;
$count[$month]['total_order'] = $total_order_count;
}
return $count;
}
A
<div class="report-widget">
<h5>Загальна кількість по місяцях</h5>
<div
data-control="chart-line"
data-time-mode="datetime"
data-chart-options="
xaxis: {
mode: 'time',
},
yaxis: {
min: 0,
},
series: {
lines: {show: true},
points: {show: true},
},
legend: {
show: true
},
"
class="height-200"
>
<span
data-chart="dataset"
data-set-color="#1A237E"
data-set-data="<?=$order; ?>"
data-set-label="Замовлення"
></span>
</div>
</div>
<div class="report-widget">
<h5>Загальний приріст по місяцях</h5>
<div
data-control="chart-line"
data-time-mode="datetime"
data-chart-options="
xaxis: {
mode: 'time',
},
yaxis: {
min: 0,
},
series: {
lines: {show: true},
points: {show: true},
},
legend: {
show: true
},
"
class="height-200"
>
<span
data-chart="dataset"
data-set-color="#1A237E"
data-set-data="<?=$total_orders; ?>"
data-set-label="Замовлення"
></span>
</div>
</div>