Braga em risco já mexe (fotogaleria)

Braga em Risco 2025 no Mosteiro de Tibães. 15 de Março de 2025

Arrancou este sábado a 9.ª edição do  Braga em Risco O encontro de ilustração decorre no Mosteiro de Tibães com um vasto programa que tem a natureza como fio condutor.

Até 28 de Março, há muito para ver, experimentar e sentir.

Programa completo em: https://tinyurl.com/48yymx44

[email protected]

Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025
Braga em Risco 2025 no Mosteiro de Tibães.
15 de Março de 2025

Jornal O Desportivo

<?php
function fetch_rss_cached($url, $cache_seconds = 600) {
    $key = 'rss_cache_' . md5($url);

    $cached = get_transient($key);
    if ($cached !== false) {
        return simplexml_load_string($cached);
    }

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_USERAGENT, 'WP RSS Fetcher');

    $data = curl_exec($ch);
    curl_close($ch);

    if (!$data) return null;

    set_transient($key, $data, $cache_seconds);
    return simplexml_load_string($data);
}

function time_ago($datetime) {
    $time = strtotime($datetime);
    $diff = time() - $time;

    if ($diff < 60) return $diff . ' segundos atrás';
    if ($diff < 3600) return floor($diff / 60) . ' minutos atrás';
    if ($diff < 86400) return floor($diff / 3600) . ' horas atrás';
    if ($diff < 604800) return floor($diff / 86400) . ' dias atrás';
    return date('d/m/Y H:i', $time);
}

$rss = fetch_rss_cached('https://www.desportivovaledohomem.pt/category/destaque/feed/', 600);
if (!$rss || empty($rss->channel->item)) {
    echo '<!-- RSS vazio ou erro -->';
    return;
}

$items = $rss->channel->item;
$count = 0;

echo '<div class="rss-posts">';

foreach ($items as $item) {
    if ($count >= 5) break;

    $title = (string) $item->title;
    $link = (string) $item->link;
    $pubDate = (string) $item->pubDate;
    $timeAgo = time_ago($pubDate);

    $categoryText = isset($item->category[0]) ? (string) $item->category[0] : '';

    echo '<div class="rss-post">';
    echo '<p class="rss-meta">' . esc_html($timeAgo) . ' - ' . esc_html($categoryText) . '</p>';
    echo '<h3 class="rss-title"><a href="' . esc_url($link) . '" target="_blank" rel="noopener">' . esc_html($title) . '</a></h3>';
    echo '</div>';

    $count++;
}

echo '</div>';
?>
.rss-posts {
    font-family: "MYRIAD PRO";
    font-weight: 400;
}

.rss-post {
    padding: 10px 0;
    border-bottom: 1px solid #8E8E8D;
}

.rss-meta {
    color: #828282;
    font-size: 11px;
    margin-bottom: 0px;
    font-weight: 600;
}

.rss-title {
    font-size: 14px;
    line-height: 1.4;
    margin: 0;
}

.rss-title a {
    text-decoration: none;
    color: #363636;
    font-family: "Myriad Pro";
    font-weight: 400;
    font-size: 17px;
}

.rss-post:last-child {
    border: none;
}
Ver mais

Últimas Notícias

Ver mais