Сам информер (PHP-скрипт + верстка) выглядит следующим образом:
<?php
/*
Информер общей мировой статистики заражений коронавирусом COVID-19 (2019-nCoV)
URL: https://www.pandoge.com/moduli-i-skripty/informer-obschey-mirovoy-statistiki-zarazheniy-koronavirusom-covid-19-2019-ncov
Автор: Артём Малков
--------------------------------------------------
Источник данных: COVID19 (https://github.com/ChrisMichaelPerezSantiago/covid19)
*/
header('Content-Type: text/html; charset=utf-8');
$date = date('d.m.Y, H:i'); // Дата на момент кэширования
$cache_time_out = '10800'; // Время жизни кэша в секундах
$file_coronavirus_cache = __DIR__.'/cache_coronavirus.txt'; // Файл кэша
if(!is_file($file_coronavirus_cache) || filemtime($file_coronavirus_cache) < (time() - $cache_time_out)) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, filter_input(INPUT_SERVER, 'HTTP_USER_AGENT', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW));
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, 'https://covid19api.io/api/v1/AllReports');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
$data = json_decode($data, true);
$cases = number_format($data['reports'][0]['cases'], 0, '', ' ');
$deaths = number_format($data['reports'][0]['deaths'], 0, '', ' ');
$recovered = number_format($data['reports'][0]['recovered'], 0, '', ' ');
$content = <<<HTML
<div class="coronavirus_statistics_block">
<div class="coronavirus_statistics_title">Коронавирусная инфекция</div>
<div class="coronavirus_statistics_body">
<div>Зараженных:<span class="cases">{$cases}</span></div>
<div>Погибших:<span>{$deaths}</span></div>
<div>Выздоровевших:<span class="recovered">{$recovered}</span></div>
</div>
<div class="date">Статистика по миру на <b>{$date}</b></div>
</div>
HTML;
file_put_contents($file_coronavirus_cache, $content);
}
echo file_get_contents($file_coronavirus_cache);
?>Стили:
.coronavirus_statistics_block {
border: 1px solid #eff0f0;
border-radius: 2px;
font-family: arial;
font-size: 14px;
}
.coronavirus_statistics_title {
background: #222;
color: #fff;
border-radius: 2px 2px 0 0;
padding: 10px;
}
.coronavirus_statistics_body div {
padding: 8px 10px;
background: #fcfcfc;
}
.coronavirus_statistics_body span {
float: right;
color: #555;
}
.coronavirus_statistics_body .cases {
color: #c12727;
}
.coronavirus_statistics_body .recovered {
color: #7fb424;
}
.coronavirus_statistics_body div {
border-bottom: 1px solid #eff0f0;
}
.coronavirus_statistics_block .date {
background: #0080bd;
font-size: 12px;
padding: 5px 10px;
color: #fff;
border-radius: 0 0 2px 2px;
text-align: right;
font-style: italic;
}По желанию меняете на свои.
Данные кэшируются (обновляются) на 3 часа во избежание лишних запросов к сайту-источнику.
Для того, что бы вывести информер в DataLife Engine сделайте следующее:
1. В PHP-коде строку:
header('Content-Type: text/html; charset=utf-8');Замените на:
if(!defined('DATALIFEENGINE')) {
die('Hacking attempt!');
}Результат поместите в PHP-файл, который, в свою очередь, загрузите в папку /engine/modules/.
2. В нужное место вашей темы вставляете следующую конструкцию:
{include file="engine/modules/coronavirus.php"}Здесь «coronavirus.php» - название файла заданного в первом шаге.
Стили помещаете в CSS-файл вашего сайта.
3. Пользуемся
Если вы хотите показать статистику не по миру, а по конкретной стране, то сделайте следующие изменения на примере России.
1. Строку:
curl_setopt($ch, CURLOPT_URL, 'https://covid19api.io/api/v1/AllReports');замените на:
curl_setopt($ch, CURLOPT_URL, 'https://covid19api.io/api/v1/ReportsByCountries/russia');2. Строки:
$cases = number_format($data['reports'][0]['cases'], 0, '', ' ');
$deaths = number_format($data['reports'][0]['deaths'], 0, '', ' ');
$recovered = number_format($data['reports'][0]['recovered'], 0, '', ' ');замените на:
$cases = number_format($data['report']['cases'], 0, '', ' ');
$deaths = number_format($data['report']['deaths'], 0, '', ' ');
$recovered = number_format($data['report']['recovered'], 0, '', ' ');3. Строку:
<div class="date">Статистика по миру на <b>{$date}</b></div>замените на:
<div class="date">Статистика по России на <b>{$date}</b></div>Всё.