Информер общей мировой статистики заражений коронавирусом COVID-19
Распечатать

Информер общей мировой статистики заражений коронавирусом COVID-19

Информер общей мировой статистики заражений коронавирусом COVID-19 Артём Мáлков" />
Простой бесплатный адаптивный информер (виджет), с помощью которого вы сможете вывести на вашем сайте общую (по всему миру) статистику касаемо последствий COVID-19.

Сам информер (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>

Всё.

CMS: DLE

Категория: Модули

Автор: Артём Мáлков

Опубликовал: Дмитрий


Подождите, сейчас файл будет подготовлен, через
секунд Вы получите ссылку на скачивание,
а сейчас может Зарегистрируемся? wink это быстро!

Имя:*
E-Mail:
Кликните на изображение чтобы обновить код, если он неразборчив


Реклама

Copyright © 2023 | Проект GiG-LiFe.ru
Материалы на этом сайте взяты из общедоступных источников и могут быть удалены по просьбе авторов, при наличии доказательства авторства.
Materials on this site are taken from public sources and may be deleted at the request of their authors when there is evidence of authorship.