<?php
function fetch_rss_feeds() {
    $feeds = [
        'https://daily.veronanetwork.it/feed/',
        'https://veronaeconomia.it/feed/',
      'https://giornalepantheon.it/feed/'
    ];

    $news_items = [];

    foreach ($feeds as $feed) {
        $rss = @simplexml_load_file($feed); // Suppress warnings in case of issues

        if ($rss) {
            foreach ($rss->channel->item as $item) {
                $parsed_url = parse_url($feed);
                $favicon_url = "https://www.google.com/s2/favicons?domain=" . $parsed_url['host'] . "&sz=32";

                $news_items[] = [
                    'title' => (string) $item->title,
                    'link' => (string) $item->link,
                    'favicon' => $favicon_url,
                    'date' => strtotime((string) $item->pubDate),
                ];
            }
        }
    }

    // Ordina le notizie per data di pubblicazione (decrescente)
    usort($news_items, function($a, $b) {
        return $b['date'] <=> $a['date'];
    });

    return json_encode($news_items);
}

// Stampa direttamente il ticker nel sito
$news_items = fetch_rss_feeds();
?>
<div id="breaking-news-ticker">
    <ul></ul>
</div>
<script>
document.addEventListener("DOMContentLoaded", () => {
    const newsItems = <?php echo $news_items; ?>;

    const ticker = document.querySelector('#breaking-news-ticker ul');

    if (newsItems && Array.isArray(newsItems)) {
        newsItems.forEach(news => {
            const li = document.createElement('li');
            const favicon = document.createElement('img');
            const link = document.createElement('a');

            favicon.src = news.favicon;
            favicon.alt = "Logo";
            favicon.style.width = "20px"; // Dimensioni del logo
            favicon.style.height = "20px";
            favicon.style.marginRight = "10px";

            link.href = news.link;
            link.textContent = news.title;
            link.target = '_blank';

            li.appendChild(favicon);
            li.appendChild(link);
            ticker.appendChild(li);
        });

        let scrollAmount = 0;
        setInterval(() => {
            scrollAmount -= 1;
            ticker.style.transform = `translateX(${scrollAmount}px)`;
            ticker.style.transition = 'transform 0.1s linear';
            if (Math.abs(scrollAmount) >= ticker.scrollWidth / 2) {
                scrollAmount = 0; // Resetta lo scorrimento quando raggiunge la fine
            }
        }, 20);

    } else {
        console.error('newsItems non definito o non è un array:', newsItems);
    }
});
</script>

#breaking-news-ticker {
    width: 100%;
    overflow: hidden;
    font-family: Arial, sans-serif;
    position: relative;
}
#breaking-news-ticker ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    white-space: nowrap;
    position: relative;
}
#breaking-news-ticker ul li {
    display: flex;
    align-items: center;
    margin-right: 30px;
    padding: 5px 10px;
    background: var(--bg-body-l-1);
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    white-space: nowrap;
}
#breaking-news-ticker ul li img {
    border-radius: 50%;
    flex-shrink: 0;
}
#breaking-news-ticker ul li a {
    text-decoration: none;
  padding-left: 5px;
  padding-right:25px;
    color: var(--text-title);
    font-weight: bold;
}
#breaking-news-ticker ul li a:hover {
    text-decoration: underline;
}
<iframe src="https://www.3bmeteo.com/moduli_esterni/localita_6_giorni_compatto/7765/ffffff/1e1d40/5e5e5e/ffffff/it/0/2" width=100% height=302 frameborder="0"></iframe>
Nuova call-to-action

15° premio Verona Network

Vedi tutto

Vedi tutto